AccBotAccBot
  • 介绍
  • 快速上手
  • 打包配置
  • 工具使用

    • 选择项目
  • magiskAcc

    • 安装指南
  • 生命周期和事件
  • 权限管理
  • 文件管理
  • 输入法
  • 通用方法
  • 悬浮窗
  • 短信
  • 节点服务
  • 通讯录
  • 深入

    • 架构
    • 开发插件
    • 开发主题
    • Cookbook
  • 其他资源

    • 生态系统
    • 市场
    • 贡献指南
  • 更新日志
  • en-US
  • zh-CN
  • 简体中文
Source
  • 介绍
  • 快速上手
  • 打包配置
  • 工具使用

    • 选择项目
  • magiskAcc

    • 安装指南
  • 生命周期和事件
  • 权限管理
  • 文件管理
  • 输入法
  • 通用方法
  • 悬浮窗
  • 短信
  • 节点服务
  • 通讯录
  • 深入

    • 架构
    • 开发插件
    • 开发主题
    • Cookbook
  • 其他资源

    • 生态系统
    • 市场
    • 贡献指南
  • 更新日志
  • en-US
  • zh-CN
  • 简体中文
Source
  • Magisk 安装指南
  • 前置条件
  • 解锁 Bootloader
  • 提取 Boot 镜像
  • 修补 Boot 镜像
  • 刷入 Magisk
  • 故障排除

提取 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.bin

4. 查找提取的文件

提取完成后,在输出目录中找到 boot.img 文件。

使用 payload_dumper 提取(Python 版本)

如果上述工具无法使用,可以尝试 Python 版本:

1. 安装 Python 环境

# 安装 Python 3.6+
# 安装依赖
pip install protobuf

2. 下载 payload_dumper

git clone https://github.com/vm03/payload_dumper.git
cd payload_dumper

3. 提取文件

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 boot

2. 提取 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:

  1. 进入 TWRP Recovery
  2. 选择 Advanced → Terminal
  3. 执行命令:
    dd if=/dev/block/bootdevice/by-name/boot of=/sdcard/boot.img
  4. 通过 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 备份,以备不时之需
  • 如果不确定提取是否成功,可以先在论坛咨询
在 GitHub 上编辑此页
上次更新: 2025/6/17 13:28
贡献者: cuijixiong
Prev
解锁 Bootloader
Next
修补 Boot 镜像