当前位置:文档之家› 进阶教程-如何拆包打包 boot.img 提取内核和 ramdisk

进阶教程-如何拆包打包 boot.img 提取内核和 ramdisk


进阶教程-如何拆包/打包 boot.img 提取内核和 ramdisk


为何要拆包/打包 boot.img?
由於不同ROM的 ramdisk 需求不同, 直接替换 boot.img 来更换内核的话可能会造成不同的问题, 所以如果想要单纯换内核而不换 ramdisk 的话, 就需要拆包 boot.img, U8800的 ramdisk 主要分别在於 wifi 驱动和 init 二进制文件和 init.rc 起始脚本. 一般建议只更换内核而不更换 ramdisk.另外请注意 2.2 和 2.3 内核基本上不相通.


拆包出来的 boot.img 包含什么?
拆包出来的boot.img 主要包含以下文件:
1. kernel (内核)
2. ramdisk.gz (虚拟起动盘)

ramdisk 可以再拆包, 得出以下文件:
1. initrd 文件夹 (虚拟起动盘内的文件)
2. cpiolist.txt (虚拟起动文件的权限设定文件)


拆包/打包 boot.img

教程例子-
(把FF的2.2内核替换到 genokolar 的2.2 ROM里的 boot.img, 这样就可以试用FF内核同时保存 genokolar 的标志脚本及 wifi 驱动, V8.4还有 ext4)

1. 把附件的 bootimg.zip 解压成 bootimg.exe 放到电脑上的 C:\TEST\.

2. 把 genokolar ROM 里的 boot.img 放到 C:\TEST\GENO\.

3. 把 FF 内核包的 boot.img 放到 C:\TEST\FF\.

4. 在 DOS 命令提示里换到 C:\TEST\GENO\ 执行以下指令拆包原来的 boot.img.


01.C:\TEST\GENO\bootimg.exe --unpack-bootimg
复制代码成功後会生成 kernel 和 ramdisk.gz 两个文件.

5. 在 DOS 命令提示里换到 C:\TEST\FF\ 执行以下指令拆包FF的 boot.img.


01.C:\TEST\FF\bootimg.exe --unpack-bootimg
复制代码成功後会生成 kernel 和 ramdisk.gz 两个文件.

6. 将GENO的 ramdisk.gz 文件和FF的 kernel 文件放到 C:\TEST\TEST\.

7. 在 DOS 命令提示里换到 C:\TEST\TEST\ 执行以下指令打包新的 boot.img.


01.C:\TEST\TEST\bootimg.exe --repack-bootimg 0x200000 console="ttyDCC0 androidboot.hardware=huawei" 4096 4096
复制代码成功後会生成新的 boot.img 文件.

8. 将新的 boot.img 放到手机上的 /cust/image/ 进行测试, 替换前一定要备份原来的 boot.img, 因为不一定能成功开机, 不能开机的话粉屏替换原来的 boot.img 还原就行.


拆包/打包 ramdisk
另外 ramdisk 也能拆包/打包, 主要用途在於修改 init.rc, 替换 init 二进文件和替换 wifi 驱动, 有兴趣可自行研究.
拆包指令是


01.bootimg.exe --unpack-ramdisk
复制代码
打包指令是


01.bootimg.exe --repack-ramdisk
复制代码
注意相关文件权限设定要修改 cpiolist.txt.

本文为作者 simplistian 原创内容, 转载请注明出处及作者


bootimg.zip

相关主题
文本预览
相关文档 最新文档