小米手机安装Magisk root教程

4,281 阅读9分钟

这个教程不是刷机,而是安装Magisk,通过Magisk就可以获取Root权限,而且获取的Root权限比系统提供的Root权限更全面,因为手机提供的是阉割版的Root权限。

刷机分为线刷和卡刷,用到的固件分别为线刷包和卡刷包,我所了解的是卡刷不能降版本,而线刷可以。有兴趣或需求的可以查看相关官网教程,这里不做过多介绍。

0. 解BL锁

先打开开发者选项,查看手机是否已解BL锁,没有的话看看是否能解锁成功,不能解锁成功的话,要去开发者选项里面先绑定小米账号,因为解锁要绑定小米账号之后等待7天才可以操作,而且重新绑定会导致从现在算起。详细教程请看官方教程: miuiver.com/how-to-unlo…

澎湃系统需要满足的条件:绑定账号必须小米社区5级、且必须要答题分数够才可以申请解锁。 在解锁操作前,先确认自己的小米帐号是否可以解锁(即每月最多解锁 1 台手机,每年最多 4 台,超过需要更换帐号)

1. 下载卡刷包

  1. 去官网或者三方rom资源下载对应的 卡刷包 或者 线刷包都可以
  2. 手机型号要一致
  3. 系统版本号要一致

手机型号以及当前系统的版本号一定要一致,而且一定要下载卡刷包,因为这个教程不是刷机,而是安装Magisk。

小米Rom资源

下载Rom资源由于众所周知的原因被限速,所以可以尝试使用迅雷下载以及翻墙(翻墙不一定管用)。

2. 下载并安装安装Magisk app

Magisk app下载

3. 准备镜像资源

安装好Magisk App并启动之后,如果Ramdisk后面显示 ,则说明该设备的分区中是否含有 ramdisk。

  • 如果设备中没有 boot ramdisk,则需要复制一份 recovery.img,有的设备卡刷包没有recovery.img,需要下载线刷包,在images找,比如note7手机。
  • 如果设备含有 boot ramdisk, 则需要复制一份 boot.imginit_boot.img(如果有的话)。
  • 查询手机是否具有单独 vbmeta 分区。查询方法请参考这篇文章

对于出厂安卓版本 ≥ 13 的设备(例如:小米13),ramdisk 的情况有所不同,此时 ramdisk 被单独放置在一个名为 init_boot 的分区中,而那些安卓版本低于13的以及从安卓12升级到安卓13的设备,ramdisk 依然在 boot 分区中。所以对于出厂系统就是 Android 13 的新机型,需要提取 init_boot.img 文件修补而不是 boot.img

现如今,固件包中的各分区镜像都被打包成 payload.bin 文件,不再是分散的镜像文件,因此需要借助 payload_dumper 等工具进行提取,你可以从 github、XDA、酷安中找到相关工具,也有人制作了安卓版本的提取工具。

查询手机是否存在 vbmeta 分区: adb shell "ls /dev/block/by-name | grep vbmeta"。当结果返回有 vbmeta,或是 vbmeta_avbmeta_b 就表示手机有 vbmeta 分区。

从payload.bin文件提取镜像
  • payload-dumper-go下载链接
  • 将解压的系统包中payload.bin 文件复制到上一步下载并解压的payload-dumper-go文件夹里面。
  • 双击payload-dumper-go文件夹中的打开CMD命令行.bat文件。
  • 按照提示输入b
  • 打开payload-dumper-go文件夹的子文件夹img就可以看到提取的boot.img

boot.imginit_boot.imgrecovery.img 文件复制到手机 Download文件夹下。

4. 用magisk修补boot文件

  1. 启动magisk应用
  2. 首页 -> 点击安装
  3. 如果你要修补 recovery 镜像,请选中 “恢复模式” 选项。(含有 ramdisk 的设备不显示此选项)
  4. 如果您的设备没有单独的 vbmeta 分区,请选中 “Patch vbmeta in boot image” 选项。(含有 vbmeta 分区的设备不显示此选项)
  5. 点击下一步,出现 方式 选项,勾选 选择并修补一个文件
  6. 点击 选择并修补一个文件,然后选择事先准备好的 boot.imginit_boot.imgrecovery.img 文件。
  7. 修补成功会在 Download文件夹下生成一个 magisk_patched-xxx.img

5. 准备 adb-fastboot

  1. 电脑下载 adb-fastboot
  2. 解压 adb-fastboot 文件
  3. 手机usb连接电脑,文件传输模式,将第四步生成的 magisk_patched-xxx.img 文件复制到 adb-fastboot 目录

6. fastboot刷写修补文件

  1. 手机usb连接电脑,手机重启到 fastboot 模式(按电源键重启 马上按住 音量键 –)

  2. 双击 adb-fastboot目录下的 打开CMD命令行.bat

  3. 在命令行刷入: 如果你要刷入的是 boot 镜像: fastboot flash boot /path/to/magisk_patched.img ; 如果你要刷入的是 init_boot 镜像,则是: fastboot flash init_boot /path/to/magisk_patched.img ; 如果你要刷入的是 recovery 镜像,则是: fastboot flash recovery /path/to/magisk_patched.img

  4. 出现下面这三行代码,就是成功刷入了

    Sending 'boot' (131072 KB) OKAY [ 3.311s] Writing 'boot' OKAY [ 0.441s] Finished. Total time: 3.794s

  5. (可选)如果您的设备有单独的 vbmeta 分区,您可以使用以下命令修补 vbmeta 分区: fastboot flash vbmeta --disable-verity --disable-verification vbmeta.img

  6. 重启手机,启动Magisk应用,显示Magisk的版本,就是刷好了的。

Ramdisk 结果为“否”的机型重启的问题

如果你的设备在 boot 镜像中没有 ramdisk,则 Magisk 别无选择,只能安装在 recovery 分区中。对于这些设备,每次需要 Magisk 时,你都必须 “重启至 Recovery 模式”。

当 Magisk 安装在 Recovery 分区时,**你不能使用第三方 Recovery 来安装/升级 Magisk! 安装/升级 Magisk 的唯一方法是通过 Magisk App,它将知道你的设备状态,并安装到正确的分区并重新启动到正确的模式。

由于 Magisk 现在劫持了设备的 recovery 功能,因此设计了另外一种机制可以让你在实际需要时引导至真正的 recovery 模式:这取决于 你按下recovery组合键的时间长短。 安装 Magisk 到 Recovery 分区之后(从断电开始):

  • (正常开机)→(无 Magisk 的系统)
  • (Recovery 组合键)→(启动画面)→(释放所有按钮)→(带有 Magisk 的系统)
  • (Recovery 组合键)→(启动画面)→(长按音量+键)→(Recovery 模式)

提示:如果刷完后遇到反复重启进不去系统问题,可以尝试先用下面命令禁用启动验证(AVB/DM-Verity),然后重复上一步骤重新刷写修补文件(这个方法仅限具有单独 vbmeta 分区的机型使用)。

fastboot --disable-verity --disable-verification flash vbmeta vbmeta.img

测试发现有些机型,如红米note7,正常开机和通过Recovery 组合键的方式都无法进入magisk环境,那么禁用启动验证可以在组合键的方式下进入magisk环境,但是magisk会弹窗提示""需要重新修复"后重启,点击确认,然后正常开机就可以进入magisk环境。

温馨提示

如果刷模块不兼容或者其他骚操作导致不能开机,可以把我们前面提取的boot.img通过fastboot刷回去,恢复原系统,一般都能正常开机! boot.img保留一份在电脑,避免出问题了可以自救下!还原boot指令

fastboot flash boot boot.img

也可以通过 MiFlash使用线刷包刷机,注意在刷机的时候,右下角的脚本选择,不能选择全部删除并lock,否则手机的BL锁会重新上锁。

7. Hide magisk and root

1. 隐藏Magisk应用

  • 打开Magisk app,并点击设置
  • 点击 隐藏Magisk应用。
  • 此时会显示“安装未知应用”的设置界面,找到 Magisk应用,勾选 “允许来自此来源的应用”。
  • 点击返回到Magisk应用,并随意取一个名称。
  • 点击确认之后,会在底部弹"启动应用"的窗,内容为:“Magisk想要打开Settings,是否允许?”,点选“允许按钮”。
  • Magisk会重启,是否“添加快捷方式到桌面”,点击“确认”按钮。
  • 可以看到Magisk包名变成一个随机的包名。
  1. 有的手机Magisk重启之后,主页Ramdisk显示:,此时可以切换 模块tab,再重新切换至主页,可以发现 Ramdisk显示:了。
  2. 重启后发现开发者模式中的设备解锁状态为当前设备已锁定,卸载Magisk后状态又会恢复至已解锁状态

2. 启用 Zygisk 选项

打开 Magisk 软件,点击右上角设置图标,开启 Zygisk 选项(开启后先不要重启,等下面安装 Shamiko 后一块重启)。

备注:Magisk 设置里的“遵守排除列表”选项注意不要开启,它与 Shamiko 模块功能冲突。

3. 安装Shamiko模块

  • 下载最新的Shamiko zip文件
  • 将下载的zip文件复制到手机 Download文件夹下。
  • 打开MagiskApp的模块页,点击 从本地安装,并选择Download文件夹下对应的zip文件。

如果v1.1.1-3571.1-344版本安装失败,请下载并安装1.0.1-300版本。 1.0.1-300版本最低要求magisk的版本为26.4,1.1-344版本的最低要求magisk版本为27.4。

4. Shamiko切换至白名单模式

  • 下载:MT管理器 ,授权 ROOT 权限
  • MT管理器 打开目录 /data/adb/shamiko,创建 whitelist 文件(是文件,不是文件夹。不要搞错了哦)
  • 重启手机,成功切换白名单模式。

8. 安装LSPosed

  • 下载LSPosed最新的版本 zygisk类型的zip文件。
  • 将下载的zip文件复制到手机 Download文件夹下。
  • 打开MagiskApp的模块页,点击 从本地安装,并选择Download文件夹下对应的zip文件。

9. 修改 ro.debuggable属性值,使得可以调试三方应用

  • 打开magisk app,进入模块搜索或去github官网下载 MagiskHide Props Config 并安装。
  • 重启手机,进入adb shell模式
  • 执行命令 props ro.debuggable 1
  • 然后按照命令行提示,输入 y,直到让你输入重启的指令,重启手机之后就可以查看是否生效。
  • 重启之后进入 adb shell模式。
  • 输入命令:getprop ro.debuggable 如果是 1,恭喜你可以进行动态调试生产包了。

MagiskHidePropsConf:github.com/Magisk-Modu…

参考资源

Magisk 安装说明 小米手机安装 Magisk 获取 Root 权限指南 Magisk 安装 Shamiko 模块对软件隐藏 Root