小米手机获取 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 文件,可参考这篇文章方法提取。

补充:对于部分新机型,有网友反馈需要提取 init_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. #146

    请问,红米k50u刷了hyper OS,刷magisk和修补文件都正常,但是重启后magisk显示没有root权限怎么解决呀?

  2. #145

    文章方法可以使小米10P获得管理员权限,并赋予app权限.但是在使用RootExploret删除系统文件时,出现了无权限,re状态是r/o,不是r/w(syetem/app及Pria-app是有权限删除的).主要集中在”根目录/product/app”目录下,该目录下的文件/文件夹均无权del.不造这个问题该怎么解决?

    1. 使用adb命令能删除”根目录/product/app”下一些文件,但是删不干净.

      1. 忘了说系统版本是111.0.12,magsik是26.4,twrp是wzsx150的3.4.2B-1206

  3. #144

    刷完之后, 手机无限重启了,

    手机 mix2s miui12 安卓10 , 下的卡刷包 信息如下
    ROM版本 9.6.27
    MIUI版本 10
    安卓版本 9.0
    版本类型 国际开发版MIUI

    有两个问题:
    1. 我是不是下错了rom的版本了
    2. 现在一直重启, 我该怎么恢复呀

    1. 需要对比完整版本号才能看出是否下错了版本。如果刷错了,重新刷入原始boot.img应该可以恢复。

  4. #143

    PS C:\Users\Administrator\Desktop\platform-tools>.\fastboot flash boot magisk_patched-26400_eADre.img
    Sending ‘boot_a’(65536 KB) OKAY[1.830s]
    Writing ‘boot_a’ FAILED (remote:’No support by lock control’)
    请教 红米11Tpro ROOT 感激不尽!!!

    1. 请问是否没有解BL?

  5. #142

    请问开启 root 时提示 “很抱歉,当前版本暂不支持开启 root 权限,可能是root包为准备好或该版本已撤包”,该怎么办,线刷版本是 zeus_images_V13.0.12.1.1.DEV_20220112.0000.00_12.0_cn

    1. 开发版的root是云控选项,通常要最新版和登录有权限账号才能开启,并且现在新版本也开始不提供root了。

      刷面具开启root是替代方法,也是目前主流的root方法。

      1. 谢谢,刷magisk搞定了

  6. #141

    大佬为什么说失败?
    Warning: skip copying boot image avb footer (boot partition size: 0, boot image size: 46011688).
    Sending ‘boot’ (44933 KB) FAILED (Write to device failed (Unknown error))
    fastboot: error: Command failed

    1. 请查看这个新教程,新机型的分区名称有了变化。

  7. #140

    Sending ‘boot_a’ (196608 KB) OKAY [ 4.922s]
    Writing ‘boot_a’ OKAY [ 0.066s]
    Finished. Total time: 5.169s
    看起来一切成功 但是打开magisk后显示无法获取
    请问该如何解决

    1. 是否和我是k60pro冠军版相关?我用的是 V14.0.23.0.TMKCNXM k60pro 的包 系统是一样的

      1. 没遇过这个问题哦,或许换个Magisk版本?

        1. 之前用的是26100 换了25200还是不行 问题同上

          1. 重新用线刷包刷了系统后 再走上面的流程也不行 还是同上问题

          2. 可以搜下官方issues有没有解决方法。

    2. 看了眼issues 打开的bug中没有相关的 怀疑是机器型号的问题 如果有同使用冠军版刷机的 麻烦留言交流 谢谢

      1. 已解决上述问题并完成root 失败原因为8代gen2芯片组不能使用boot.img来生成补丁 需要提取卡刷包里的init_boot生成才可以 博主有空补充下吧 面具中文站有详细教程 在这就不引流了

        1. 好的,感谢反馈!

  8. #139

    感谢博主,ROOT成功

  9. #138

    fastboot: error: cannot load ‘magisk_patched-25200_ymXFs’为啥

    1. 找不到文件,请检查文件名是否正确以及是否在操作目录下。

    2. 你少输入了后缀名

  10. #137

    請問出現這樣的信息
    fastboot: error: ANDROID_PRODUCT_OUT not set
    該怎麼處理?
    謝謝

    1. Redmi K60,miui14.0.18.0,面具25.2

    2. 请问是什么操作出现这个错误?这个是需要设置“ANDROID_PRODUCT_OUT”环境变量。

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

        1. 去掉前面的./试试。

          1. 還是一樣的信息

          2. 这就不清楚了,检查FASTBOOT命令环境变量配置,或者换个电脑操作。

          3. 搞掂咗,唔該大佬

    3. 请问怎么解决得这个问题呀

  11. #136

    root后偶尔出现即使未运行任何模块,部分应用仍出现闪退(含系统应用),重启才能解决,是因为boot.img或者修补文件被我删除的缘故吗?而且使用面具重启手机必定重启到recovery模式。
    红米note7,miui11.0.7,面具25.2,日常运行的模块只有lsposed和sui

    1. 抱歉,这个不清楚,没有遇过这个问题。

  12. #135

    卡twrp进入LOGO怎么办

    1. 请参考文章后面的补充。

  13. #134

    一发入魂,直接成功,感谢大佬

  14. #133

    修补后magisk_patched_9xFOB.img文件没有数据,是空的。试了好几次都不行。为什么?

    1. 原因不详,可以试下金丝雀版本。

  15. #132

    了解了步骤

  16. #131

    我的过程没问题,不知道最后怎么开不了机了

    1. 请查看这篇更新后的文章补充说明部分。

  17. #130

    我就停在第4步那里了,怎么弄都弄不好!!!

    1. 建议看文章开头补充的那个新教程,更详细。

  18. #129

    学习了

  19. #128

    卡米了怎么办TAT

    1. 刷回原始boot就可以恢复,如果是mtk机型,可能是没有关启动校验,具体建议看这个新文章

  20. #127

    .\fastboot : 无法将“.\fastboot”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请
    确保路径正确,然后再试一次。
    所在位置 行:1 字符: 1
    + .\fastboot flash boot magisk_patched-25200_WzjJj.img.\fastboot reboot
    + ~~~~~~~~~~
    + CategoryInfo : ObjectNotFound: (.\fastboot:String) [], CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException
    变成这样了,怎么搞,

    1. 建议看这个新教程,没有配置环境变量。

  21. #126

    大佬,请问安装 Magisk后,正常刷机有什么需要注意的吗?刷的还是之前的版本,其实就是重新刷一次系统,不升也不降。

    1. 可以看下这篇文章后面的系统更新补充部分。

  22. #125

    支持一下

  23. #124

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

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

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

  24. #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会自动识别活动分区。

  25. #122

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

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

    2. 多等一等等久一点我等了五分钟成功开机完成root,红米note

  26. #121

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

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

  27. #120

    MIUI13成功root,感谢大佬分享

  28. #119

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

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

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

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

  29. #118

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

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

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

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

  30. #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. 不客气的。

  31. #116

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

    1. 我是最后boot magisk.img 失败了,错误代码是:remote:unknown command,无论是刷magisk.boot还是刷原boot,都是这个错误,并且在操作之前Windows10弹出了什么电流不对之类的信息,请问能不能帮忙指点一下?

      1. 是否有配置fastboot命令环境变量

  32. #115

    最新的版本可以吗

    1. 可以的。

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

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

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

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

  33. #114

    waiting for any device
    请问怎么解决

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

  34. #113

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

    1. 可以用这个查询方法

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

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

  35. #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。

  36. #111

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

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

  37. #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解锁。

  38. #109

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

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

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

        1. 发错了?

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

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

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

      2. 当前版本是什么版本,我看有线刷包、卡刷包、增量包,三个中随便一个都可以么。

        1. 卡刷包或线刷包都可以,后者提取文件方便一些。

  39. #108

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

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

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

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

          1. 谢谢

  40. #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都刷。

  41. #106

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

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

  42. #105

    试试看,行不行

  43. #104

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

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

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

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

  44. #103

    非常感谢大佬!

  45. #102

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

  46. #101

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

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

发表评论

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