导航:首页 > 操作系统 > android修改kernel

android修改kernel

发布时间:2023-07-06 02:49:06

❶ 怎么修改androidlinux内核

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的结果

❷ 安卓手机内核可以替换吗

可以的,以Virtuous_S4A-2为例
1、从网上下载Virtuous_S4A-2内核。(注:此内核只是作为例子,并不适用于所有机型。你要替换的内核要对应自己的机型以及版本!)
2、然后解压Virtuous_S4A-2,得到4个文件夹,分别是data,kernel,meta-inf,
system。
3、在进入厨房选择0进入高级操作菜单,选择20,boot.img工具
4、选择S查看一下内核信息,用笔记录相关信息以便完成后核对数据。特别是基址。
5、复制完文件后,我们回到厨房工具,选择b,新建boot.img

6、建完后,查看新的boot.img信息。看基址是否一样。

7、替换内核后,我们也要选择23把update-script格式转换为updater-script格式。然后
和上面一样,打包!签名!

❸ 如何编译Android的kernel

1.准备工作: (ubuntu1110 32位)
ubuntu等linuxOS,下载好eclipse,安装好JDK, 安装好android的SDK, 在eclipse中成功打开android 手机模拟器即OK。

2.初始化编译环境 :
关注该网页上的“installing required packages”,其中有的软件包因为版本问题而安装不上,不用管它,之后遇到错误再单独解决。

3.下载内核源码:
android 2.3 内核 下载需要等待一段时间。

4.下载交叉编译器:
该步骤有可能耗费大量时间,依据网速不同,几个小时到几天不等,或许可以尝试git clone 后面的地址只下载prebuilt/linux-x86/toolchain

5.设置参数以及编译:
$ export ARCH=arm
$ export SUBARCH=arm
$ export CROSS_COMPILE=arm-eabi-
$ cd goldfish // 进入下载的源代码目录
$ git checkout <commit_from_first_step> //这个步骤我没有做,不知道干嘛用的
$ make goldfish_defconfig
$ make

6.报错信息:
若有报错说找不到 (arm-eabi-gcc command not found)等等,尝试使用采用另外一个交叉编译器。

7.测试:

最后,测试一下刚才编译的内核:emulator -avd myavd -kernel ~/goldfish/arch/arm/boot/zImageemulator若系统找不到,可以去android SDK中某文件夹找到,加入系统PATH即可。 -avd后面的参数 myavd即为模拟器的名字,这个我是在eclipse中的模拟器管理中新建的一个模拟器,用那个模拟器的名字即可。 -kernel后面的参数就找到刚才编译出的内核的路径。
若启动模拟器失败,可尝试关闭后再启动。第一次启动模拟器时可能需要等待比较长的时间。

❹ 安卓手机怎么修改默认打开程序的设置

具体看下面:

1、打开手机,找到设置功能;

4、在选择你所有打开默认修改文件;

扩展念卖老资料

系统内核的功能配颂

1、Android 是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等等。

2、Android 为了达到商业应用,必须移除被GNU GPL授权证所仔升约束的部份,例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux kernel彻底分开。

阅读全文

与android修改kernel相关的资料

热点内容
linux内核410 浏览:891
疫情就是命令防控就是责任的出处 浏览:126
公钥加密体制中的算法 浏览:604
python如何转换txt 浏览:546
c程序员做什么工作 浏览:563
微信源码怎么关闭 浏览:261
风险区牛熊区狙击点源码 浏览:815
python变量如何表示虚数 浏览:286
诛仙1服务器怎么改名 浏览:273
ppt的超链接命令的作用是 浏览:89
如何用git拉取服务器代码 浏览:369
锤子系统有文件加密吗 浏览:877
程序员主动离职和被裁员哪个好 浏览:792
360命令行 浏览:726
程序员骗色 浏览:668
cisco2950重启命令 浏览:459
加密货币区块链可以增发吗 浏览:290
黄龙公式源码 浏览:773
linux系统ftp服务器 浏览:321
山西配电服务器机柜云主机 浏览:452