提取原厂 boot.img — 从刷机包到 adb 备份的方法
为什么必须要原厂 boot.img
APatch 修补的基础是设备当前版本的原厂 boot.img——不是 Magisk 修补过的、不是 KernelSU 修补过的、不是任何第三方修补过的。如果修补一个已经被其他 root 方案修改过的 boot.img,KernelPatch 可能会因为内核二进制的意外变化而修补失败或出现异常行为。
方法一:从官方刷机包提取(推荐)
绝大多数品牌都会公开刷机包(虽然有些藏得深):
- 在设备厂商的固件下载页或对应社区找到你设备当前版本的刷机包
- 刷机包通常是
.zip格式,直接解压 - 在解压后的目录里找
boot.img(部分厂商会把 boot.img 放在 images 子目录下) - 如果找不到,找文件名叫
boot*.img、vendor_boot.img或类似的
部分厂商的刷机包用的是 payload.bin 格式(Google Pixel、部分 MIUI 包),这种情况需要用 payload-dumper-go 等工具解包。
方法二:adb root 直接备份
如果设备已经有 root 权限了,直接备份最方便:
# 获取 boot 分区路径
ls -l /dev/block/by-name/boot*
# 用 dd 备份到存储
dd if=/dev/block/by-name/boot of=/sdcard/boot.img bs=4096
备份完再拷到电脑上:
adb pull /sdcard/boot.img .
方法三:从 OTA 增量包解包
OTA 增量包通常只包含变化的分区,不一定有完整 boot.img。不推荐依赖这种方式——增量包里的 boot.img 是变化后的,但完整版本难拿。
重要:确认版本
提取到 boot.img 后,务必确认它和你设备当前运行的系统版本完全一致:
- 去设置里看系统版本号(Android 版本、安全补丁级别、构建号)
- 刷机包的版本号必须和设置里看到的一致
如果版本对不上,修补后的 boot.img 刷入后会在开机时因为内核版本不匹配而失败。
备份到安全位置
拿到 boot.img 后,立刻在电脑上备份一份。刷入修补版后如果出问题需要恢复原厂 boot,这是唯一的救命稻草。
# 原厂备份 — 放在电脑上,不要只放手机上
cp boot.img boot-stock-backup.img