提取 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 备份,以备不时之需如果不确定提取是否成功,可以先在论坛咨询
资源星图