通过解压修改压缩boot.img来使修改后的init.rc生效

2013年9月16日 | 分类: 笔记 | 标签:

1. 建立boot_tools文件夹。

2. 把两个工具split.pl和mkbootimg放到这个文件夹下。

3. 准备好需要解压的boot.img放到任意目录

4. 打开命令行,在boot_tools下执行./split.pl /存放boot.img的目录/boot.img,会生成boot.img-kernel和boot.img-ramdisk.gz
例:
lishengjie@lishengjie:~/my-work-space/linux_tools/boot_zip$ ./split.pl boot.img Page size: 2048 (0x00000800)
Kernel size: 5744372 (0x0057a6f4)
Ramdisk size: 436341 (0x0006a875)
Second size: 0 (0x00000000)
Board name:
Command line: mem=239M console=ttyS1,115200n8 init=/init mtdparts=sprd-nand:384k@256k(2ndbl),256k(params),256k(pt),10m(boot),10m(recovery),120m(system),60m(sps),10m(factory),2m(cache),256k(misc),20m(fota),20m(cp),-(userdata)
Writing boot.img-kernel … complete.
Writing boot.img-ramdisk.gz … complete.

5. 执行gzip -dc boot.img-ramdisk.gz | cpio -i,解压boot.img-ramdisk.gz,会在boot_tools文件夹内解压出很多文件
例:
lishengjie@lishengjie:~/my-work-space/linux_tools/boot_zip$ gzip -dc boot.img-ramdisk.gz | cpio -i
1231 块

6. 把这些文件剪切到一个新文件夹里。如:/boot_tools/new/

7. 进入新文件夹new,修改init.rc文件

8. 执行find . | cpio -o -H newc | gzip > ../newramdisk.cpio.gz 将这些文件重新打包,在文件夹外层生成newramdisk.cpio.gz
例:
lishengjie@lishengjie:~/my-work-space/linux_tools/boot_zip/new$ find . | cpio -o -H newc | gzip > ../newramdisk.cpio.gz
1231 块

9. 在boot_tools文件夹下执行./mkbootimg –cmdline ‘no_console_suspend=1 console=null’ –kernel boot.img-kernel –ramdisk newramdisk.cpio.gz -o mynewimage.img,重新打包出img文件:mynewimage.img。
例:

lishengjie@lishengjie:~/my-work-space/linux_tools/boot_zip$ ./mkbootimg –cmdline ‘no_console_suspend=1 console=null’ –kernel boot.img-kernel –ramdisk newramdisk.cpio.gz -o mynewimage.img

10.将mynewimage.img改名为boot.img即可。

——通过以上步骤完成boot.img的解包,修改,圧包操作!!!

工具下载modifyboot

  1. www.zjlslm.com
    2013年9月27日09:11

    每次来都会看到一些新鲜的教程