小米手机获取 Root 权限教程(详细图文)

更新:请参考这篇更新后的文章 https://miuiver.com/install-magisk-for-xiaomi/ 补充了一些细节和图解。

常说的 Root 手机指的是获取 Android 系统超级用户权限,目的大多为了卸载 OEM 厂商预装软件,或者运行需要 Root 权限的软件,例如聊天防撤回、虚拟定位、权限控制等。在获取 Root 权限后如果平时授权管理不当,会增加手机安全风险,因此只适合喜欢玩机的高级用户。

以往在 Android 6 以下系统获取 Root 权限非常简单,有许多 Root 助手电脑工具,通过手机 USB 调试模式连接便可实现一键 Root(利用系统提权漏洞)。现在随着系统更新换代,手机加入更多安全机制,这种 Root 方法已然行不通。

现在获取 Root 权限的流行方法是通过安装 Magisk 实现。Magisk 是一个能提供 Root 权限访问 / 管理 / 隐藏的开源软件,并且可以通过安装功能模块扩展更多玩法。同时 Magisk 也是知名开源软件,有着庞大用户群,可信程度高,可以放心使用!

下面演示如何在小米手机上通过安装 Magisk 获得 Root 权限(其他大部分手机也适用,除部分三星和华为手机外)。

准备工作

Magisk 安装前请确保手机已完成 BL 解锁,并且没有安装其他 Root 软件。

新手建议在操作前备份手机数据(虽然不太可能丢数据,但还是有备无患的好)。

最后,虽然写这篇教程用实机验证过,但每人环境不同,无法承诺获得一致结果,所以仅供参考!

Magisk 安装

1. 从 Magisk 官方下载 Magisk 软件安装到手机(注:不要安装在外置储存上。另外如果使用遇到问题,可尝试更新更快的 Canary 版本)。

下载 Magisk
在下载页面选择 Magisk-xxx.apk 下载

2.. 下载现在手机系统版本刷机包。从中提取 boot.img 文件,将其复制到手机上备用。

从刷机包提取 boot.img 文件
从刷机包提取 boot.img 文件(上图为提取文件路径。左侧卡刷包,右侧线刷包)

如果卡刷包里找不到 boot.img 文件,可参考这篇文章方法提取。

3. 手机打开 Magisk 软件,按下面流程完成修补文件步骤。

  • 点击 Magisk 卡片里的“安装”按钮
  • 检查安装选项并点击“下一步”(这里 Magisk 会自动选择合适选项,也可能不显示选项)
  • 点击“选择并修补一个文件”,选择之前从刷机包提取的 boot.img 文件,等待处理完成,将输出文件复制到电脑备用(默认保存在手机内部存储 Download 目录。补充一个自己遇到的问题,电脑连接后目录下找不到文件,需要在手机上将文件移动到其他目录才能看到)
使用 Magisk 修补文件
Magisk 修补文件操作图解

补充:如果在最后一步修补文件时出错,可能和系统版本过旧有关,可以尝试更新系统再操作(刷机包提取文件也要相应更新)。如果不想升级系统版本,可以通过 TWRP 安装 Magisk(另一种安装方法,不支持采用 Vir­tual A/​B 分区的新机型)。

4. 将手机关机,长按开机键 + 音量下键进入 Fastboot 模式,用数据线连接到电脑。

电脑下载 Android SDK 工具包,下载后解压文件,将之前经 Magisk 修补得到的文件放入解压的 platform-tools 文件夹内。

打开 platform-tools 文件夹,按住键盘 Shift 键,同时鼠标右键点击文件夹空白处,在右键菜单点击“在此处打开 Powershell 窗口”,之后运行下面刷新命令(替换实际文件名)。

# 运行刷新命令
.\fastboot flash boot magisk_patched_9xFOB.img

# 完成后运行重启手机命令
.\fastboot reboot

如无意外,完成上面步骤后就安装好 Magisk 了。打开 Magisk 软件可以看到已经有 Root 授权管理选项,可以开始使用了。

Magisk Root 授权管理选项
Magisk Root 授权管理选项

Magisk 常见问题

遇到意外问题导致无法启动系统?

如果因为某些意外问题,导致在安装 Magisk 后无法启动系统,可以重复上文第 4 步骤,刷入从刷机包里提取到的原始文件。

如果因为安装某个功能模块导致的这个问题,则可以在开机启动界面长按音量上键,直至进入系统。这时将进入系统安全模式(部分机型只能在开发版系统下进入安全模式)。在此模式下,系统会禁用第三方软件,Magisk 也会禁用所有功能模块。这时再正常重启手机,便可以进入系统删除问题模块。

更新系统后丢失 Magisk 安装?

这是正常现象,安装 Magisk 后系统更新会比较麻烦。虽然仍可以直接升级系统,但不支持 OTA 增量更新,需下载完整包更新。即便是这样,当更新系统重启手机后,Magisk 安装便会丢失,或者可能遇到“卡米”无法启动系统的问题。

为避免上述问题,建议关闭系统自动更新(在系统更新设置里关闭“自动下载”和“智能更新”选项)。当需要更新系统时,先打开 Magisk 软件,点击“卸载 Magisk”,选择“还原原厂映像”,之后再更新系统,更新后重新安装 Magisk(不会丢失 Magisk 已安装模块)。

Magisk 隐藏 Root 功能如何使用?

在获取 Root 权限后,一些对安全或版权要求高的应用会检测用户系统是否已 Root,如果有将限制部分功能或拒绝运行。

要解决这个问题,可以在 Magisk 里开启“MagiskHide”选项,然后在权限管理界面勾选需要对哪些应用隐藏 Root,具体步骤查看这个图解

如何更新 Magisk?

Magisk 更新只需要在 Magisk 软件上操作,它会自动下载安装更新。

不建议下载更新包进入 Recovery 刷入,这样对于那些需要将 Magisk 安装在 Recovery 分区的设备来说会有问题。

如何卸载 Magisk?

打开 Magisk 软件,点击“卸载 Magisk”按钮,选择“完整卸载”,之后软件会自动下载执行卸载脚本,完成后重启手机生效。

如果无法进入系统,在有安装 TWRP 的情况下,可以手动下载卸载脚本,进入 Recovery 模式刷入卸载包。

评论列表

  1. #125

    支持一下

  2. #124

    一开始报错,刷了a/b分区,就可以了,但是无限重启,咋办?

    1. 可以尝试用下面命令关闭启动验证,其中 vbmeta.img 从刷机包内获取。
      fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

    2. 发现问题了,刷机包版本不对;

  3. #123

    Redmi K50pro 是A/B分区
    # 已采用 Vir­tual A/​B 分区的新机型
    .\fastboot flash boot_a magisk_patched_9xFOB.img
    .\fastboot flash boot_b magisk_patched_9xFOB.im

    1. 不分别刷a/b分区也可以,fastboot会自动识别活动分区。

  4. #122

    全部步骤完成后,每次手机开机启动好几次才能开机,是怎么回事呢,遇到过这种情况吗

    1. 自己没有遇过,是最新版本系统和最新面具环境吗?如果不是,升级系统后再安装,或许可以解决此类玄学问题。

  5. #121

    大佬现在分区的刷一次就行了吗

    1. 是的,用新版本fastboot工具会自动识别刷新a/b分区。

  6. #120

    MIUI13成功root,感谢大佬分享

  7. #119

    大佬我问下 我小米12x没有开发版内测资格 线刷开发版 能不能刷面具

    1. 可以,但系统那个root选项开启不了,面具可以。

      1. 本论坛的12x开发版都可以刷? 安卓11的也可以呗

        1. 指的是刷面具?可以的

  8. #118

    这个方法是不是现在不适用了,我平板5MIUI13用这种方法获取ROOT会导致无限重启

    1. 应该是可以的,文中方法根据官方文档所写,可以试下金丝雀版本。

      1. 请问已经安装Magisk的系统,需要更新Magisk,如何操作,直接更新,不能开机,会无限重启。

        1. 可能点了安装到ota槽位,连接电脑用fastboot set_active afastboot set_active b命令切换下,然后fastboot reboot

  9. #117

    请教一下 ,红米note11pro用的开发版的卡刷包生成了boot.img 然后使用Magisk生成了新的magisk_patched-25100_6rv6v.img 执行 .\fastboot flash boot_b magisk_patched-25100_6rv6v.img
    Sending ‘boot_b’ (131072 KB) OKAY [ 2.920s]
    Writing ‘boot_b’ FAILED (remote: ‘image is not a boot image’)
    报错 , .\fastboot flash boot_a 也是一样的错误 这种情况怎么处理啊

    1. 抱歉,没有遇过这个问题,可以试试金丝雀版本,或者看下github里有没有相关issues。

      1. 金丝雀版本指的是啥 是TWRP刷入吗 ,还是Magisk的版本,magisk下没有相关的issues

      2. 查到了 是个Magisk版本 我去试试 多谢

      3. 用了 Magisk v24.2 生成了新的.img 执行了下可以了 ,成功root ,感谢🙏

        1. 不客气的。

  10. #116

    无论替换了多少条数据线,都解决不了最后一步刷入的失败,百度了无数种解决办法,什么重新安装powershell, framwork, 什么重装USB3.0 驱动,重装小米手机USB驱动,等等,统统都失败了。最后还是用了解锁BOOTLOADER时的土办法,完美完成了root 的刷入,实太是太难了。
    办法就是每当操作到涉及USB 数据线传输的那一步的回车后,在一秒之内,对连接手机的USB 数据线进行快速拔出并插入。“拔+插”要在一秒内完成。 这是在之前解锁时偶然测试有效的办法。 没想到 刷入ROOT 包也要用到。

  11. #115

    最新的版本可以吗

    1. 可以的。

      1. root感觉太难了,有点强迫你不是喜欢的软件一个都不想看见它

        1. 如果只为删除预装软件,可能用adb命令就可以。

          1. 第四步这个命令怎么输入啊

          2. 根据机型分区类型选择刷入命令,命令中文件名按实际修改。

  12. #114

    waiting for any device
    请问怎么解决

    1. 可能连接不良,换个USB端口或数据线试试。

  13. #113

    怎么知道手机是否采用 Vir­tual A/​B 分区呢

    1. 可以用这个查询方法

      1. 这个方法查出来提示我:无法将“adb”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次。

        1. 检查Powershell打开路径是否是adb文件目录。可尝试在命令前添加\

  14. #112

    大佬,我纯小白,现在到第四步就不知道怎么做了

    1. 指的是第四步里的哪个操作?

      1. 就是我已经打开 Powershell 窗口,并且输入了 .\ fastboot 代码,然后出现 wait for any devinces,在后面手机就关机了

        1. 这里的命令区分a/b分区机型,另外需要修改其中的文件名。

          1. 我使用的第一个命令,另外文件名我修改成经 Magisk 修补过的文件名称了

          2. 可能是驱动问题,下miflash手动安装下驱动试试,手机以fastboot模式连接下安装。

          3. 下载miflash,驱动了,还是不行的

          4. 可能是我miflash没有弄正确,我在试一下

          5. miflash,就是根据miflash刷机了,对吧

          6. 不是刷机,miflash菜单栏有个驱动安装选项。

          7. 现在提示 FAILED (remote: ‘not allowed in locked state’),这个报错

          8. 这是没有解BL。

  15. #111

    Magisk 里面没有“保持强制加密”怎么办

    1. 这个步骤的选项根据机型而异,没有忽略就可以了。

  16. #110

    fastboot: error: cannot load ‘magisk_patched_9xFOB.img’: No such file or directory
    这怎么处理

    1. 需要更改实际文件名。

      1. 可有说明,求教

      2. FAILED (remote: ‘Partition flashing is not allowed’) 这是不是有bl锁导致的

        1. 命令中的文件名修改成自己修补的文件名。
          文中操作需要先BL解锁。

  17. #109

    “下载现在手机系统版本刷机包”——指得是目前手机上的版本,而不是当前最新版本,是吧?

    1. 是的,当前系统版本。

      1. 有一次我去办某种A地转至B地的手续,A地机构和B地机构同样遵照一份规定,规定中要求需要“当地”盖章。A地机构对我说:你应该到当地盖这个章,而不是本地。B地机构也对我说:你应该到当地盖这个章,而不是本地……

        1. 发错了?

          1. 不是,我是借这个例子来比喻,“当前”这个词其实可以有“‘手机‘上的当前”和“‘官方’的当前”两种含义,“现在”这个词也是。^_^

          2. 准确的描述,或许应该是”当前手机上的系统本版本”、“现在手机上的系统本版本”

          3. 可能是我个人理解的问题,抱歉。感谢

  18. #108

    同一天同型号的手机同样是开发版的卡刷包和线刷包,提取的boot.img文件是一样的吗?

    1. 同一个版本应该相同。

      1. 那是不是可以理解,我线刷包提取的boot.img文件可以用在卡刷升级的手机上,来获取root

        1. 可以,无所谓用卡刷还是线刷的boot。

          1. 谢谢

  19. #107

    大佬,A/B分区的新机型,命令是要执行两次吗?a和b都要各执行一次都要写吗?还是说写一个A或者B都可以?

    # 已采用 Vir­tual A/​B 分区的新机型
    .\fastboot flash boot_a magisk_patched_9xFOB.img
    .\fastboot flash boot_b magisk_patched_9xFOB.img

    1. a/b都刷。

  20. #106

    新版本Magisk里没有MagiskHide项,如何给一些应用躲避权限要求呢?比如银行手机银行软件,12123软件,现在是拒绝运行

    1. 两种方法,一是刷旧版本,二是刷分支版本,有时间再更新补充到文中。

  21. #105

    试试看,行不行

  22. #104

    除了用这个方法还有没有其它方法

    1. 开发版内置有root功能,但有限制,也需要资格。

      1. 这办法看着好像非常困难

        1. 比之前TWRP卡刷会麻烦一些,但是Magisk建议的首选安装方法。

  23. #103

    非常感谢大佬!

  24. #102

    看不到文件,可以重新插拔一次usb接口,就可以看到了。

  25. #101

    现在只有zygisk了 文章该更新了

    1. 好的,有空会更新下。

发表评论

电邮地址用于 Gravatar 头像显示,不会被公开可见。