MagiskBoot 完整流程:boot.img 解包、ramdisk 修改与 repack 一次讲清
【免费下载链接】MagiskThe Magic Mask for Android项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk
自己改过的 boot.img 刷进去之后开不了机?这种时候你需要的就是 Magisk 项目里的 MagiskBoot:把 boot.img 解包成 kernel、ramdisk 等部件,改完重新打包,出错了还能刷回原始镜像。
📦 boot.img 里到底装了什么
可以把 boot.img 想成一套搬家套装:kernel 是发动机,负责把系统跑起来;ramdisk 是进门后拆开的第一个箱子,装着 init 进程和启动脚本,系统靠它完成最初的挂载;dtb 是一张户型图,CPU 几个核、外设接在哪个地址,都写在这张图上。三者缺一个,系统都点不燃。
动手前先确认设备能不能改:Magisk Manager 主页的 Ramdisk 状态显示 Yes,说明 boot 镜像里带了 ramdisk,可以按下面流程改;显示 No,先查清启动方式再动手。
上图红圈圈住的就是关键项:只有 Ramdisk 显示 Yes,才表示这个 boot.img 里有可以修改的 ramdisk。
最小可用流程:解包 → 改 → 打包
整条主线三步走:解包、改、打包,核心命令只有两条。
- 拿到原件。从官方固件包提取 boot.img;固件只有 payload.bin 时,先用
magiskboot extract payload.bin取出 boot 分区。改之前把原件另存为 boot-orig.img,回滚全靠它。 - 解包。
magiskboot unpack boot.img当前目录会多出 kernel、ramdisk.cpio、dtb 等文件,这一步就是 boot.img 解包。 3. 改 ramdisk。解开 ramdisk.cpio,加文件、改 init 脚本,再用magiskboot cpio的 addfile 子命令改回去。内核和 dtb 保持原样,ramdisk 修改集中在这一步。 4. 重新打包。
magiskboot repack boot.img new-boot.imgrepack 打包就这一条命令,会沿用原镜像检测到的压缩格式;第二个参数是输出文件名,不写时默认生成 new-boot.img。 5. 刷入验证。进 fastboot 模式执行fastboot flash boot new-boot.img,重启看结果。
三个容易翻车的细节
repack 打包时压缩格式对不上
- 现象:repack 出的镜像刷进去后,卡在解压报错或反复重启。
- 原因:原镜像的 ramdisk 用 lz4 或 zstd 压缩,你手动转换过 ramdisk.cpio 的格式,和原 header 对不上。
- 处理:别手动转格式。repack 默认按原镜像的格式自动压缩,已压缩的组件不会二次压缩;想原样保留就加
-n参数。
A/B 分区刷镜像选错 slot
- 现象:镜像明明刷成功了,重启后系统却像没改过。
- 原因:A/B 设备有 boot_a 和 boot_b 两套槽位,系统只从当前活动槽启动,刷到备用槽等于改了张没人用的盘。
- 处理:用
fastboot getvar all查当前 slot 是 a 还是 b,把镜像刷进正在用的分区;也可以让 Manager 的 Install to Inactive Slot 选项刷不活动槽,再切槽重启。
AVB 安全验证拦下重打包的镜像
- 现象:重打包后的镜像一刷就重启进 recovery,或死在开机 logo。
- 原因:设备开着 AVB 验证,镜像内容一变,签名就对不上。
- 处理:先用
magiskboot verify new-boot.img确认签名状态,需要时再用magiskboot sign补 AVB 1.0 签名;bootloader 强制校验的设备这条路走不通,直接回滚。
🧯 出事了怎么回滚
回滚的前提是手里有原件,路径按你能进的模式分:
- 还能进系统:打开 Magisk Manager 的 Uninstall 页面,选 RESTORE IMAGES,App 会把安装时备份的原始 boot 镜像自动刷回,然后重启。
- 进不了系统:关机进 fastboot 模式,执行
fastboot flash boot boot-orig.img,把备份写回 boot 分区再重启。 - A/B 设备多一步:两个槽位都要刷,至少保证当前活动槽是干净的,避免切槽后又踩回改坏的镜像。
上图是 Uninstall 页面的两个按钮,选左边红框的 RESTORE IMAGES,Magisk 就会自动把原始启动镜像刷回去,不用你碰 fastboot。
下一步可以做什么
- 查清设备属于哪类启动方式:启动镜像文档 把 boot、recovery、SAR、2SI 分成了四类设备讲。
- 看全部子命令的参数:无参数运行
magiskboot会打印完整帮助,源码目录 里的 cli.rs 就是这份文本的定义处。 - 配合 工具文档 看各命令在日常场景里怎么组合使用。
整套流程其实就三件事:解包、改 ramdisk、repack 打包,外加一份始终备着的原始镜像。下一步:拿你自己设备的 boot.img 跑一遍 unpack,看看解出来都有什么文件。
【免费下载链接】MagiskThe Magic Mask for Android项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考