您的位置:首页 > 其它

如何解包/编辑/打包boot.img文件

2012-03-07 13:57 323 查看
介绍一种解包/编辑/打包boot.img的方法

split_bootimg.pl脚本可以读取boot.img头(根据Android源码中的bootimg.h读取)将kernel和ramdisk读取出来,此脚本也会输出内核命令行和板子名字。

下载split_bootimg.pl

http://download.csdn.net/detail/chb2000/4119837

% ./split_bootimg.pl boot.img

Page size: 2048 (0x00000800)

Kernel size: 1388548 (0x00153004)

Ramdisk size: 141518 (0x000228ce)

Second size: 0 (0x00000000)

Board name:

Command line: no_console_suspend=1

Writing boot.img-kernel ... complete.

Writing boot.img-ramdisk.gz ... complete.

复制代码

解包ramdisk的命令如下:

% mkdir ramdisk

% cd ramdisk

% gzip -dc ../boot.img-ramdisk.gz | cpio -i

% cd ..
复制代码

解码完毕后,就可以修改了(例如,在default.prop设置ro.secure=0等等)

使用mkbootfs工具(mkbootfs工具是编译完毕Android源代码以后,就会在~/android-src/out/host/linux-x86/bin自动生成)来重新创建ramdisk,可以使用如下命令来操作:

% mkbootfs ./ramdisk | gzip > ramdisk-new.gz

使用mkbootimg来重新创建boot.img,mkbootimg也可以在~/android-src/out/host/linux-x86/bin目录中可以找到:

% mkbootimg --cmdline 'no_console_suspend=1 console=null' --kernel boot.img-kernel --ramdisk ramdisk-new.gz -o boot-new.img
复制代码

(注意:console=null的命令行选现是从TC4-RC30的boot.img引入的,用以去掉root shell)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: