主要说明bootimg.exe的使用和如何修改Recovery的开机画面及LOGO。
下载bootimg.exe准备手机原厂recovery.img镜像文件与手机CPU一样的TWRP Recoverybootimg.exe用法:主要是用于解包或打包
用法说明:C:\tmp\makeRecovery\work3\recovery>bootimg -hsupported arguments: --add-head --cml --cpio-list --czlib --dml --dzlib --remove-head --repack-565 --repack-bootimg 打包boot镜像文件 --repack-ramdisk 打包ramdisk --repack-rle --repack-zte-bin --rml --to-ext4 --to-img --uml --unpack-565 --unpack-bootimg 解包boot --unpack-qsb --unpack-ramdisk 解包ramdisk --unpack-rle --unpack-updata --unpack-yafffs --unpack-yaffs --unpack-yaffs2 --unpack-zte-bin
一、将手机原厂recovery.img镜像文件复制一份,并命名为boot.img,与bootimg.exe放在同一目录:
二、解压recovery.img镜像文件:bootimg --unpack-bootimg
记住几个重要参数,下面打包时用到:base: 0x40078000 , cmdline: "bootopt=64S3,32N2,64N2",page_size: 2048,padding_size=2048
C:\tmp\makeRecovery\work3\recovery>bootimg --unpack-bootimgarguments: [bootimg file]bootimg file: boot.imgoutput: kernel[.gz] ramdisk[.gz] second[.gz]found nonstandard ramdisk_addrfound nonstandard second_addrfound nonstandard tags_addrbase: 0x40078000ramdisk_addr: 0x44000000second_addr: 0x40f00000tags_addr: 0x4e000000page_size: 2048name: "1445293292"cmdline: "bootopt=64S3,32N2,64N2"padding_size=2048arguments: [ramdisk file] [directory]ramdisk file: ramdisk.gzdirectory: initrdoutput: cpiolist.txtcompress: True
解包后多了好几个文件,只要bootinfo.txt和kernel.gz ,kernel.gz内核文件是与手机硬件相匹配的。其实initrd和cpiolist.txt就是ramdisk.gz解压出来的,内容都一样 :
三、将bootinfo.txt和kernel.gz复制到新文件夹newRec中:
电脑四、用上述同样的方法解包第三方twrp recovery镜像文件:
C:\tmp\makeRecovery\work3\othTWRPRec>bootimg --unpack-bootimgarguments: [bootimg file]bootimg file: boot.imgoutput: kernel[.gz] ramdisk[.gz] second[.gz]found nonstandard ramdisk_addrfound nonstandard second_addrfound nonstandard tags_addrbase: 0x40078000ramdisk_addr: 0x44000000second_addr: 0x40f00000tags_addr: 0x4e000000page_size: 2048name: ""cmdline: "bootopt=64S3,32N2,64N2"padding_size=2048arguments: [ramdisk file] [directory]ramdisk file: ramdiskdirectory: initrdoutput: cpiolist.txtFound mtk magic, skip header.Found header name RECOVERYcompress: True
五、这次只要initrd和cpiolist.txt,并把它们也复制到新文件夹newRec中(这两个就是ramdisk解包出来的,twrp就在其中):
六、从两边取出来的共4个文件(initrd, bootinfo.txt, cpiolist.txt, kernel.gz)重新打包:命令格式 bootimg --repack-bootimg base cmdline page_size padding_size
C:\tmp\makeRecovery\work3\newRec>bootimg --repack-bootimg 0x40078000 "bootopt=64S3,32N2,64N2" 2048 2048arguments: [cpiolist file]cpiolist file: cpiolist.txtoutput: ramdisk.cpio.gzcompress_level: 6mtk modearguments: [base] [cmdline] [page_size] [padding_size]kernel: kernelramdisk: ramdisk.cpio.gzsecond:dt_image:base: 0x40078000ramdisk_addr: 0x44000000second_addr: 0x40f00000tags_addr: 0x4e000000name: 1445293292cmdline: bootopt=64S3,32N2,64N2page_size: 2048padding_size: 2048output: boot-new.img
打包后自动产生一个新的文件名boot-new.img ,将它改回recovery.img :
临时刷入试试:
c:\tmp\fastboot>fastboot boot C:\tmp\makeRecovery\work3\newRec\boot-new.img< waiting for any device >Sending 'boot.img' (16130 KB) OKAY [ 1.567s]Booting OKAY [ 0.063s]Finished. Total time: 1.811s
修改开机画面、LOGO等:
原厂的通常存放在\recovery\initrd\res\images目录下,替换即可:
第三方TWRP的通常存放在\TWRP_Recovery\initrd\twres目录下:
开机画面、LOGO在images子目录里,名称在splashes/ languages.xml/ portrait.xml/ ui.xml等文件里,都可当文本文件编辑:
修改完成后,用前述方法重新打包,然后刷入手机即可。
效果图:
注:logo等图片尽量在原来的基础上修改,文件名不变。
在操作过程中用到其它相关知识可参考本人另外的文章。
电脑