Android 用 Magisk 获取 Root:4 步修补 boot 镜像,系统分区保持原样
【免费下载链接】MagiskThe Magic Mask for Android项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk
本文带你完成 Magisk 的 Android Root 方案:它只改动 boot 镜像,系统分区保持原样。从解锁 Bootloader、备份数据开始,到本机修补镜像、fastboot 刷入,每一步都给了验证点;还覆盖模块加功能、系统升级后保留 Root、按应用管理授权,以及刷入失败、循环重启等常见故障的恢复方法。
动手前:解锁 Bootloader 和要备份什么
Magisk 的注入点在开机最早的 boot 阶段,所以刷入前必须让手机接受非官方镜像,也就是解锁 Bootloader(解除原厂对开机分区的签名限制)。
- 在开发者选项里打开"OEM 解锁",按机型要求进 fastboot 模式执行解锁。解锁会清空全部数据,照片、聊天记录先备份好。
- 三星机型还有额外条件:Knox 保修位会永久触发,首次安装要求整厂重置。如果你用的是三星,先把 docs/install.md 里 Samsung 那一节完整读完再动手。
- 明确 Magisk 会动哪里:只有 boot(或 init_boot、recovery)分区被替换,
/system、/vendor这些只读分区全程不写。这一点决定了它出问题后回退的成本很低——把当初备份的原厂镜像刷回去就行。
验证点:开发者选项里 OEM 解锁可用、数据已备份,手里有一份与本机型号匹配的官方固件包。
安装流程:4 个动作与每步的验证点
动作 1:装 App,看主页判断拿哪个镜像。安装最新版 Magisk App 后打开主页,Magisk 卡片会显示本机设备信息和 Ramdisk 结果(Yes 或 No)。
Ramdisk 是 boot 镜像里存放启动脚本的区域,它决定你该去官方固件包里提取哪个文件:显示 Yes,取boot.img(如果固件里有init_boot.img就取它);显示 No,取recovery.img,这类设备每次开机都要先进 recovery,Root 才生效。验证点:卡片显示设备信息,你已确认要取的镜像文件名。
动作 2:在手机上修补镜像。把镜像文件拷进手机,点 Magisk 卡片的 Install 按钮,方式选"选择并修补一个文件",选中镜像开始。修补这一步必须在你打算装 Magisk 的那台手机上做,不要用别人分享、或在别的机器上生成的修补文件,跨机使用可能让你只能靠清数据来救设备。验证点:手机 Download 目录里出现magisk_patched-xxxx.img。
动作 3:fastboot 刷入并重启。把修补后的镜像拉回电脑,手机重启进 fastboot 模式执行:
adb pull /sdcard/Download/magisk_patched-*.img验证点:电脑上能看到拉下来的magisk_patched-*.img,且大小与手机端一致。
fastboot flash boot magisk_patched-*.img fastboot reboot第一条命令里的分区名要和你的镜像类型保持一致:init_boot镜像就刷init_boot,recovery 镜像就刷recovery。验证点:刷入命令返回OKAY,设备重启。
动作 4:确认 Root 生效。重启后打开 Magisk App,若弹出环境修复提示,点确定等它自动重启。验证点:主页 Magisk 卡片显示具体版本号,Installed 不再是 N/A。到这里 Root 就装好了,后续所有操作都在这台 App 里完成。
为什么改 boot 比改系统分区更稳妥
装完之后回头看一眼 Magisk 和传统 Root 路线的差别,你就明白它为什么适合长期保留。
| 对比项 | 直接改系统或刷第三方 Recovery | 装了 Magisk 之后 |
|---|---|---|
| 动到哪些分区 | Recovery 和系统分区一起动 | 只有 boot(或 init_boot / recovery)被替换 |
| 系统完整性校验 | 大概率过不了 | 只读分区没被碰,校验照常通过 |
| 出错后的回退成本 | 常常要整机重刷 | 刷回当初备份的原厂镜像即可 |
| 加功能的方式 | 各家包互不兼容 | 统一模块机制,装、卸、禁都在 App 内完成 |
核心逻辑只有一句:改动面被限制在开机最早的一环,且这一环有安装时自动生成的备份。回退、升级、加功能因此都能走同一套流程。
装完 Magisk 常做的三件事
用模块给手机加功能
想加广告拦截、性能调节、界面定制这类能力,不必重刷整机。流程是:从来源可信的渠道下载模块 zip,进 Magisk App 的模块页,选"从本地安装",装完重启。模块页对每个模块都能一键禁用或卸载,禁用后重启即恢复原状,只读分区自始至终没被写过。
系统 OTA 之后保住 Root
收到系统更新想升级又不想丢 Root,按下面的顺序做:
- 先去开发者选项关掉自动系统更新,避免更新在后台悄悄装完直接重启。
- 更新下载好后,进 Magisk App 的"卸载 → 还原镜像",把 boot 等分区恢复成原厂状态,让升级前的校验能过。做完这步先别重启。
- 走正常升级流程,等"安装更新"和"优化设备"两步都完成,不要点"立即重启"。
- 回到 App 选"安装 → 安装到未使用的槽位",等它装完,再按 App 提示回系统更新点重启进新槽位。
A/B 架构的设备这样走完,Root 全程保留;非 A/B 设备升级后 Root 会丢,需要按前面的 4 个动作重新走一遍。
按应用管理 Root 授权
进 App 的超级用户页。应用请求 su 时会出现请求卡片,你逐条允许或拒绝,也能给单个应用设授权超时。所有授权动作都会进日志,之后在同一页随时能撤销授权、删除记录,不再信任的应用不会留权限残留。
刷完出问题:按这张表排查
⚠️ 下面四种情况出现频率最高,先对照表定位,再执行对应动作。
| 你看到的现象 | 最可能的原因 | 你可以做什么 |
|---|---|---|
| 装完模块后循环重启 | 某个模块与当前系统冲突 | 用下面 ADB 命令清掉全部模块;或在开机动画出现前提前按住音量减、出现时松开,进 Magisk 安全模式 |
| 银行、游戏应用报出 Root | 官方版本不再自带 Root 隐藏 | 在 App 设置里开启 Zygisk,再装一个社区的 Zygisk 隐藏模块 |
| 升级后 App 显示 Installed = N/A | 隐藏用的 stub 应用和完整应用共存打架 | 到系统设置 → 应用里找到那个默认名叫 Settings 的隐藏 stub 卸载,再重新打开完整应用 |
| 刷完开不进系统 | 刷了别人分享的修补镜像,或镜像与本机不匹配 | 用原厂 boot.img 刷回 boot 分区;记住镜像永远在自己这台手机上修补 |
模块冲突最省事的远程处理:
adb devices验证点:输出里出现你的设备序列号,说明 USB 调试连通。
adb shell magisk --remove-modules验证点:该命令会删除全部模块并自动重启,设备重新进系统、模块页变空即成功。若你连 USB 调试都没开,就用音量减组合键进 Magisk 安全模式,它会自动禁用全部模块让你正常开机。
再往深走:方向、入口和收尾
💡 愿意多看几行代码的话,Magisk 留了两个方向,这里只点到为止。
- 模块开发:一个模块本质是个 zip,
module.prop声明名字和版本,post-fs-data.sh与service.sh分别挂在数据分区挂载前后两个开机阶段,需要动 SELinux 时加sepolicy.rule。目录结构、脚本变量、打包规范在 docs/guides.md 里有完整说明。 - Zygisk:它把代码注入到每个应用进程的 Zygote 阶段,让模块在应用启动前就挂上钩子。官方版本不再内置 Root 隐藏,这件事交给了社区 Zygisk 模块生态,目前大多数隐藏方案都基于它。
Magisk 用一次 boot 刷写,换来可控的 Root、可插拔的模块、跟得上官方更新的系统状态。下一步建议按 docs/install.md 核对刷入细节,遇到具体报错查 docs/faq.md,要改 boot 镜像、调试开机流程时看 docs/tools.md 里的 magiskboot 与 resetprop 用法。
【免费下载链接】MagiskThe Magic Mask for Android项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考