Android 为智能手机的普及立下了汗马功劳,可是开源所导致的「碎片化」问题,一直是 Google 心中难以掩饰的痛。为了改变这一现状,Google 进行了许多尝试,例如在 Android 7.0 引入的「A/B(无缝)系统更新」,Android 8.0 时推出的「Project Treble」,都是为了铺平无障碍更新系统的道路,减轻更新失败导致设备故障的风险,以便厂商可以更轻松地推送系统更新。
而在 Android 11 版本,Google 使用了名为「virtual A/B」的新分区,并将其率先使用在 Google Pixel 5 上。「virtual A/B」更新系统的方法与「A/B」类似,核心功能也相同。在系统进行 OTA 更新时,如果更新失败会自动回滚到上一个系统,成功开机进入之后才会将新数据写入到系统中。且系统更新可在待机状态下完成,无需重启等待新数据写入,可谓是极大地改善了更新系统时的用户体验。只是「A/B」需要准备两个相同的分区,会占用更多的存储空间,而「virtual A/B」删除了「cache」和「recovery」分区,「system」分区只保留一个,以解决上述空间占用问题。
小米 11 也是使用的「virtual A/B」,可这对我来说并不是什么好消息。因为「virtual A/B」删除了「recovery」分区,没有了「recovery」分区就不能刷入第三方「recovery」。因此在 TWRP 官方解决为这类新分区方式刷入第三方 recovery 之前,我只能使用其他方法来为小米 11 刷机了。
不过我这也算不上啥刷机,只是安装一个 Magisk 而已。这篇文章也会等到能刷上 TWRP 的时候,再继续更新。
刷机有风险,搞机需谨慎,请准备好备用机,做好变砖的心理准备。在确定当地有小米之家可进行售后维修后,再进行刷机操作。
以下是完整的刷机记录。
解锁
到手的手机还是出厂系统,先把系统更新到最新版本。我使用的是 MIUI 12.0.22.0 稳定版本,体验上还不赖。当然不想更新也没啥问题。

1. 启用开发者模式
刚到手的手机,先登录自己的小米账号,然后在设置中打开「开发者模式」。
MIUI 12 系统开启「开发者模式」的步骤是:设置 → 我的设备 → 全部参数,点按「MIUI 版本」七次,会有提示弹出「开发者模式已开启」。
设置「开发者模式」的入口在:设置 → 更多设置 → 开发者选项。勾选「OEM 解锁」、「USB 调试」。在「设备解锁状态」中,绑定账号与设备。
2. 下载解锁工具
前往「解锁小米手机」页面下载解锁工具。

3. 更新驱动
为了避免解锁或是刷机时出现各种不可预测的危险,先更新好驱动。把下载好的压缩包解压,点击 miflash_unlock.exe
打开解锁工具。
点击右上角设置。

在将手机连接到电脑前,一定要先在「开发者模式」里打开「USB 调试」,弹出类似「允许此电脑使用 USB 调试」的字样,然后再点击「驱动检测」更新驱动。

4. 解锁
然后就可以解锁了。注意解锁会清除所有手机数据,所以不要急着往新手机里转移数据。解锁这个过程解锁工具会有提示,就跳过了。


不过一直有听说新手机解锁的话,需要绑定一段时间(大概是七天)的小米账号才行,但我手机一到手就解锁了……
解锁完后会自动重启,数据会被清空。
提取boot.img
目前刷机的目的仅是刷入 Magisk,Magisk 可以通过修补系统 boot.img
的方式刷入,毋需使用 TWRP 或是其他第三方 REC 工具刷入。
所以需要先提取当前系统的原始 boot.img
文件。
利用线刷包提取
在小米社区中看看有没有手机当前系统版本的线刷包,下载下来,解压之后,就有 boot.img
,可以直接使用。只不过目前只有 MIUI 12 稳定版本的线刷包。
利用卡刷包(手机系统更新包)提取
小米社区还未提供当前使用版本的线刷包的话,也可以在手机系统更新中下载完整卡刷包。首先进入系统更新中点击下载完整更新包,下载开始后把后台全关闭,进入下载管理,手动继续下载,否则更新包会被自动解包更新到系统中去。

但是这类更新包是加密状态的,需要使用工具解密。
手机端
手机端的解密方法参考了 XDA 上的教程(刷入打过 Magisk 补丁的 boot.img
还是需要用电脑),步骤如下:
- 下载 Termux(Play 商店 / 酷安)
- 下载 payload_dumper(GitHub)并解压
- 解压下载系统更新包,将解压出来的
payload.bin
放入payload_dumper
文件夹中 - 打开 Termux,执行命令
pkg install python -y
pip install --upgrade pip
apt update && apt upgrade -y
termux-setup-storage
执行到这一步会弹出提示,同意即可。

找到解压后的 payload_dumper 文件夹,长按该文件夹,点击更多 → 详情,复制该文件夹位置。

比如我的 payload_dumper 文件夹位置是在 /storage/emulated/0/payload_dumper
,那么接下来在 Termux 的操作指令应该是
cd /storage/emulated/0/payload_dumper
pip install -r requirements.txt
python payload_dumper.py payload.bin
等待解包结束,就可以在 payload_dumper/output
文件夹中找到 boot.img
。
PC端
PC 端的刷入方法参考了酷安教程。
- 把
payload.bin
解压出来 - 下载解密工具:传送门,并解压
- 将
payload.bin
放到payload_input
文件夹中 - 运行
payload_dumper.exe
- 由于只需要
boot.img
,所以不用等全程走完,看到boot.img
解压出来就可以把程序关掉
刷入 Magisk
1. 安装 Magisk
下载 Magisk Manager(GitHub / 备份)安装并打开,可能会因为网络原因无法正常加载相关信息。

可以打开右上角设置,点击「更新通道」将其修改为自定义,然后在网上搜索「Magisk自定义通道」,找个能用的填入自定义通道中。
23.0
,不过不保证能持续更新。(懒得维护网上搜现成的吧)
设置之后应该就可以正常加载了。
2. 修补 boot.img
然后点击 Magisk 旁边的安装。

选择「选择并修补一个文件」。

找到刚才解密出来的
boot.img
并选中,点击开始。
打过 Magisk 补丁的 boot.img
放在 /Download
文件夹下。
3. 刷入 boot.img
将修补过后的 magisk_patched_xxxxx.img
复制到电脑,准备开始刷 Magisk,刷入方法参考了酷安教程。刷机需要使用到 adb 工具(传送门),注意解压。
在开机状态下,将手机连接至电脑。双击 adb 工具中的打开CMD命令行.bat
。

以下命令需要手机上开启「USB 调试」,命令的含义上图中都有说明,不再解释了。
adb devices

需要成功列出 adb 设备才行,失败的话检查驱动、数据线、电脑接口,一一排查。
adb reboot bootloader
重启到 fastboot 模式后,手机显示的是一只维修机器人的米兔。然后就可以刷入打过补丁的 boot.img
了。由于修补过后的 magisk_patched_xxxxx.img
名字每次都不一样,建议直接拖动,可以参考我之前做的动图。注意命令中的空格。
fastboot flash boot_ab magisk_patched_xxxxx.img

刷入成功后,输入 fastboot reboot
重启设备,没有意外的话就可以看到已经成功激活的 Magisk 了。
4. 后续系统更新
之后的更新系统,就不用像第一次这么繁琐地提取 boot.img
打补丁再刷入系统之中了。只是需要在更新新版本时,选择「下载完整更新包」。

然后等待更新包写入系统后,提示「重启完成更新」后,不要急着更新,这时候打开 Magisk,选择「安装到未使用的槽位(OTA 后)」,点击确定。

等待刷入完成。

重启系统,就更新完了。
或者,不用下载完整包也可以。在下载增量包前,先在 magisk 里点击「卸载 Magisk」,选择「还原原厂映像」。

然后再增量更新。更新完成后,不要重启,和上面一样,安装 Magisk,选择「安装到未使用的槽位(OTA 后)」,再重启系统。
刷入 TWRP
官方 TWRP 现已正式推出,刷入方法与刷 Magisk 几乎一致。但是,由于小米 11 目前没什么能用的包,这里不建议刷 TWRP。
如果需要可以自行前往 TWRP 官网下载。
刷入方法为在 adb 中命令行刷入。
adb reboot bootloader
fastboot boot twrp.img
magisk 打补丁其实也挺不错的。
一些问题
1. SafetyNet 无法通过
刷了 Magisk 后,SafetyNet 检测就无法通过。无法通过的话,Google Play 保证机制就无法通过,有些游戏就下载不了。

解决方法是:使用下面这两个模块
在 magisk 中刷入,重启。就可以欺骗系统通过这一检测,使证明通过。(测试系统版本为开发版 MIUI 12.5 21.3.25)

Play 商店的话,清除数据就行。
注意开启 magisk hide。
2. Magisk模块出现问题导致手机卡死
停用所有模块即可。
手机连接电脑,打开 adb 工具,输入 adb shell
,提示成功连接后会出现 venus:/
的字样,再输入 magisk --remove-modules
,手机会自动重启,卡得没法重启,就长按开机键强制重启。
然后挨个排查,看看是哪个模块出现的问题。
一定要注意开启 USB 调试,否则只能靠刷回原厂镜像才能解决。具体可以参考:Magisk Frequently Asked Questions。
MIUI13(Android12)
基于 Android12 的 MIUI13 也是可以直接用 Magisk 给 boot 打补丁的,只是 Magisk 需要使用支持 Android12 的 Canary
版本。
你可以点击 这里 下载 GitHub 实时构建的版本,或是访问 这里 下载我存档的备份。
如果用的还是 v23
版本,安装完 Canary
版的 App 后,应用会提示更新 Magisk,安装时选择「直接安装(推荐)」,重启后,再更新到 MIUI13。
本文作者:mikusa
本文链接:https://www.himiku.com/archives/xiaomi-11.html
版权声明:所有文章除特别声明外均系本人自主创作,转载及引用请联系作者,并注明出处(作者、原文链接等)。
小米 11 更新澎湃 OS,可以按照第四条的方法更新吗
刷入 fastboot flash boot_ab magisk_patched_xxxxx.img 这个命令是不是和之前的有变化啊,我记得最早是需要分别刷入 boot_a 和 boot_b 啊,这次一次刷入就可以了吗?MIUI13, 安卓 12
好像是改了,现在是 boot_ab,你按这个刷入试试?
大神 nb!
我现在是 v23 的 magisk,miui 版本是 12.5,能通过下载完整更新包,安装到未使用的槽位的方式升级到 Miui13 吗
miui13 推送稳定版了吗?由于 miui13 是 Android 12,建议更新前先安装下 canary 版的 magisk,文章末尾有提供,再更新到 miui13
Miui13 已经推送,需要卸载现在的 magisk 吗,还是新版的 magisk 可以直接覆盖?
可以直接覆盖
好的,我操作一下
方法太繁琐复杂,root 的话可以参考 http://www.romleyuan.com/news/readnews?newsid=3410,然后配合 adb 很方便
繁琐?你看看我写的和你贴的是不是同一个方法?
还好意思贴个内容农场?
请问,我小米 11u miui12.5.12 稳定版更新 miui12.5.20 后为什么面具没有安装到另一个槽位的选项?
稳定版 OTA?应该是会有的啊,你更新的时候有在 magisk 内先还原镜像吗?
我开始先是完整包更新,然后没有安装到另一个槽位选项后,我没有重启手机然后又在面具还原了原厂镜像,然后再 ota 非完整包更新后还是没有,最后我在 b 站搜到了解决方法后解决了!是因为 SELinux 的原因
还有一个问题:我现在是安卓 11 的稳定版 12.5,能不能像这样保留面具升级到安卓 12 的 miui13?
酷安有个脚本能直接偷渡,传送
我就是靠这玩意直接从 miui12.5 稳定版不清数据升级到 miui13 的。更新完,重启前,重启前在 magisk 里直接安装到另一个槽位,不用还原镜像。
面具不用换吗?我现在用的还是这个教程 magisk 23.0 呢
要换,那你更新前先换成 canary 版的 magisk 吧,文章末尾有备份档
时隔快一个月,打扰了,老哥;
我刚入搞机坑不久,最近也遇到老哥你说的这个问题情况,看老哥你最后说到 B 站上找到解决方法了,不知现在还能找到原视频么??我也想看看视频给的解决方法,主要不知如何关闭 selinux φ( ̄∇ ̄o)
呜呜呜 X﹏X,又过去一个半多月了,看老哥你还没回复我在上月初给老哥你发的评论提问。。。不知老哥当初是忙着没看到我楼上的评论提问??还是??
麻烦老哥之后看到我这条评论推送通知,麻烦尽快回复下我在楼上 2 月初所发的提问留言呗,哭惹
可能他没看邮箱吧,所以你现在是遇到了什么问题两个月都没能解决掉?
请问安卓 12 的 miui13 怎样 root?能不能出一版视频?
miui13 一样的,也是用 magisk 给 boot 打补丁就行
另外还请下次评论,使用真实的邮箱,否则我回复你也没办法接受到。
最新版欧版系统,刷入 magisk 修复 boot 后无法开机,刷原版 boot 恢复,
Android12 要用另一版 magisk 了
看系统还是安卓 11
那也试试开发版本的 magisk?原版已经停更了
原来是上一个版本的 magisk 没卸载掉
神奇,不是会直接覆盖的吗 ⌇●﹏●⌇
不是,之前的版本要刷入卸载包卸载,新版本是直接改名
666 。小米 11 pro 实测也可以。 我在下面这个地址找的线刷包,指向的好像是官方的地址:
XiaomiROM.com
fastboot flash boot_a magisk_patched_xxxxx.img 这个命令刷成功了,fastboot flash boot_b magisk_patched_xxxxx.img 这个命令怎么刷不进去啊,是现在只有一个 A 系统吗?请老师解惑
不科学,两条命令其实只改了 a、b,a 能刷进去,b 怎么就刷不进去了?
所以我也不知道哪错了,是不是我这手机里面只有一个分区有系统呢?能给个你刷这俩命令的动图吗?我看看是不是哪错了啊
那只刷了一个分区的话,重启系统,magisk 有生效吗?
重启系统,magisk 生效,但是没试过在 magisk 里面把系统按照道空白槽位这个
那可以更新系统的时候试下。全量包更新,安装完提示重启的时候,到 magisk 里安装到另一个插槽
试过了,一切正常