如何获取适用于 Magisk 的正确 boot 或 init_boot 镜像
可靠的 Magisk 安装,从打补丁之前就开始了。先确认正确的分区和准确的固件,再提取并保存一份干净的原始镜像。

目录
- 先建立固件身份记录
- 真实的混淆案例:机型没错,固件分支不对
- 判断需要 boot.img 还是 init_boot.img
- 选择最可靠的原始来源
- Pixel:出厂镜像或完整 OTA 包
- 其他厂商:核对实际的包格式
- 第三方 ROM:从该 ROM 自己的发布版本入手
- 方法 1:从固件压缩包中直接提取镜像
- 方法 2:从 payload.bin 中提取 boot 类镜像
- 完整 OTA 与增量 OTA 不能互换
- 方法 3:Magisk 31 的远程 OTA 提取
- 校验下载文件并保存校验值
- 身份核对全部通过后再打补丁
- 不要拿旧镜像临时当回滚用
- 常见问题
- 同机型、同 Android 版本的 boot 镜像能直接用吗?
- 固件里有 boot.img 但没有 init_boot.img 怎么办?
- 提取固件会清除数据吗?
- 别人能把他打好补丁的镜像发给我吗?
- 找不到完全一致的版本怎么办?
- 最关键的检查点
- 来源与范围
很多 Magisk 安装的难点并不在点“patch”这一下,而在于确认要修补的文件到底属不属于这台手机。
搜索你的机型,可能搜到不同地区、不同月份构建以及第三方 ROM 的镜像,它们都可能叫 boot.img。光看文件名,几乎判断不了是否兼容。
请从与手机当前系统一致的固件或第三方 ROM 中取得原始镜像。确认它所支持的 Magisk 安装方式用的是 boot、init_boot、Recovery,还是其他明确支持的方案。原始镜像保持不动,并在将要使用它的那台手机上打补丁。Magisk 官方说明也提醒过,不要使用别人打好补丁的镜像,即使机型相同也一样。来源 1
本文讲的是如何确认并取得镜像,刻意没有以一条通用的刷入命令收尾。
先建立固件身份记录
打开Settings > About phone,记下准确的机型和版本号。同时记录手机运行的是厂商固件还是第三方 ROM,以及属于稳定版还是测试版渠道。
在已授权 ADB 的电脑上,下面这些只读查询可以帮你收集系统信息:
adb shell getprop ro.product.device
adb shell getprop ro.build.display.id
adb shell getprop ro.build.version.incremental
adb shell getprop ro.build.fingerprint
这些只是用来比对的标识,并不能自动证明随便一个下载包就兼容。厂商在Settings界面和固件页面上用的标签可能不同,第三方 ROM 上报的信息也可能不一样。
每个候选下载包都对照这份记录:
| 项目 | 需要确认的内容 |
|---|---|
| 机型和代号 | 包对应的是这台设备,而不是名字相近的 Pro 版、地区版或运营商版 |
| 已安装版本 | 镜像属于当前安装的系统,而不只是 Android 大版本相同 |
| 地区或运营商分支 | 包适用于该设备的固件分支 |
| ROM 与发布渠道 | 原厂、第三方、测试版和稳定版镜像不能随意互换 |
| 原始来源 | 下载来源可追溯到厂商或真正的 ROM 维护者 |
| 所需镜像 | 该设备的安装流程已明确指出正确的分区 |
只写“Android 16”不够具体,“九月更新”也不够。请比对完整的版本号。
真实的混淆案例:机型没错,固件分支不对
在 XDA 上一个关于 Xiaomi 13 的讨论里,有用户想找一个准确的 EEA 版本,却搞不清固件包与从 OTA 中提取 boot 相关镜像之间的区别。值得借鉴的不是照搬帖子里的下一条刷机命令,而是在选压缩包之前,先确认设备的分支和完整版本。来源 8
针对某个地区版本写的教程,在其下载链接早已和你的手机对不上之后,仍可能长期被搜到。
判断需要 boot.img 还是 init_boot.img
不要只凭Settings里显示的 Android 版本来判断。
对于出厂即搭载 Android 13 的设备,AOSP 把通用 ramdisk 拆到了单独的 init_boot 镜像中。从旧架构升级上来的设备,并不一定都要采用这种布局。所以两台运行同一 Android 版本的手机,可能需要不同的 Root 方法。来源 2
请把 Magisk 当前的官方说明,与针对你这款设备、仍在维护的教程结合起来看:
| 镜像 | 如何看待 |
|---|---|
boot.img | 常见的补丁目标,但在使用独立 init_boot 布局的设备上不一定正确 |
init_boot.img | 在相关设备上是独立的镜像,不是 boot.img 改个名字 |
recovery.img | 用于部分受支持的基于 Recovery 的安装方式,不是 boot 打补丁失败后的备选方案 |
vendor_boot.img | 因设备而异。Magisk 从 v30.3 起加入支持,但这并不代表它是所有设备的默认目标 |
Samsung AP_...tar 固件包 | 请按 Magisk 针对Samsung的专门流程操作,不要套用通用的 fastboot 教程 |
vendor_boot 的支持情况出自 Magisk 官方更新日志。来源 3安装方式的选择以及Samsung的例外情况,见其安装文档。来源 1
不要把每个镜像都打一遍补丁再逐个试。对分区拿不准,说明应该在刷入前停下来,而不是在正在使用的主力机上做试验。
选择最可靠的原始来源
Pixel:出厂镜像或完整 OTA 包
Google 提供官方出厂镜像和完整 OTA 包。出厂镜像压缩包里可能包含用于查看或提取的原始分区镜像。完整 OTA 是另一种包,用于 OTA 安装流程。来源 4来源 5
下载或解压压缩包本身不会刷写手机。运行出厂刷机脚本是另一回事,可能造成破坏。Google 提醒,安装出厂镜像会清除数据;而完整 OTA 流程通常不需要解锁 Bootloader,也不需要清除数据。来源 4来源 5
这里的目标只是拿到一个文件,没必要为了看一眼出厂压缩包的内容而运行 flash-all。
其他厂商:核对实际的包格式
先从厂商的固件或支持渠道入手。如果你这个版本的固件没有公开提供,就去查有人维护的该机型专属帖子,看看获取方法,而不是随手下载某个陌生账号直接上传的附件。
fastboot 压缩包、Recovery 更新 ZIP 和小型增量更新,内容可能差别很大。光看下载体积无法判断是哪种包,改扩展名也不会把它变成另一种包。
在Samsung上,AP 包和 Odin 流程是另一套做法。从该包中提取出独立的 boot 镜像,并不意味着可以改用通用的 fastboot 教程。来源 1
第三方 ROM:从该 ROM 自己的发布版本入手
如果当前系统是第三方 ROM,同一款手机的原厂镜像不一定是正确的原始镜像。请使用该 ROM 维护者针对这个确切版本发布的文件和安装说明。
自定义内核的改动也要记进你的记录里。“原厂镜像”可能指厂商的镜像,也可能指第三方 ROM 未修改的镜像,两者不一定是同一个文件。
方法 1:从固件压缩包中直接提取镜像
新建一个以设备和完整版本号命名的文件夹,把下载的压缩包放进去,用正规的解压工具查看其内容。
有些固件下载包的外层 ZIP 里还套着另一个镜像压缩包。请继续进入对应的内层压缩包,找到该设备受支持的 Root 流程所指定的镜像。
分开保存这三样东西:
- 下载的原始压缩包。
- 未经修改的提取镜像。
- 之后由 Magisk 打补丁生成的文件。
不要用打过补丁的文件覆盖原件。一个叫 boot.img 的镜像,如果旁边没有记录它的来源版本,就等于没有说明身份。
例如,你自己的文件夹结构可以是这样:
firmware-work/
device-codename_full-build-id/
original-download.zip
source-notes.txt
original/
init_boot.img
patched/
magisk_patched_actual-filename.img
以上名称只是示范如何整理,并非来自某台实测设备的文件。
方法 2:从 payload.bin 中提取 boot 类镜像
很多 OTA 压缩包里装的是 payload.bin,而不是零散的分区镜像。一个仍在维护的开源选择是 ssut/payload-dumper-go。来源 6
从该项目的仓库下载合适的发布版本,满足其平台前置条件,并保持校验功能开启。该项目当前的文档写明依赖 xz,既支持直接读取内含 payload 的 ZIP,也支持单独的 payload 文件。来源 6
工具装好并加入命令路径后,先列出可用的分区:
payload-dumper-go -l payload.bin
如果所需分区是 init_boot,就只提取这个分区:
payload-dumper-go -p init_boot -o extracted payload.bin
如果该设备文档指定的目标是 boot,则使用:
payload-dumper-go -p boot -o extracted payload.bin
这两条是二选一,不是必须连续执行的两步。在 Windows 上,如果在 PowerShell 里从可执行文件所在文件夹运行,请把命令名换成 ./payload-dumper-go.exe。
等待进程成功结束。生成了输出文件,或进度条走到很高的百分比,都不能代替成功退出和校验。
完整 OTA 与增量 OTA 不能互换
增量更新可能需要上一个版本的镜像。当前版本的提取工具可借助基础镜像支持部分差分操作,但文档中也列出了不支持的操作,包括 PUFFDIFF、ZUCCHINI 和 LZ4DIFF_*。来源 6
如果只是为 Root 做准备,请优先选用与该版本完全一致的完整包。如果提取时要求你提供手头没有的基础镜像,就停下来。不要为了得到一个名字看起来对的文件而关闭校验。
“提取工具支持增量 OTA”并不等于“任何增量 OTA 里的每个分区,没有原始基础镜像也能重建”。
方法 3:Magisk 31 的远程 OTA 提取
Magisk v31.0 新增了从远程 OTA 链接提取 boot 镜像的功能。在本文的调研快照中,其 2026 年 9 月 4 日的官方发布被标记为预发布版。来源 7
这可以减少手动下载并解包整个 OTA 的麻烦,但仍然需要你自己选对设备、固件分支、版本和补丁目标。
请使用原始固件的链接,不要用随手搜到的“预 Root 镜像”链接。对生成的镜像,要像对待本地提取的文件一样认真核查来源。这次发布公告并没有说明它兼容每家厂商的固件容器格式。
没必要仅仅因为预发布版有更方便的提取功能,就把日常使用的稳定版换过去。手动查找来源再提取的流程依然好用。稳定版与预发布版渠道的区别,请参阅更正后的 Magisk 版本指南。
校验下载文件并保存校验值
如果官方下载页提供了 SHA-256 校验值,请计算同一个下载文件的校验值,并完整比对。
在 Windows PowerShell 中:
Get-FileHash -Algorithm SHA256 .\original-download.zip
在 macOS 中:
shasum -a 256 original-download.zip
在 Linux 中:
sha256sum original-download.zip
校验值只有对照可信的期望值才有意义。同一个不明上传者在镜像旁边贴出的哈希,并不能证明它是官方的。
你也可以记录提取出的原始镜像的校验值,用于自己的变更追踪。不要拿提取出的 init_boot.img 的哈希去对比完整 ZIP 公布的校验值,它们是不同的文件。
打补丁之前,把来源链接、下载日期、版本号和提取方法记到笔记里。出问题要恢复的时候,这比一个全是 new-boot-final.img 的文件夹有用得多。
身份核对全部通过后再打补丁
Magisk 文档中的文件修补流程,是在目标设备上对选定的镜像操作,并生成一个单独的补丁输出文件。请把这个输出文件与原始版本以及生成它的 Magisk 版本关联保存。来源 1
补丁打成功,只说明 Magisk 处理了输入文件,并不能证明这个输入文件属于你的手机。
不要用通用的 fastboot boot 命令代替对镜像格式的理解。尤其是,只含 ramdisk 的 init_boot 镜像不能与完整的 boot 镜像互换。来源 2
如果刷入已经失败,请先停在这里,参考Magisk 刷入失败诊断。如果电脑检测不到 Bootloader,请参考fastboot 设备检测故障排查。这两种问题,靠乱试别的固件镜像都解决不了。
不要拿旧镜像临时当回滚用
一份能用的原始镜像很宝贵,但回滚限制依然有效。Google 的出厂镜像页面记录了影响 Pixel 6 系列的防回滚警告,其中包括 2025 年 5 月的 Bootloader 切换。来源 4
不要想当然地认为另一个 A/B 槽位是安全的,旧镜像一定能启动,或者因为包是官方的,降级就没有危害。官方包可以是真品,却仍然不适合当前的 Bootloader 状态。
另外,Magisk 的常规更新要和 Android 的 OTA 更新分开处理。后者有自己的槽位和安装顺序。我们的已 Root 手机 OTA 恢复指南讲的就是那个不同的问题。
常见问题
同机型、同 Android 版本的 boot 镜像能直接用吗?
仅凭这些信息不行。要对上已安装的固件或 ROM 版本以及对应的机型变体。营销用的机型名称和 Android 大版本,并不构成完整的兼容性核对。
固件里有 boot.img 但没有 init_boot.img 怎么办?
不要改名凑数。不同设备的 boot 架构不同。请对照你这款设备仍在维护的说明和压缩包的实际内容来确认。来源 2
提取固件会清除数据吗?
在电脑上提取文件不会刷写手机。解锁、安装或运行出厂刷机脚本是另外的操作。不要仅仅为了取一个镜像就去做这些事。
别人能把他打好补丁的镜像发给我吗?
Magisk 明确提醒不要这样做,即使机型相同也一样。来源 1请自己获取匹配的原始镜像,并在目标手机上打补丁。
找不到完全一致的版本怎么办?
不要挑文件名最接近的。请等待正确的包,或者按有文档记录的设备专属升级方案,让手机和可获得的原始镜像处于同一个受支持的版本。
最关键的检查点
刷入之前,你应该能不靠猜测地说完这句话:
“这是适用于这台设备及其当前安装版本的原始镜像;我能说明为什么这个分区是正确的补丁目标,也知道未经改动的原件保存在何处。”
只要有一项缺失,就先解决再继续。这比指望恢复出厂设置能修好不匹配的 boot 镜像,是更靠谱的恢复思路。
来源与范围
调研核查于 2026 年 9 月 28 日。提取命令遵循所述项目文档中的语法;本文没有为实际测试而下载、提取或刷入任何固件包。
- 来源 1:Magisk 官方安装说明,包括文件修补、目标设备警告和Samsung专用安装方式。打开来源
- 来源 2:AOSP“Generic boot partition”,包括出厂搭载与升级设备的架构差异以及 init_boot 的作用。打开来源
- 来源 3:Magisk 官方更新日志,包括 v30.3 的 vendor_boot 支持。打开来源
- 来源 4:Google Pixel 设备出厂镜像,包括数据清除和防回滚警告。打开来源
- 来源 5:Google Pixel 设备完整 OTA 镜像。打开来源
- 来源 6:ssut/payload-dumper-go,维护者 README,包括提取选项、校验和增量操作的限制。打开来源
- 来源 7:Magisk v31.0 官方预发布版,2026 年 9 月 4 日。打开来源
- 来源 8:XDA 上关于 Xiaomi 13 的讨论,涉及准确版本以及 boot/init_boot 提取的困惑。属于历史上的社区经验,并非经过验证的通用流程。打开来源