㈠ 怎么修改Android 的linux内核
Android 产品中,内核格式是Linux标准的zImage,根文件系统采用ramdisk格式。这两者在Android下是直接合并在一起取名为boot.img,会放在一个独立分区当中。这个分区格式是Android自行制定的格式。
Android开发时,最标准的做法是重新编译于内核和根文件系统,然后调用Android给的命令行文件mkbootimg(out/host/linux-x86/bin/)来打包。
在制作手机ROM时,有时会单独编译内核或抽出根文件进行修改内容,比如我只编译内核,其余的地方不变。这样重新安装巨大的Android开发环境实在不划算。因此很多boot.img解包工具被人开发出来,这一些工具都是把内核和根文件系统从一个现成的boot.img抽取出来,修发后再次打包还原。
一.常见的解包工具
因为boot.img的格式比较简单,它主要分为三大块(有的可能有四块)
因此很多人开发分析工具,有是linux shell脚本,比如repack-zImage,也有人采用perl,还有C语言编写的 unbootimg,
我使用的是在源码位置system/core/mkbootimg/ 下的 mkbootimg。为了简化,蓝点工坊把与mkbootimg中打包工具和解包工具以及所包含的libmincrpty库抽出来,并且重写一个Makefile,作为开源项目。
使用者只需要在linux(需安装gcc,make,一般是标配)或windows(需要安装mingw)的命令行执行make,即可产生可执行文件mkbootimg ,unpackbootimg。
二.解/打包工具使用
解包工具:unpackbootimg
常见格式
unpackbootimg -i .\tmp\boot.img -o .\out
这一句命令行表示把boot.img解包,所有文件输出到out目录下
它会解压出如下文件:
boot.img-zImage (内核文件)
boot.img-ramdisk.gz (根文件系统打包文件)
boot.img-cmdline (mkbootimg cmdline参数)
boot.img-pagesize (mkbootimg pagesize参数)
boot.img-base (mkbootimg base参数)
打包工具:mkbootimg (Android自带)
常见的命令格式:
./mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel zImage --ramdisk boot/boot.img-ramdisk.gz -o boot.img --base 02e00000
这句含义是把内核文件zImage和boot目录下的根文件压缩包 boot.img-ramdisk.gz打包成boot.img.
其中cmdline和base的值均来源于unpackbootimg的结果
㈡ 如何升级Android的内核版本
升级方法:
下载手机系统升级包:一般手机厂商官网都会更新一些系统文件包供用户下载升级,可以可以进入自己手机品牌官网下载中心,然后根据自己手机品牌型号,下载最新的系统更新升级包,下载存放在手机SD卡当中。然后再进入手机设置,然后选择“关于手机”最后找到“系统更新”选项,之后在选择“存储卡升级”。如果SD中有可用的升级包就会自动开始升级;
㈢ 如何升级Android的内核版本
手机系统内核是Linux,linux内核是靠升级系统版本来升级内核的。升级方法:
1、使用手机自带的系统更新功能:在安卓手机的设置--关于手机中,可以看到当前安卓手机的系统版本,另外这里也有自动检测更新系统功能。这里就是安卓手机自带的系统更新功能,其更新主要由手机厂商提供,像小米手机就可以很好的通过该功能升级手机系统版本。不过使用该功能升桐李档级系统,需要下载不少升级文件,因此建议大家在Wifi环境下进行;【使用手机自带的系统更新功能仅对部分品牌手机比较实用,通常很多品牌手机的自带的升级功能,可升级的非常慢,并且无法更新到最新的安卓系统版本,因此一般也不建议采用该方式升级】;
2、下载手扰羡机系统升级包:一般手机厂商官网都会更新一些系统文件包供用户下载升级,我们可以可以进入自己手机品牌官网下载中心,然局乱后根据自己手机品牌型号,下载最新的系统更新升级包,下载存放在手机SD卡当中。然后我们再进入手机设置,然后选择“关于手机”最后找到“系统更新”选项,之后我们在选择“存储卡升级”。如果SD中有可用的升级包就会自动开始升级;
3、通过刷机升级安卓系统:对于安卓手机用户而言,热衷的还是刷机了,刷机是一种时下非常有效的升级安卓系统方法,网上也有很多安卓手机的ROM系统,并且更新很快,大家可以选择采用最新安卓系统内核去刷机,从而实现安卓系统的升级。
㈣ 大家如何修改安卓内核版本和手机型号,带
三星手机中显示的手机型号无法自行更改,若您的手机是S4或S5等系列手机,可以按以下方法修改设备名称,操作:
待机-应用程序-设定-(更多)-关于设备-设备名称-修改即可。
㈤ Android内核修改*_defconfig的方法
目的是为Android中的linux内核来配置CONFIG_DYNAMIC_FTRACE选项。
智能硬件Android版本:8.1
智能拆誉硬件Linux版本:4.4
智能硬件芯片平台:Arm32
实验PC环境:Ubuntu
查看KERNEL_DEFCONFIG的定义,由于只支持arm32我们只更改arm文件夹下即可。
如果是arm64位芯片,需同时更该arm和arm64文件夹下的内容。
由此非eng编译雹冲环境下配置源御歼文件应为kernel-4.4/arch/arm/configs/*_defconfig
注:产品代号已经用 * 替代,该处请自行根据需要去替换编译产品名称
kernel-4.4/arch/arm/configs/*_defconfig为上述所说的配置文件
发现依赖如下两个depends的配置项
由此在kernel-4.4/arch/arm/configs/*_defconfig文件中新增如下两个依赖的配置项
由此发现FUNCTION_TRACER的一个配置项
HAVE_DYNAMIC_FTRACE的配置项定义没有依赖项
最终把改配置项添加到kernel的配置文件kernel-4.4/arch/arm/configs/*_defconfig中
提取出终端kernel配置文件
查看config文件是否包含CONFIG_DYNAMIC_FTRACE=y,大功告成