这个教程不是刷机,而是安装Magisk,通过Magisk就可以获取Root权限,而且获取的Root权限比系统提供的Root权限更全面,因为手机提供的是阉割版的Root权限。
刷机分为线刷和卡刷,用到的固件分别为线刷包和卡刷包,我所了解的是卡刷不能降版本,而线刷可以。有兴趣或需求的可以查看相关官网教程,这里不做过多介绍。
0. 解BL锁
先打开开发者选项,查看手机是否已解BL锁,没有的话看看是否能解锁成功,不能解锁成功的话,要去开发者选项里面先绑定小米账号,因为解锁要绑定小米账号之后等待7天才可以操作,而且重新绑定会导致从现在算起。详细教程请看官方教程: miuiver.com/how-to-unlo…
澎湃系统需要满足的条件:绑定账号必须小米社区5级、且必须要答题分数够才可以申请解锁。 在解锁操作前,先确认自己的小米帐号是否可以解锁(即每月最多解锁 1 台手机,每年最多 4 台,超过需要更换帐号)
1. 下载卡刷包
- 去官网或者三方rom资源下载对应的 卡刷包 或者 线刷包都可以。
- 手机型号要一致
- 系统版本号要一致
手机型号以及当前系统的版本号一定要一致,而且一定要下载卡刷包,因为这个教程不是刷机,而是安装Magisk。
下载Rom资源由于众所周知的原因被限速,所以可以尝试使用迅雷下载以及翻墙(翻墙不一定管用)。
2. 下载并安装安装Magisk app
3. 准备镜像资源
安装好Magisk App并启动之后,如果Ramdisk后面显示 是,则说明该设备的分区中是否含有 ramdisk。
- 如果设备中没有
boot ramdisk,则需要复制一份recovery.img,有的设备卡刷包没有recovery.img,需要下载线刷包,在images找,比如note7手机。 - 如果设备含有
boot ramdisk, 则需要复制一份boot.img或init_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_a和vbmeta_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.img 或 init_boot.img 或 recovery.img 文件复制到手机 Download文件夹下。
4. 用magisk修补boot文件
- 启动magisk应用
- 首页 -> 点击安装
- 如果你要修补
recovery镜像,请选中 “恢复模式” 选项。(含有ramdisk的设备不显示此选项) - 如果您的设备没有单独的
vbmeta分区,请选中 “Patch vbmeta in boot image” 选项。(含有vbmeta分区的设备不显示此选项) - 点击下一步,出现
方式选项,勾选选择并修补一个文件 - 点击 选择并修补一个文件,然后选择事先准备好的
boot.img或init_boot.img或recovery.img文件。 - 修补成功会在
Download文件夹下生成一个magisk_patched-xxx.img
5. 准备 adb-fastboot
- 电脑下载 adb-fastboot
- 解压 adb-fastboot 文件
- 手机usb连接电脑,文件传输模式,将第四步生成的
magisk_patched-xxx.img文件复制到adb-fastboot目录
6. fastboot刷写修补文件
-
手机usb连接电脑,手机重启到 fastboot 模式(按电源键重启 马上按住 音量键 –)
-
双击
adb-fastboot目录下的打开CMD命令行.bat -
在命令行刷入: 如果你要刷入的是
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。 -
出现下面这三行代码,就是成功刷入了
Sending 'boot' (131072 KB) OKAY [ 3.311s] Writing 'boot' OKAY [ 0.441s] Finished. Total time: 3.794s
-
(可选)如果您的设备有单独的
vbmeta分区,您可以使用以下命令修补vbmeta分区:fastboot flash vbmeta --disable-verity --disable-verification vbmeta.img -
重启手机,启动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包名变成一个随机的包名。
- 有的手机
Magisk重启之后,主页Ramdisk显示:否,此时可以切换模块tab,再重新切换至主页,可以发现Ramdisk显示:是了。- 重启后发现开发者模式中的设备解锁状态为当前设备已锁定,卸载
Magisk后状态又会恢复至已解锁状态。
2. 启用 Zygisk 选项
打开 Magisk 软件,点击右上角设置图标,开启 Zygisk 选项(开启后先不要重启,等下面安装 Shamiko 后一块重启)。
备注:Magisk 设置里的“遵守排除列表”选项注意不要开启,它与 Shamiko 模块功能冲突。
3. 安装Shamiko模块
- 下载最新的Shamiko zip文件
- 将下载的zip文件复制到手机
Download文件夹下。 - 打开
MagiskApp的模块页,点击从本地安装,并选择Download文件夹下对应的zip文件。
如果
v1.1.1-357和1.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