本文介绍的是 MTK 设备刷机获取 Root 权限的通法,使用 Magisk 方案。注意,可能并非所有设备均能成功。

本文以 Aigo M2 Pro 智能播放器为例,此播放器搭载 Android 5.1。这个例子的特殊性在于,官方并不提供原厂镜像的下载。

所有涉及电脑的操作在 Windows 系统下完成。

现在经常有“设备获取 Root 权限不安全”的说法,这种说法过于绝对。

传统方案 Root 的不安全主要来源于第三方 Recovery 系统,这允许任何人不经验证直接备份数据和修改系统文件。目前的 Root 方案较为完善,用户获取 Root 权限并不一定不安全,善用 Root 还能保护隐私。但是,对于使用不谨慎或喜欢冒险的用户,确实会大大增加隐私泄露、数据丢失、设备损坏的风险。若设备遭已获取 Root 权限的恶意软件攻击,则后果也会比一般的恶意软件攻击严重得多。

Magisk 方案是目前最为完善的方案,该方案不需要使用第三方 Recovery 系统,因而设备丢失后,对设备安全造成的影响也较小。

本文的写作时间是 2022 年第一季度。
请留意文章的时效性。

部分应用(主要为安全性要求高的银行应用、政府公共服务应用以及反作弊要求高的游戏应用,但不含主流大厂的实用型应用)会检测设备上是否已获取 Root。若检测到,会采取警告、禁用敏感功能、要求登录验证码、拒绝加载等措施来规避可能的风险,游戏可能会不加警告而直接封号

对此,你需要采取 Root 隐藏措施。即便如此,你还需要手动选择隐藏 Root 的对象。因此在安装上述类型软件后,请务必记住要立即对其开启 Root 隐藏,以免造成不必要的麻烦。

关于一些简单易用的 Root 隐藏措施,可以看这篇文章

注意,本文根据个人经验编写,内容可能并不完全准确。
若学习操作,导致设备出现系统损坏、无法开机或正常使用以及数据丢失等问题,机主应当自行承担责任。

为防止操作出现疏漏,请至少完整阅读一遍后再开始操作。建议使用电脑等大屏设备阅读。

刷机,Root,Magisk,为什么?

Root 意味着什么?

Root 意味着自由

Root,指的是 root 用户。该用户对设备有最高的权限。获取 Root 权限,即修改系统,使得用户和应用能够以 root 用户的身份执行操作,也就是说,用户获得对设备的最高访问权,真正实现了“我的设备我做主”。

Root 权限的使用方式主要分为两类。一种是获取系统特权,常见应用如下:

  • 利用文件管理器或破解工具自由备份、还原应用的数据和游戏进度。
  • 利用系统权限禁用/隐藏应用,或禁止应用后台运行。
  • 禁用,或在当前用户空间下卸载系统应用。
  • 自由操纵应用的权限,例如禁止自启动。
  • 使用内存修改器对游戏数据进行破解。
  • 修改受保护的系统设置,例如无障碍服务。
  • 修改系统内存,实现更改设备 MAC 地址保护隐私/绕过身份验证等。
  • 修改隐藏的设置项,例如使状态栏上的时间精确到秒(这个一般不需要 Root 也能做到)。

另一种,为修改系统。常见应用如下:

  • 定制系统的开机动画。
  • 彻底清除、替换系统应用。
  • 将应用安装为系统应用。
  • 修改内核选项。
  • 修改系统构建信息,以实现修改设备的制造商、机型等信息。
  • 对系统核心进行破解,以移除应用覆盖安装时的版本和签名检测(对破解游戏比较有用)。
  • 调校充电速度等行为。
  • 对硬件超频以压榨性能。

同样,Root 意味着风险

  • 若对恶意软件授予 Root 权限,其将具有非常大的破坏力。
  • Root 权限使用时不谨慎,或因为各类天灾人祸,会导致系统损坏与数据丢失。
  • 系统更新变得麻烦。若原厂镜像未备份或系统被修改,设备将无法直接接受增量更新,需要刷机才能升级系统

我需不需要 Root?

是否需要 Root 取决于你需要进行的操作类型。

如果你的需求在 adb shell 下,或使用 adb 授权就能够完成(系统特权型中的大多数均属于此类),则很可能不需要 Root。如今,更加流行一些免 Root 获得系统特权的权宜之计(例如 Shizuku API)。相比于 Root,这种方式的风险小得多,更值得提倡。

如果你需要修改系统,或从事应用/游戏破解、Android 核心破解等工作,则你需要 Root。

为什么是 Magisk?

传统的 Root 权限方案是 SuperSU,该方案主要通过修改系统分区 /system 来安装 Root 权限。

Magisk 是一个较新的方案,主要优势如下:

  • #️⃣ 轻量化修改。相比于 SuperSU,其只修改比系统分区小得多 boot 分区。因此,刷机过程要快很多,移除 Root 权限并还原原厂镜像容易得多。
  • 🚫 无系统(Systemless)方式。Magisk 不修改系统分区,使得设备接受后续系统更新要容易很多。
  • 🧩 模块(Modules)。Magisk 提供许多使用无系统方式修改系统的模块。
  • 💧 隐藏(MagiskHide)。Magisk 内置了对其他应用隐藏 Magisk 和 Root 权限的工具,这使得对 Root 权限敏感的游戏、银行等软件仍然能正常使用。
  • ⚡ 一次性刷机方案。Magisk 的安装只需要一次刷机就能完成,不使用第三方 Recovery 系统。这使得第三方 Recovery 不支持某一设备的问题得到解决,且对系统的安全性影响比较小。

为什么刷机?

如果早些时候(2014 年左右)你接触过 Root 权限的获取,你可能会知道许多“一键 Root”等免刷机的 Root 权限获取软件,有的系统甚至直接允许用户打开 Root 权限。为什么如今获取 Root 如此麻烦?为什么刷机风险这么大,却又说刷机其实是最明智的选择?

原因之一,是如今“一键 Root”等工具已经不好用了。

这类软件往往使用系统漏洞进行破解。事实上,这是一个很大的安全性问题,因为不只是一键 Root 工具可以使用漏洞,其他的任何软件都可以,而一旦恶意软件获取 Root 权限,Android 权限管理对其就形同虚设。如今,随着安全漏洞的修复,此类工具自然也就越来越难用了。

然而,刷机却不利用奇技淫巧,具有理论可行性,因而成为了公认的“通解通法”。

原因之二,也是最重要的原因,就是“权力越大,责任越大”。我们常说,如果一个设备制造商允许用户刷机并给了教程,那它确实是在支持用户折腾设备;如果设备制造商直接允许在设置中开启 Root 权限,那么它是在给维修点刷业绩。正因如此,我强烈反对使用人工代刷服务来获取 Root 权限。

获取 Root 权限并非一劳永逸。由于 Root 权限意味着设备最高访问权,一旦后续使用 Root 权限时不谨慎,系统就可能被弄坏。此时,必须使用刷机方式才能修复设备,而使用“一键 Root”工具的人,往往不具备刷机的知识和技能,因此设备只能被送去维修,或者报废。使用刷机方法获取 Root 的过程中,机主锻炼了自身的技能,并已经下载到或者备份好了原厂镜像。只有这样,机主才算是真正拿到了“搞机资格证”。

\large{\text{刷机会不会清除数据?}}

刷机本身不清除数据。但是,下面几种情况需要清空数据。

  • 用正常 Fastboot 方式解锁 Bootloader,会一并清除数据。(通常,这只需要做一次)
  • 安装第三方操作系统,通常要自行清空数据,否则系统无法正常工作。
  • 获取 Root 权限后,不当修改系统数据、禁用系统组件,设备出现无法开机、无限重启的问题。

各种各样的刷机事故也会导致需要清除数据。因此,开始前,请对重要数据做好备份

我用的是不是 MTK 设备?

如果你用的设备是常见的手机、平板等,请上网查询资料确认设备的芯片(若看到 MT65xx、MT67xx、天玑等则为 MTK 设备)。

如果你的设备不常见,尝试在设置中查看系统应用列表。若存在名为 com.mediatek 的应用,则说明是 MTK 设备。

一定能成功吗?

不一定。

以下是常见的不能成功的情况:

  1. 设备制造商不允许 Bootloader 解锁*,系统有启动验证。
    (Android 5.1 及以下的设备一定不具有启动验证)
  2. 官方不提供原厂镜像,且锁定了 Preloader。*
  3. 设备没有 Boot Ramdisk,因而不支持正常安装 Magisk。
  4. 官方不提供厂刷包,且设备无法启用 ADB,因而无法获得分区表。
  5. 系统版本不受支持(Magisk 目前支持 5.0~11.0)。

当然这些情况也不意味着一定不成功。有例外情况:

  • 部分 MTK 设备中,Bootloader 解锁可以利用漏洞强制进行(工具为 MTK Client),且这不会清除数据。此处不赘述其方法。
  • 如果系统没有启动验证,则 Bootloader 可以不解锁。
  • 部分设备中,Preloader 锁可以使用 MTK Auth Bypass 绕过,此处不赘述其方法。
  • 没有 Boot Ramdisk 的设备,可以使用第三方魔改过的 Magisk(这种情况下 MagiskHide 将无法使用)。
  • 无法获得分区表时,可先用 SP Flash Tool 回读(此操作下文会介绍)整个闪存的前 1/4 空间,然后利用十六进制编辑器确认其中 boot 和 recovery 分区的位置,手动编写出不完整的分区表,然后对 boot 镜像安装 Magisk,或利用 boot 分区生成合适的 TWRP(一个第三方 Recovery 系统),然后查看系统文件对设备进行进一步破解。此操作相当复杂,此处不介绍。

准备工作

如果需要,学好基础知识

[基础预科] ADB、Android 终端、Android 用户权限

[基础预科] Android 分区、启动模式、Fastboot

确认设备如何强制关机

开始刷机操作前,请确认自己知道如何强制关机或重启设备,并且已经尝试成功过。常见方法有这些:

  • 拔掉充电器,然后拆除内置电池,将会关机。(适用于电池可拆卸的设备)
  • 长按电源按钮 10s,强制重启。(适用于大多数设备)
  • 同时按住电源按钮和音量下按钮,保持 10s,强制重启。(主要为三星设备)
  • 同时按住电源按钮和音量上按钮,保持 10s,待屏幕熄灭或感受到振动后立即放开,即为强制关机。(OnePlus)
  • 同时按住电源按钮和两个音量按钮,待屏幕熄灭后立刻放开,即为强制关机。(适用于大多数设备)
  • 用细小物体(建议取卡针)戳麦克风孔(或电源按钮附近的一个孔),触发其中的开关。(适用于学习机、媒体播放器、移动数据终端等设备)
    提示:不要用缝衣针的尖端戳麦克风孔,以免损坏麦克风。

确认 USB 接触良好

接触良好的 USB 接口和数据线是刷机的基础。若刷机过程中连接断开,将产生无法开机的后果(重新刷入受损的分区可以恢复)。

建议使用 Type-C 接口的 USB 集线器,刷机过程中不要在集线器上插拔设备。

安装 ADB 环境

若电脑上没有 ADB,请先安装。方法参照此处

启用 USB 调试

安装 ADB 后,启用设备的 USB 调试,并确认能正常使用,然后对电脑进行“始终允许”的 USB 调试授权。方法参照此处

如果你手里的设备就是 Aigo M2 pro,那么该设备的开发者选项是被隐藏的,无法通过正常方式打开。你可以安装带有活动选择器的应用将其打开,但是,下面的步骤会更加简单:

  1. 将设备通过 USB 连接至电脑。
  2. 下拉通知栏,找到选择连接模式的通知,点击打开模式选择界面。
    此时若打开多任务界面(导航栏方形按钮),会发现此页标题是“开发者选项”。
  3. 拔掉数据线,模式选择界面将会关闭。
  4. 打开多任务界面,点击刚才的“开发者选项”窗口。窗口将打开失败,系统跳转回桌面。
  5. 再次打开多任务界面,点击“开发者选项”窗口,将会进入开发者选项。

或者,

  1. 打开“设备状态”页面。
  2. 快速点击“内核版本”多次。
  3. 弹出密码输入框,输入密码 hys123 并确定。若这个密码没用,则尝试在终端中执行 getprop ro.custom.developer.pw 获取密码。

下载 MTK Droid Tools

MTK Droid Tools 用于导出分区表。

下载 MTK Droid Tools(压缩包密码:MTK),并解压到恰当的位置。

下载 SP Flash Tool 和驱动

SP Flash Tool 用于提取/备份原厂镜像并进行刷机。

下载驱动程序

下载旧版 SP Flash Tool,用于处理 MT65xx 平台

下载新版 SP Flash Tool

备份重要数据

无论采用何种方案,开始前,请备份好所有能备份的重要数据。数据无价!

允许 OEM 解锁

进入开发者选项,打开“允许 OEM 解锁”开关,按提示输入设备锁屏密码,以允许后续解锁 Bootloader(虽然可能未必需要)。

此开关一般位于开发者选项第一屏内。如果没有,说明 Bootloader 可能无法解锁,但是若确认设备没有启动验证,也可以继续操作。

调整心态

刷机是风险较大的操作,尤其是第一次进行,不熟悉流程的时候。新手如果出现重大失误,很可能一步错,步步错,最后把设备彻底弄坏。

刷机时,请选择安排不紧张的时间段,保证至少一小时的连续空闲时间,切忌仓促行事。

开始前,深呼吸,使心情平和。第一次刷机时,如果有条件,请使用低价的备用机练习,不要使用主力设备。

操作过程中,时刻记住正确的操作决不会置设备于死地。要细心,但也要胆大,不能过度紧张。

在两个步骤之间,或者在等待的时候,可以吃点东西,去房间外放松休息。

概览

注意多个方案只需要选一个。

这只是概览,不要直接对着操作。预计用时假设操作者是新手,但操作顺利。

  • 安装 Magisk App 3分钟
    • 🔰 下载并安装 App 3分钟
    • 👀 查看 Ramdisk 是否为“是”,确认是否受支持 0分钟
  • 获取分区表 5分钟
    • 🧷 设备连接至 USB 调试 3分钟
    • 🧱 打开 MTK Droid Tools,创建分区表文件 2分钟
  • 提取原厂镜像 12分钟
    • ⚙️ 安装 MTK 驱动 1分钟
    • 🗒️ 打开 SP Flash Tool,设置好回读分区 2分钟
    • 💿 关机后,插入设备开始回读 1分钟
    • 📀 顺便备份好系统分区 8分钟
  • 修补镜像 4分钟
    • 🩹 利用 Magisk App 修补镜像 4分钟
  • 刷入镜像 - SP Flash Tool 方案 2~6分钟
    • 👀 判断设备是否有启动验证 0分钟
    • 🔓 如果有,解锁 Bootloader 0~4分钟
    • 🗒️ 打开 SP Flash Tool,选择刷入的镜像 1分钟
    • ⚡ 关机后,插入设备完成刷机 1分钟
    • 🚫 拔掉 USB 线 0分钟
  • 刷入镜像 - Fastboot 方案 5分钟
    • 🔓 解锁 Bootloader 4分钟
    • ⚡ 命令刷入新的镜像 1分钟
    • ⭕ 命令重启 0分钟
  • 刷入镜像 - Fastboot 方案稳妥版 8分钟
    • 🔓 解锁 Bootloader 4分钟
    • 🪛 用新的镜像测试启动 1分钟
    • 🔰 重新安装 Magisk App 2分钟
    • ⚡ 使用“直接安装”方式安装 1分钟
    • ⭕ 重启设备 0分钟
  • 开机体验 2分钟
    • 🔰 重新安装 Magisk App 2分钟
    • ✨ 打开需要 Root 权限的应用,或安装模块,开始使用

到达“刷入镜像”步骤之前,所有操作都没有对设备的系统造成更改。如果这种情况下遇到问题无法继续,需要撤销,请结束所有正在进行的操作,拔下数据线,强制重启设备,然后删除 Magisk App。

若已到达“刷入镜像”步骤,强烈建议做到底。如果真的出现问题需要撤销,请按照下文“快速故障排除”提示框内的指示进行。

安装 Magisk App

下载 Magisk App,使用 USB 传输、网盘等手段将其复制到 Android 设备上(或直接用 ADB 安装),完成安装。

安装后,打开应用,检查 Ramdisk 的状态。如果为“是”,那么恭喜,你的设备可以正常安装 Magisk。

▲ 设备支持 Magisk!

部分小米设备的 boot 镜像中没有 Ramdisk,但是启动引导程序实际上接受 Ramdisk。这种情况下,Magisk 会检测为“否”,并且目前没有正确的检测方式。你应当自己试试以确定设备是否受支持。

如果你的是三星设备,或 A/B 栏为是,建议同时参考一下其他文章再来操作。

快速故障排除
Q:应该使用哪个版本的 Magisk?
A:你能选择的最低版本取决于你的 Android 系统版本,例如 12 以上的用户只能选择 24.0 及更高版本;要使用 Magisk 的 Zygisk 特性,必须选择 24.0 以上版本或 Magisk Alpha;要使用 Magisk 原版隐藏 Root 的功能,必须选择 23.0 以下版本或 Magisk Alpha。
Q:Ramdisk 显示“否”,能否继续?
A:不建议继续。然而如果你使用的是小米设备,则应当尝试一下。
Q:在不支持的设备上安装,会怎么样?
A: 如果系统版本不支持(如 Android 4.4 及以下),则 Magisk 不会允许你安装;如果设备不接受 Ramdisk,则安装后无效,此时建议再次刷机撤销你的更改。

获取分区表

不同设备的分区表不同,甚至同样设备不同版本的系统分区表也可能不同。
请亲自完成分区表提取,不要使用网络上的分区表资源!

将设备连接到电脑,确认 USB 调试已开启,且 USB 连接模式不是“仅充电”

打开 MTK Droid Tools,等待设备上弹出 ADB 授权提示,点击“允许”。

▲ 授权窗口

此时观察 MTK Droid Tools 窗口,工具上将逐步显示出设备的详细信息,左下角方块为蓝色

▲ MTK Droid Tools 窗口

不要点击右下角的 ROOT,这是用于在已 Root 设备上申请 Root 权限的。点击 Blocks Map,在弹出的窗口中点击 Create Scatter File,将生成的 txt 文件保存到一个空文件夹不要更改文件名)。

▲ Blocks Map

如果你想知道保存出来的文件大概是啥样,可以查看此样例文件。注意,不要拿来使用!

快速故障排除
Q:MTK Droid Tools 无法检测到设备,且设备无反应。
A:检查通知栏内是否有“已连接到 USB 调试”提示;检查 USB 模式是否为“仅充电”,如果是,请切换;如果问题仍然无法解决,请换一台 Windows 10 及以上的电脑试试。
Q:USB 调试已打开,但通知栏不显示“已连接到 USB 调试”,也无法选择连接模式。
A:你的数据线可能不支持 USB 数据传输,或者你使用的 USB 接口不对。换一个试试。
Q:设备弹出了授权提示框,但检测不正常,无法创建分区表。
A:请再次确认设备是否为 MTK 设备。
Q:是否需要自行验视创建的 txt 文件?
A:不需要。

提取原厂镜像

安装驱动

打开 Windows 设备管理器。【搜索“Windows 设备管理器”】

将 Android 设备关机,然后通过数据线连接到电脑,立刻观察设备管理器。此时将短暂地出现“MediaTek MT65xx Preloader”设备(即使芯片是 67xx,设备名仍然是 65xx)。立即右键,选择“更新驱动程序”。选择“浏览我的电脑以查找驱动程序”,然后选择先前下载的 MTK 驱动目录,Windows 将会完成驱动安装。

快速故障排除
Q:这个操作有点困难。
A:请锻炼手速。另外设备插入时按住音量增大键,似乎设备出现的时间会更长。
Q:没有听到设备插入的提示音,设备直接显示充电界面。
A:你的数据线可能不支持 USB 数据传输,或者你使用的 USB 接口不对。换一个试试。
Q:能听到设备插入的提示音,但是找不到 MediaTek MT65xx Preloader。
A:这说明驱动可能已经装好了。
Q:驱动程序目录应该选哪个?
A:下载上文“下载 SP Flash Tools 和驱动”章节中的驱动压缩包,解压至合适的目录,然后在选择驱动时,直接选择解压到的位置,系统将自动找到驱动。

提取镜像

我们需要提取的是设备的 boot.img。另外,建议同时备份 system.img,以备不时之需。

此时,你应该知道了设备的芯片型号。选择合适的 SP Flash Tool 打开

在主界面选择“下载 DA”,选中 SP Flash Tool 目录下的 MTK_AllInOne_DA.bin;选择“配置文件”,选中上一步中保存的 txt 文件。下方将会显示分区表。

▲ SP Flash Tool 主界面

切到上方“回读”菜单。如果使用的是新版 SP Flash Tool,则此处所有内容已经自动填好,取消勾选所有项目,然后勾选 BOOTIMG(或 boot)和 ANDROID(或 system)分区即可。否则,将需要手动抄写 BOOTIMG 和 ANDROID 分区的信息,方式如下:

  1. 点击上方“添加”按钮。
  2. 打开 txt 文件,找到需要回读的分区信息。
  3. 双击 SP Flash Tool 下方新增的一行,选择镜像的保存位置。文件名建议和 txt 文件中 filename 一致。
  4. 选择后,弹出的窗口中区域选择 EMMC_USER,起始地址填写 linear_start_addr,长度填写 partition_size。请务必确保没有犯复制错内容、连续粘贴两次等错误。

完成分区选择或抄写后,点击顶部的“回读”按钮,然后将已关机的设备连接到电脑。此时,会听到一次设备接入电脑的提示音。软件几秒后将显示进度条,开始回读。

▲ 正在回读

这时,可以喝杯水,出去休息一下。(请放心,这一步是没有风险的)

稍后,回读将结束,此时会听到设备断开连接的提示音,十几秒后将弹出回读成功的提示框

此时 boot.img 和 system.img 镜像应当已经保存到你指定的位置。

▲ 回读完毕

确认镜像已保存后,拔下设备,开机。

\large{\text{为什么建议同时备份 system.img?}}

备份 system.img 不是必须的。然而,即便 Magisk 本身不修改系统,获取 Root 权限的应用则可能修改系统。以下情况下,你将需要原厂的系统镜像:

  • 系统已被修改,但现在需要接受增量系统更新。此时系统镜像必须完全恢复到原厂状态。
  • 使用 Root 权限过程中由于各种天灾人祸,系统分区被改坏。此时需要重新刷入系统镜像进行还原。

请注意,系统镜像修改后,设备能正常重启不代表系统镜像没有问题。只有恢复出厂设置(清空数据分区)后能正常开机才能完全证明系统镜像能正常使用。常见的情形是,使用幸运破解器破解 Android 核心时选择了“仅破解到虚拟机缓存”,然后破解了系统应用,此时若清除虚拟机缓存,则这些系统应用将不能正常加载。

使用 Magisk 时,你应当要对修改系统的操作有敏感性。较大规模修改系统时,请一次一备份,并保留所有历史备份,步步为营。

快速故障排除
Q:此操作是否会清空我的数据?
A:不会。但这时,你应该已经备份过重要数据了。
Q:为什么“你应该知道了设备的芯片型号”?
A:上一步保存分区表时,默认文件名应当形如 <芯片型号>_Android_scatter.txt
Q:“回读”是什么意思?
A:回读是刷机的逆向操作,即将设备中原有的系统镜像传输到电脑。
Q:如何快速找到 txt 文件中的分区?
A:用记事本打开,按 Ctrl+F,查找分区名。
Q:回读镜像应该保存到哪里?
A:建议与 txt 文件同一目录。
Q:为什么建议同时备份 system.img?
A:Root 后,有的操作难免会修改系统。备份系统分区可以使设备在需要接受系统更新时还原原厂,也可以用来在系统被玩坏时恢复。
Q:回读开始时出现奇怪的错误。
A:可能是这些情况:有的设备关机状态下插入时需要按住一个或两个音量键(设备连接成功后无须继续按住),请上网搜索,或自行尝试所有音量键组合,若成功,接下来刷入镜像时也请使用相同的音量键组合;你所用的 SP Flash Tool 可能和你的芯片不匹配,换另一个版本试试,若成功,接下来刷入镜像时也请使用同一版本;有的设备不支持用正常方法回读,这种情况下请前往官网下载镜像;有的设备设备有 Preloader 锁,请自行搜索 MTK Auth Bypass 尝试绕过,或知难而退,终止操作。
Q:设备插入时 SP Flash Tool 卡住/未响应。
A:这是正常的,请等几秒。
Q:回读时界面左下角显示的读取速度直线下滑。
A:这是速度计算机制的问题,请不要惊慌。速度不会降低到 0。
Q:由于 USB 接触不良,回读中道崩殂。
A:先调整心态,不要惊慌,这不会对设备的系统造成损害。在 SP Flash Tool 上停止回读(如果已经出错就无须再停止),拔下数据线,然后强制重启设备。接下来,再次关机设备。重新尝试前,先排查一下 USB 接触不良的原因。
Q:操作完成后,设备长按电源键无法开机。
A:正确开机操作:拔掉数据线,长按电源键至少 3s;如果仍然无法开机,可能是 Preloader 卡住,请尝试强制重启。
Q:开机后发现系统时间异常或重置,是不是中了病毒?
A:这是正常现象,不必惊慌。

修补镜像

将获取到的 boot.img 传输至 Android 设备中。

打开 Magisk App,点击“安装”。不勾选“保留 AVB 2.0/dm-verity”,安装方式选择“选择并修补一个文件”选择刚刚传输的 boot.img,并确保所选择的文件无误,然后确定。

Magisk 需要检测目标设备的系统版本和架构以正确完成镜像修补,故请避免在其他设备上修补。


打开内置文件管理器,将得到的新文件(位于 /sdcard/Download/ 下)改一个较短的名字,然后传输至电脑。

快速故障排除
Q:AVB 2.0/dm-verity 是什么?
A:就是启动验证。注意即使设备没有启动验证,这个选项也会显示。
Q:安装到 Recovery 是否要选?
A:如果设备可以正常安装,就不要选。
Q:修补操作失败。
A:请确保传入的镜像确实是从 BOOTIMG 分区提取的。
Q:如何确认传入的镜像是对的?
A:安装界面中,若出现“Stock boot image detected”,说明原始镜像大概率没问题。
Q:需不需要保留原始的未修补镜像?
A:一定要!如果你已经删了,请去回收站捞出来;如果回收站也没有,请再提取一次。

刷入镜像

刷入镜像有三种方案,仅需要选择其中一个。

  • SP Flash Tool 由于前面已经使用过这个工具,你应该已经基本熟悉最基本的用法。且若设备没有启动验证,则这也是最快、最方便的方法。
  • Fastboot 直接刷入 若设备有启动验证,则需要进入 Fastboot 模式解锁。此时这是最方便的方法。
  • Fastboot 测试启动 也需要解锁 Bootloader。这是最稳妥的方法,因为你可以在测试镜像能否工作后再决定是否刷入。
快速故障排除
Q:如何判断设备是否有启动验证?
A:原厂 Recovery 模式下可以判断,此处不介绍。你只须知道,Android 5.1 及以下版本不可能有启动验证,其他情况可一律当作有启动验证处理。
Q:刷入镜像是否会清空我的数据?
A:解锁 Bootloader 的过程会清空数据,其余刷入操作均不会。但这时,你应该已经备份过重要数据了。

SP Flash Tool 方式

自行判断系统是否有启动验证。如果有,参照这里重启进入 Fastboot 模式,并解锁 Bootloader。完成后,重启设备。重启设备后检查开发者选项中的“允许 OEM 解锁”开关,如果为开启状态且无法关闭,说明解锁成功,否则说明 SP Flash Tool 方式不能使用,应采用其他方式。

选择合适的 SP Flash Tool 打开。

在主界面选择“下载 DA”,选中 SP Flash Tool 目录下的 MTK_AllInOne_DA.bin;选择“配置文件”,选中上一步中保存的 txt 文件,确保文件准确无误。下方将会显示分区表。

▲ SP Flash Tool 主界面

下方的模式中选择“下载”。确保所有项目已经取消勾选,然后勾选 BOOTIMG(或 boot)分区,点击右侧的“位置”单元格,选择修补后的镜像

▲ 镜像已加载

仔细核对复选框和镜像位置无误后,拔下 Android 设备,并将其关机。

点击顶部的“下载”按钮,将关机的设备接入电脑。稍后,软件将开始操作。数秒后,将听到设备断开连接的声音。再过几秒,会弹出下载成功的提示框。

▲ 下载成功

此时,拔下设备并开机。

快速故障排除
Q:“下载”是什么意思?
A:下载即刷机,指的是将镜像从电脑传输到移动设备并刷入闪存中的过程。
Q:加载的镜像文件名是否一定要是 boot.img?
A:可以不是。
Q:下载开始时出现奇怪的错误。
A:你的设备可能有 Preloader 锁。请自行搜索 MTK Auth Bypass 尝试绕过,或知难而退,终止操作。
Q:设备插入时 SP Flash Tool 卡住/未响应。
A:这是正常的,请等几秒。
Q:下载时界面左下角显示的下载速度直线下滑。
A:这是速度计算机制的问题,请不要惊慌。速度不会降低到 0。
Q:下载时进度条会滚几次?
A:下载时通常有三轮进度条,第一轮为红色,为 DA 下载阶段,时间约 1s;第二轮为黄色,为镜像下载阶段,时间约 3s;第三轮为灰色,为校验阶段,时间约 1s。若软件出现卡顿,有可能只能看到最后一轮,这是正常现象。
Q:镜像文件修补后比原来大会怎么样?
A:这一般不会发生。如果真的这样,SP Flash Tool 会在加载镜像时报错,无须担心覆盖到其他分区上。
Q:由于 USB 接触不良,下载中道崩殂。
A:先调整心态,不要惊慌。在 SP Flash Tool 上停止下载(如果已经出错就无须再停止),拔下数据线,长按电源键 3s(此时屏幕可能亮也可能不亮)。点击“下载”按钮,然后将设备插入电脑,再强制关机或重启设备,下载将重新开始。
Q:操作完成后,设备长按电源键无法开机。
A:正确开机操作:拔掉数据线,长按电源键至少 3s;如果仍然无法开机,可能是 Preloader 卡住,请尝试强制重启。
Q:Bootloader 解锁后,正常开机显示 Orange State。
A:这只是一个警告,纯属正常,可以忽略。
Q:有启动验证的设备上不解锁就刷会怎么样?
A:设备会无限重启。刷回原镜像可以恢复。
Q:下载完成后,设备启动无限重启。
A:请确保下载成功完成,如果不是,请重做一遍。如果问题仍然存在,尝试解锁 Bootloader。若 Bootloader 已解锁/无法解锁,或问题仍然存在,则说明系统与 Magisk 不兼容,请重新刷入修补前的镜像撤销更改。
Q:开机后发现系统时间异常或重置,是不是中了病毒?
A:这是正常现象,不必惊慌。

Fastboot 直接刷入方式

参照这里重启进入 Fastboot 模式,并解锁 Bootloader。

然后执行 fastboot flash boot <修补后的镜像文件>,将其刷入。

刷入成功后,执行 fastboot reboot 重启。

快速故障排除
Q:Bootloader 解锁不成功。
A:请确认设置中的“允许 OEM 解锁”开关已经打开,若确实已经打开,说明 Bootloader 无法解锁。此时请尝试不解锁状态下使用 SP Flash Tool 方案。
Q:刷入时出现错误(boot-magisk_patched.img is not a boot image)。
A:这表明前面提取的镜像可能不对。请返回检查,不要立即尝试其他刷入方案。
Q:刷入时 USB 接触不良,中道崩殂。
A:重新插上 USB 数据线,再次执行刷机命令。
Q:Bootloader 解锁后,正常开机显示 Orange State。
A:这只是一个警告,纯属正常,可以忽略。
Q:刷入后,设备启动无限重启。
A:这说明系统与 Magisk 不兼容,请重新刷入修补前的镜像撤销更改。

Fastboot 测试启动方式

相比之下,这是最稳妥的方式,但是较旧的设备可能不支持测试启动。

参照这里重启进入 Fastboot 模式,并解锁 Bootloader。

然后执行 fastboot boot <修补后的镜像文件>。稍后,设备将启动进入系统。当前系统已经暂时具有“Magisk 试用版”,重启后将会复原。

如果桌面上的 Magisk 是安卓机器人图标,且点击后显示“需要下载完整版本的 Magisk”,不要理会。直接将 Magisk 应用的 apk 文件传输到设备中重新安装(如果安装不成功,请卸载桌面上的 Magisk 图标后安装)。

安装后,打开“Magisk App”,选择“安装”,不选中“保留 AVB 2.0/dm-verity”。此时将多出“直接安装”选项。确认后,Magisk 将永久安装到系统中。

完成后,立即重启设备。

快速故障排除
Q:Bootloader 解锁不成功。
A:请确认设置中的“允许 OEM 解锁”开关已经打开,若确实已经打开,说明 Bootloader 无法解锁。此时请尝试不解锁状态下使用 SP Flash Tool 方案。
Q:测试启动时出现错误(boot-magisk_patched.img is not a boot image)。
A:这表明前面提取的镜像可能不对,请返回检查,不要立即尝试其他刷入方案。
Q:测试启动不成功。
A:此时说明系统与 Magisk 不兼容,不要尝试其他刷入方案。
Q:Bootloader 解锁后,正常开机显示 Orange State。
A:这只是一个警告,纯属正常,可以忽略。
Q:启动后 Magisk App 检测不到 Magisk 版本,且无法直接安装。
A:请确保刷入的是修补后的镜像。

开机体验

如果设备成功开机,那么 Magisk 就安装完成了!此时请立即查看桌面上的图标。

如果桌面上的 Magisk 是安卓机器人图标,且点击后显示“需要下载完整版本的 Magisk”,不要理会。直接将 Magisk 应用的 apk 文件传输到设备中重新安装(如果安装不成功,请卸载桌面上的 Magisk 图标后安装)。

打开 Magisk App,将会看到 App 成功识别出了 Magisk 版本。屏幕底部会多出浮动工具条,主界面还会有“卸载 Magisk”按钮。

▲ Magisk 安装完成

现在,就可以安装需要 Root 的应用以及各种 Magisk 模块了。

系统内已安装 Magisk,或 Magisk 应用能够获取 Root 权限时,会提供“直接安装”选项。后续更新 Magisk 可以采用这一方式,不需要连接电脑刷机。

切勿用该方式降级安装 Magisk,这可能导致严重问题。要降级 Magisk,请先完全卸载,然后用刷机方式重新刷入。

\large{\text{要不要重新锁定 Bootloader?}}

Bootloader 解锁后,设备将被认为是“不安全”状态。

尽管如此,不建议安装后锁定 Bootloader,如果一定要锁定,请确保锁定前已经禁用启动验证(一般命令 fastboot oem disable-verity)。否则一旦 boot 或 system 分区遭到修改,设备将无法启动。

快速故障排除
Q:启动后 Magisk App 检测不到 Magisk 版本。
A:请确保刷入的是修补后的镜像。

\large{\text{禁用/隐藏/卸载 Magisk App 会怎么样?}}

Magisk 核心会正常工作,但无法进行授权和模块管理。

Magisk 分为核心和 App 两部分。App 的作用是更新、管理与授权。如果 App 被移除或者禁用,Magisk 核心仍能工作,各种模块能正常启动。但是,没有 App 将无法进行 Root 授权,可能导致无法再获取 Root 权限。

若要完全移除 Magisk,请点击原版 App 中“卸载 Magisk”按钮,选择“完全卸载”。

附:模块安装翻车的急救方法

Magisk 模块安装后,系统可能出现无法启动的问题,这称为“翻车”。

自动 Bootloop 恢复模块

特殊的 Bootloop 恢复模块(例如 Bootloop Saver)可以检测系统在启动过程中的非正常重启。一旦检测到,该模块将禁用所有其他模块来尝试恢复系统。

注意 Magisk Delta 的 25.2 及以上版本内置了 Bootloop 保护功能,只需要打开即可(26.4 及以上默认打开且不能关闭),不需要安装模块。

比较稳妥的安装方式

安装模块前,手边准备好电脑,打开 USB 调试,并进行“总是允许”的授权。随后开始模块安装。

安装后立即重启。若出现“翻车”,请在电脑命令行上执行 adb wait-for-device shell magisk --remove-modules,然后强制重启设备并马上插入电脑。系统开始初始化时,所有 Magisk 模块都将被移除,这样就可以正常启动了。

第三方 Recovery

TWRP 等第三方 Recovery 系统具有文件管理功能。删除 /data/adb/modules/ 下的模块文件,即可修复。

安全模式

将设备启动进入安全模式(并不是所有设备都有这一功能),Magisk 将禁用所有模块。

安全模式,重刷 Magisk

若你的设备只能从开机状态下重启进入安全模式,而不能直接进入,参考此方法。

使用 SP Flash Tool 刷入未经修补的 boot.img。重启设备,Magisk 将被移除。

设备正常启动后,在电脑上打开 SP Flash Tool,加载已修补的 boot.img,点击“下载”按钮。

接下来,长按电源键,然后长按弹出菜单中的“关机”,选择重启进入安全模式。随后立即将设备接入电脑。刷机完成后,设备将自动启动进入安全模式(若没有自动启动,请拔下数据线并手动开机),此时 Magisk 将禁用所有模块。

删除模块,重刷 Magisk

使用 SP Flash Tool 或 Fastboot 刷入未经修补的 boot.img。重启设备,Magisk 将被移除。

接下来打开 USB 调试,进入 adb shell,直接切到 /data/adb/modules/ 目录下并使用命令删除模块文件。

再次刷入修补后的 boot.img,即可恢复 Magisk。

附:系统更新的流程

打开 Magisk App,查看主页上的 A/B 参数,即可确认系统更新方式。

一般系统更新

此类更新要先将所有镜像还原,然后更新,再重新安装 Magisk。

  • 还原原厂镜像
    • 🗑️ 卸载 Magisk:还原原厂镜像
  • 重刷原厂系统
    • ⚡ 若系统有被修改,重新刷入原厂系统
  • 更新系统
    • 🔧 安装系统更新
  • 提取原厂镜像
    • 🗒️ 打开 SP Flash Tool,设置好回读分区
    • 💿 关机后,插入设备开始回读
    • 📀 顺便备份好系统分区
  • 修补镜像
    • 🩹 利用 Magisk App 修补镜像
  • 刷入镜像
    • ⭕ 启动进入 Fastboot
    • ⚡ 命令刷入新的镜像
    • ⭕ 命令重启
  • 开机体验
    • 🔰 重新安装 Magisk App
    • ✅ 重新启用已安装的模块

A/B 无缝系统更新

  • 还原原厂镜像
    • 🗑️ 卸载 Magisk:还原原厂镜像
  • 重刷原厂系统
    • ⚡ 若系统有被修改,重新刷入原厂系统
  • 更新系统
    • 🔧 安装系统更新,但不要重启
  • 安装到新的系统
    • 🩹 安装 Magisk 到未使用的槽位
  • 重启体验
    • ⭕ 重启设备

undefined