☰
MagiskBoot 实操:如何用 3 步完成 boot 镜像的解包、修改与重打包
2026/10/18 2:50:05 网站建设 项目流程

MagiskBoot 实操:如何用 3 步完成 boot 镜像的解包、修改与重打包

【免费下载链接】MagiskThe Magic Mask for Android项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk

MagiskBoot 是 Magisk 项目自带的命令行工具,用来对 Android 设备的 boot 镜像(boot.img)做解包、修改和重打包。你想注入 ramdisk 获取 root、替换内核或改启动参数,都要靠它。本文以"完成一次 boot.img 定制"为任务,把整个流程走一遍。

先看 boot 镜像里有什么

boot 镜像是一种容器格式,主要由这几部分组成:

组件作用
kernelLinux 内核,负责硬件抽象与系统调度
ramdisk.cpio初始内存文件系统,含 init 进程与启动脚本
dtb设备树,描述硬件结构,部分机型才有

解包后每个部分都会落成当前目录下的独立文件。绝大多数 root 相关的定制都发生在 ramdisk 上,kernel 和 dtb 通常原样保留。

📥 动手前:获取并备份原始 boot.img

来源有两条路:从官方固件包或自定义 ROM zip 里提取;如果你手上只有 OTA 包的payload.bin,MagiskBoot 可以直接抽分区:

./magiskboot extract payload.bin

多数设备要取boot.img;如果设备有独立的init_boot分区(如 Pixel),应改用init_boot.img。Magisk 应用主页的 "Ramdisk" 状态可以帮你确认 boot 分区里到底有没有 ramdisk:

动手前定两条规矩:第一,保留一份未改动的原始镜像,单独命名、单独存放;第二,bootloader 必须已解锁。改坏后的镜像刷不进分区时设备无法启动,只能进 fastboot 重刷,没有别的路。

🔨 主线:完成一次 boot.img 定制

解包 boot.img 并查看内容

./magiskboot unpack -h boot.img

-h会同时把镜像头信息写进header文件,重打包时可用来改头部配置。解包完成后,目录里出现 kernel、ramdisk.cpio、dtb 等文件。想确认 ramdisk 里有什么,用 cpio 子命令列目录:

./magiskboot cpio ramdisk.cpio ls

ramdisk 修改命令

不必手动解压 cpio,cpio子命令原地增删改,每条命令单独加引号:

./magiskboot cpio ramdisk.cpio "add 0755 magisk magisk" ./magiskboot cpio ramdisk.cpio "rm init.custom.rc" ./magiskboot cpio ramdisk.cpio "exists init"

上面分别演示了添加文件、删除条目、判断路径是否存在。若要改内核命令行参数(cmdline),编辑解包时生成的header文件即可,无需碰二进制。

重打包镜像并校验签名

./magiskboot repack boot.img my_boot.img

repack 以原始镜像为模板,保留原 header,各组件按原格式压缩回写,所以第一个参数必须传你当初解包用的那个镜像。设备启用 AVB 校验的,打包后要补签名再刷入:

./magiskboot verify my_boot.img ./magiskboot sign-avb1 my_boot.img

⚠️ 容易翻车的三个点

解包报格式错误、或解出来没有 ramdisk。原因多半是拿错了镜像:这个设备的关键组件在vendor_boot或init_boot里。处理:确认分区名再取对应镜像;unpack 对 vendor_boot 格式会返回 3,别当成失败。

重打包后设备无法启动。原因通常是工作目录混入了别的解包残留——repack 会把当前目录里所有匹配文件打进去。处理:清理目录后从原始镜像重新解包、重新修改。

设备拒绝启动修改后的镜像。症状是 verified boot 直接拦下。原因:镜像需要 AVB 1.0 签名,而 repack 之后没签。处理:先verify确认签名状态,再用sign-avb1重签。

🔄 回退方案:恢复原始镜像

刷回保留的原始镜像即可,这是最可靠的回退方式:

fastboot flash boot boot_stock.img

两个注意点。A/B 分区设备上 boot 分成 boot_a 与 boot_b,确认你刷的分区和当前使用的 slot 对应,别只改了一半。OTA 升级会用官方新镜像覆盖你的修改,升级后需要对新镜像重做一遍定制,相关流程可参考仓库的 docs/ota.md。另外 Magisk 应用的卸载对话框里也有 "Restore Images" 选项,只移除 Magisk 的修改、保留系统其余部分:

🔎 延伸

  • 源码:工具主体在仓库的 native/src/boot/ 目录,格式解析、压缩、cpio 与 dtb 处理都能在那里找到。
  • 参数大全:docs/tools.md 记录了每个子命令的完整用法与返回值,遇到不认识的参数先查这里。
  • 社区:项目仓库的 issue 区和 XDA 论坛里有大量机型相关的定制记录,遇到厂商私有格式时值得检索。

【免费下载链接】MagiskThe Magic Mask for Android项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询