提取 Boot 镜像

2026-02-27 21:20:42

提取 Boot 镜像在修补 Magisk 之前,我们需要获取设备的原版 boot.img 文件。本页面将介绍多种提取 boot.img 的方法。

什么是 Boot 镜像?Boot 镜像(boot.img)包含了 Android 系统的内核和 ramdisk,是系统启动的关键文件。Magisk 通过修补这个文件来获得 root 权限。

提取方法概览根据您的情况选择合适的方法:

方法适用情况难度推荐度从官方固件包提取有完整固件包⭐⭐⭐⭐⭐⭐⭐从 OTA 包提取有 OTA 更新包⭐⭐⭐⭐⭐⭐从设备直接提取已 root 或有 TWRP⭐⭐⭐⭐⭐⭐在线下载网上有现成文件⭐⭐⭐方法一:从官方固件包提取这是最推荐的方法,提取的文件最为可靠。

下载固件包小米设备:

官方下载:MIUI 官网第三方镜像:小米固件下载站其他品牌:

Google Pixel:官方工厂镜像OnePlus:官方固件下载三星:SamMobile使用 payload-dumper-go 提取1. 下载工具下载地址:payload-dumper-go解压到任意目录2. 准备固件文件# 解压固件包,找到 payload.bin 文件

# 通常位于固件包的根目录或 images 文件夹中3. 提取 boot.img# Windows 用户

payload-dumper-go.exe -o output payload.bin

# Linux/macOS 用户

./payload-dumper-go -o output payload.bin

# 只提取 boot.img(推荐)

payload-dumper-go.exe -p boot payload.bin4. 查找提取的文件提取完成后,在输出目录中找到 boot.img 文件。

使用 payload_dumper 提取(Python 版本)如果上述工具无法使用,可以尝试 Python 版本:

1. 安装 Python 环境# 安装 Python 3.6+

# 安装依赖

pip install protobuf2. 下载 payload_dumpergit clone https://github.com/vm03/payload_dumper.git

cd payload_dumper3. 提取文件python payload_dumper.py payload.bin方法二:从 OTA 包提取如果您有 OTA 更新包,也可以从中提取 boot.img。

1. 获取 OTA 包从设备的 /cache 或 /data 目录获取从官方或第三方网站下载2. 解压 OTA 包# OTA 包通常是 ZIP 格式

unzip ota_package.zip

# 查找 boot.img 或 payload.bin

ls -la | grep -E "boot|payload"3. 提取 boot.img如果 OTA 包中有 payload.bin,使用上述 payload-dumper 方法提取。

方法三:从设备直接提取注意

此方法需要设备已经 root 或安装了 TWRP Recovery。

使用 ADB 提取1. 查找 boot 分区# 连接设备并启用 USB 调试

adb shell

# 查找 boot 分区路径

ls -la /dev/block/by-name/ | grep boot

# 或

cat /proc/partitions | grep boot2. 提取 boot 分区# 假设 boot 分区路径为 /dev/block/bootdevice/by-name/boot

adb shell "su -c 'dd if=/dev/block/bootdevice/by-name/boot of=/sdcard/boot.img'"

# 将文件复制到电脑

adb pull /sdcard/boot.img使用 TWRP 提取如果设备已安装 TWRP:

进入 TWRP Recovery选择 Advanced → Terminal执行命令:dd if=/dev/block/bootdevice/by-name/boot of=/sdcard/boot.img通过 MTP 或 ADB 复制文件方法四:在线下载风险警告

从网上下载的 boot.img 可能不匹配您的设备,使用前请仔细核对版本信息!

可靠的下载源XDA Developers:设备专版论坛4PDA:俄语 Android 论坛酷安:国内 Android 社区MIUI 历史版本:小米官方历史固件验证文件完整性下载后务必验证文件:

# 检查文件大小(通常 16-64MB)

ls -lh boot.img

# 检查文件头(应该是 ANDROID!)

hexdump -C boot.img | head -1特殊情况处理A/B 分区设备现代设备通常使用 A/B 分区系统:

# 查看当前活动分区

adb shell getprop ro.boot.slot_suffix

# 提取对应分区的 boot.img

# 如果当前是 _a 分区

adb shell "su -c 'dd if=/dev/block/bootdevice/by-name/boot_a of=/sdcard/boot.img'"动态分区设备部分新设备使用动态分区,boot.img 可能位于 super 分区中:

# 查看分区布局

adb shell cat /proc/mounts | grep super

# 可能需要特殊工具提取小米 HyperOS/MIUI 特殊处理某些小米设备可能需要提取 init_boot.img 而不是 boot.img:

# 检查是否存在 init_boot 分区

adb shell ls -la /dev/block/by-name/ | grep init_boot

# 如果存在,提取 init_boot.img

adb shell "su -c 'dd if=/dev/block/bootdevice/by-name/init_boot of=/sdcard/init_boot.img'"验证提取的文件检查文件完整性# 检查文件大小(不应该为 0)

ls -lh boot.img

# 检查文件头

file boot.img

# 应该显示:Android bootimg

# 使用 hexdump 检查

hexdump -C boot.img | head -2

# 第一行应该包含 "ANDROID!"获取镜像信息# 使用 magiskboot 分析(如果可用)

./magiskboot unpack boot.img

# 或使用 abootimg

abootimg -i boot.img备份原版文件重要提醒

请务必备份原版 boot.img 文件,这是恢复系统的重要文件!

# 建议重命名备份文件

cp boot.img boot_original_backup.img

# 记录文件信息

echo "Device: $(adb shell getprop ro.product.model)" > boot_info.txt

echo "Build: $(adb shell getprop ro.build.display.id)" >> boot_info.txt

echo "Date: $(date)" >> boot_info.txt常见问题解决提取失败问题:payload-dumper 报错

解决方案:

检查固件包完整性尝试不同版本的提取工具确认 payload.bin 文件路径正确文件损坏问题:提取的 boot.img 无法使用

解决方案:

重新下载固件包尝试其他提取方法检查存储设备是否有问题找不到 boot 分区问题:设备上找不到 boot 分区

解决方案:

检查设备是否已 root尝试查找 init_boot 分区查看设备特定的分区布局下一步成功提取 boot.img 后,您可以继续进行 Boot 镜像修补。

小贴士

不同版本的固件对应不同的 boot.img,请确保版本匹配保留多个版本的 boot.img 备份,以备不时之需如果不确定提取是否成功,可以先在论坛咨询

资源星图