什么是boot.img呢?
boot.img是Android系统启动所必须加载的文件。简单的说,boot.img包含两部分,分别为kernel 和ramdisk。
这里我们使用的工具是payload-dumper-go
Usage: ./payload-dumper-go [options] [inputfile]
-c int Number of multiple workers to extract (shorthand) (default 4)
-concurrency int Number of multiple workers to extract (default 4)
-l Show list of partitions in payload.bin (shorthand)
-list Show list of partitions in payload.bin
-o string Set output directory (shorthand)
-output string Set output directory
-p string Dump only selected partitions (comma-separated) (shorthand)
-partitions string Dump only selected partitions (comma-separated)
payload.bin
payload.bin是Android OTA镜像打包文件,将包括system.img
、boot.img
和recovery.img
等在内的Android系统进行,打包为一个payload.bin文件。
在系统OTA过程中,系统会自动解压安装。
所以我们一般提取boot.img,就是去找手机厂商对应的payload.bin, 一般这个东西在各个手机厂商的官网里面有,一般有2个包,一个叫线刷包还有一个叫卡刷包
线刷包:通常用于刷机固件,特别是当设备遇到无法开机或其他软件故障时,线刷包通常包含一个分区镜像,允许直接修改或写入设备上的闪存(例如,Android的Fastboot模式),线刷包通常以.rar格式存在,需要解压后使用特定的刷机工具(如Fastboot)和数据线将固件刷入设备。
卡刷包:通常用于通过SD卡进行系统升级,这种方式比线刷包更简单,适用于设备没有异常或只需小规模更新的情况,卡刷包通常为.zip格式,包含系统apk文件、签名信息、内核等,用户需要将卡刷包放入SD卡,然后通过设备的Recovery模式进行刷机。
这里我们下载了小米的卡刷包
解压之后 里面有5个文件
分别是
META-INF 卡刷包的签名文名和刷机时执行的脚本(updater-script)
payload.bin Android OTA镜像打包文件
payload_properties.txt 包含了payload.bin的一些元信息,如文件的hash值,大小等。
apex_info.pb 主要是一些配置信息
care_map.pb 和apex_info.pb 类似 都是一些配置信息
这里我们以小米的ROM为例,提取它的boot.img