Magisk 安卓 Root 完整安装指南:只改 boot 镜像,升级和还原都有路可走
【免费下载链接】MagiskThe Magic Mask for Android项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk
担心开 Root 会刷坏系统分区、银行 App 直接拒用、一次 OTA 就前功尽弃——这些顾虑基本决定了你不敢碰 Root。Magisk 的核心思路是只修补 boot 镜像、不碰只读系统分区:Root 权限、模块定制、系统更新全走同一套机制,出问题把原厂镜像刷回去就能还原,支持 Android 6.0 及以上设备。
为什么说 Magisk 更适合长期留着 Root
传统路线(刷第三方 Recovery、直接改系统分区)改动面大,回退基本等于重刷整机,完整性校验也过不了。Magisk 的注入点在开机最早的 boot 阶段,系统分区保持原样,这让它适合"装了就不想拆"的使用方式:
| 关注点 | 第三方 Recovery / 改系统分区 | Magisk |
|---|---|---|
| 实际改动的位置 | Recovery 或只读系统分区 | 仅 boot 镜像 |
| 撤销成本 | 多数情况要重刷整机 | App 内还原备份的镜像即可 |
| 系统完整性校验 | 大概率失败 | 分区未被写入,校验保持通过 |
| 加功能的方式 | 各刷各的包,互不兼容 | 统一模块机制,安装与卸载都走 App |
另外两点会直接影响使用体验:Magisk 自带一套完整的 boot 镜像处理工具(magiskboot),改镜像、调试开机流程不用另找工具;它的 su 权限逐应用授权并全程留日志,而不是"一键全放"。
安装前准备:解绑 Bootloader 并确认要拿哪个镜像
先确认两件事,再下载任何东西:
- 设备的 Bootloader 已解锁(解锁会清空数据,务必提前备份)。
- 会用
adb和fastboot,且电脑装了对应的平台工具。
然后下载并安装最新版 Magisk App,打开它。主页会直接给出本机设备信息,其中Ramdisk 一行的结果决定了你该提取哪个镜像:
- Ramdisk 为Yes:从官方固件包或自定义 ROM 里提取
boot.img(存在init_boot.img时优先拿它)。 - Ramdisk 为No:提取
recovery.img。这类设备没有 boot ramdisk,Magisk 只能挂在 recovery 分区上,之后每次想带 Magisk 开机都得先进 recovery(开机组合键进启动画面后松手即进入,长按音量加才进真正的 recovery 界面)。
预期结果:手里有一份与本机版本严格匹配的镜像文件,App 主页正常显示设备信息。到这一步如果镜像和系统对不上,后面一切操作都会出问题。
Samsung 设备多两道坎:安装会触发 Knox 保修位(不可逆),且首次安装必须完整清除数据。流程上改用 Odin 刷入在 App 里修补过的 AP 包,细节见 docs/install.md 的 Samsung 章节。
在目标手机上修补镜像并刷入
⚠️ 铁律一条:修补必须在目标手机本机上做。刷别人分享的修补镜像、或在另一台机器上修补——哪怕型号完全相同——都可能要清全部数据才能救回来。
具体操作分三步,每步都有可核对的结果:
操作 1:把镜像拷进手机,点 Magisk App 里 Magisk 卡片的Install,方式选"选择并修补一个文件"(若是 recovery 镜像,先勾选 Recovery Mode 选项),选中镜像开始。预期结果:手机 Download 目录生成magisk_patched-xxxx.img。
操作 2:把修补好的镜像拉回电脑。
adb pull /sdcard/Download/magisk_patched-*.img操作 3:手机进 fastboot 模式,按镜像类型刷对应分区并重启。
fastboot flash boot magisk_patched-*.img fastboot reboot分区名和镜像类型保持一致(init_boot/recovery同理)。若设备有独立的vbmeta分区,可选执行fastboot flash vbmeta --disable-verity --disable-verification vbmeta.img,注意这一步可能清除数据。
预期结果:重启后打开 Magisk App,若弹出"环境修复"提示,点确定并等它自动重启;之后主页显示 Magisk 版本号,su请求即可正常弹出——Root 已生效。
OTA 系统更新后如何保住 Root
这是装机后使用频率最高的场景。Magisk 不改动只读分区,官方 OTA 因此可以正常走,但顺序不能乱。
目标:升级完成、Root 仍在、模块可用。
步骤:
- 开发者选项里关掉"自动系统更新",别让它在没确认的情况下装完就重启。
- 更新就绪后,进 Magisk App 的卸载 → 还原镜像,把 boot 等分区从安装时的备份还原成原厂状态,用来通过升级前的完整性校验。这一步之后不要重启,否则等于直接卸载了 Magisk。
- 走正常的系统升级流程(设置 → 系统 → 系统更新),等"安装更新"和"优化设备"两步都完成,不要点"立即重启"。
- 回到 App 选安装 → 安装到未使用的槽位,把 Magisk 装进刚更新好的槽位,装完后按 App 提示回系统更新页点"立即重启",或直接用 App 内的重启选项进新槽位。
结果:A/B 架构设备全程 Root 不中断,App 会跟踪槽位切换、绕过升级后的校验。非 A/B 设备则没有两全方案——升级后系统变回 100% 原厂,需要按前文流程重新修补刷入一次(且要求 recovery 分区保持原厂)。完整流程可对照 docs/ota.md。
装好之后的两个高频动作:模块管理与 Root 授权
装模块加功能:从可信来源下载模块 zip(作者明确、更新活跃、规则说明清楚),进 App 的模块页选"从本地安装",装完重启。之后在模块页对单个模块禁用或卸载,重启即恢复原状,系统分区始终没被写过。
管 Root 授权:进 App 的超级用户页,应用请求su时会出现请求卡片,逐条允许或拒绝;可以给单个应用设授权超时,所有授权动作都留日志,之后随时撤销、删除记录,不再信任的应用不留权限残留。
排障:常见故障与自救方法
| 现象 | 可能原因 | 处理办法 |
|---|---|---|
| 刷完开不进系统 | 刷了别人分享的修补镜像,或镜像与设备不匹配 | 用原厂 boot 镜像刷回;镜像必须在本机修补 |
| 装模块后循环重启 | 模块与系统冲突 | 用下面命令清空全部模块;或进 Magisk 安全模式(开机动画出现前数秒按音量减、出现时松开) |
| 银行、游戏 App 检测到 Root | 官方不再内置 Root 隐藏 | App 设置里开启 Zygisk,再装一个社区的 Zygisk 隐藏模块 |
| 更新后 App 显示"已安装 = N/A" | 隐藏用的 stub 应用与完整应用冲突 | 到系统设置 → 应用里找到隐藏的 stub(默认名叫 Settings)卸载,再重装完整应用 |
模块循环重启最稳妥的远程处理方式(前提是开了 USB 调试):
adb devices adb shell magisk --remove-modules第一条确认手机在线,第二条删除全部模块并自动重启,重启回来即可正常进系统。没有 USB 调试时才退而用安全模式按键,注意 Magisk 的按键检测早于系统,网上"动画出现后再按"的时机往往太晚。更多问答在 docs/faq.md。
进阶方向:模块开发、Zygisk 与官方工具链
💡 只给方向,细节看文档:
- 模块开发:一个模块本质是放进
/data/adb/modules的目录,module.prop声明元数据,post-fs-data.sh与service.sh分别在数据挂载前后的开机阶段执行,需要改 SELinux 时加sepolicy.rule。完整结构见 docs/guides.md。 - Zygisk:把代码注入每个应用的 Zygote 进程,让模块在应用启动前挂上钩子。官方不再内置 Root 隐藏,社区主流隐藏方案基本都基于它。
- 官方工具链:magiskboot(解包/重打包 boot 镜像)、resetprop(系统属性操作)等二进制和全部 applet 的用法整理在 docs/tools.md;想理解开机流程本身,读 docs/details.md。
下一步
Magisk 用一次 boot 刷写换来可控的 Root、可插拔的模块,以及能跟上官方更新的可回退状态。按 docs/install.md 完成首次刷入,日常维护对照 docs/ota.md,动手写模块或研究原理再翻 docs/guides.md。
【免费下载链接】MagiskThe Magic Mask for Android项目地址: https://gitcode.com/GitHub_Trending/ma/Magisk
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考