gradient

boot.img提取食用方法

rain

什么是boot.img呢?

boot.img是Android系统启动所必须加载的文件。简单的说,boot.img包含两部分,分别为kernel 和ramdisk。

kernel是内核,操作系统的核心组件。
ramdisk是操作系统的引导程序。
一般操作系统启动是由引导加载程序初始化硬件设备、加载内核并启动系统。
所以一般在一个操作系统里面ramdisk和kernel是相互联系的。
这里提取boot.img 是为了root手机、定制ROM、修复系统故障等场景。

这里我们使用的工具是payload-dumper-go

它是由Golnag开发而成的。
获取方式有2种
第一种是Releases里下载对应的二进制包。
第二种是下载源码,使用go bulid 编译成可执行程序。
我们这里采用的是第一种方式
下载完成解压后的文件为
 可执行文件文件
README.md文件
LICENSE 开源协议文件
食用方法
一般 我们在不知道使用方法的时候可以执行 xxx -h 或者 xxx –help 或者执行 xxx
这里我们直接执行
./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.imgboot.imgrecovery.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

所以命令是:
payload-dumper-go      /目录/下级/payload.bin
执行完成后会在文件中生成一个文件夹
其中文件夹中就有很多文件
这里面就有我们想要的boot.img
其他的文件有什么用,这里不做过多赘述

Leave a Comment