最近听说苏州开通了 5G 独立组网(SA),由于近期 5G 非独立组网(NSA)体验逐渐劣化,被迫迁移到 SA。于是去苏州联通开通了 SA 套餐。
而我的手机因为装了一些不兼容高版本的 Magisk 插件,一直停留在 MIUI 11 版本,而且禁用了 OTA 更新。因此需要手动更新到 MIUI 12。经过综合考虑,决定先试用 MIUI 12.5 EU 开发版一个月,如果遇到非常影响用户体验的 bug,再刷回 MIUI 12 国内稳定版。
准备工作
备份
首先,必须要做好备份。本文建议多种备份方式结合、多处备份。
下面提供了我的备份方法,仅供参考,不同手机会有不同。
- 使用小米自带“备份与恢复”功能,备份到 U 盘。
- 选择“系统设置”
- 全选“应用”
- 全选“应用数据”
- 将手机连接到电脑,复制以下文件夹:
- DCIM
- Documents
- Pictures
- 备份应用数据
- 打开电脑版微信,备份所有聊天记录
- 如果听播客,导出播客的 OPML
- 备份“储存重定向”应用配置文件
- 如果习惯 APP 的旧版本,或者有无法使用 Google Play 安装的软件,或者已经绝版难以下载的软件,使用 MIUI 分享功能,发送到 Telegram 收藏夹备份一份 APK。
- 备份未同步的密码管理器,及二步验证器(F2A)的相关二维码。如果没有原始二维码,而二步验证器也不提供备份功能,可以临时关闭二步验证。特别的,对于 Office 365 账户,应提前关闭二步验证,或添加一个手机号,或联系好管理员进行二步验证重置(如果自己就是管理员,应添加一个临时的备用全局管理员账号)。
以上操作完成后,先将备份汇总与电脑硬盘上。然后复制其副本至以下三处:
- 电脑本地磁盘
- U 盘
- Google Drive
备份到 Google Drive 或其他云服务很重要,请耐心等待备份完成。在刷机完成后,有些问题可能需要近一周时间才会显现出来。但是可能在刷机成功后,就激动地将电脑和 U 盘的备份删除了。云服务的回收站功能给了我们一个延期反悔的机会。
解锁
本文不包含如何解锁小米 Bootloader 的教程,下文假定你已解锁。若你未解锁 Bootloader,或者不知道什么是解锁 Bootloader,请自行搜索教程。
请注意:请务必在进行解锁操作前,就做好备份工作!
下载
经实验,Redmi K30 Pro 的 5G 与非 5G 版本 ROM 通用,只要代号为 lmi
即可。
- 国内版 ROM 下载地址:https://wdnmd.online/。为了防止该网站下线,本文提供了一份 截至成文时的 Web Archive 存档 。
- EU 版 ROM 下载地址:xiaomi.eu 。
- TWRP,在 xiaomi.eu 下载帖子内含有 TWRP 下载链接。目前 Redmi K30 Pro 尚无官方 TWRP,经过测试 WZSX150 制作的版本比较好用。
- [可选] Magisk 刷机包及相关 Apk,可前往 GitHub 下载。如果需要 root 或恢复本地化功能,请下载之。
- Android SDK Platform Tools,包含
adb
、fastboot
等多个所必需的命令。 - MiFlash 刷机工具,用于安装小米专有驱动。如果该链接失效,可以使用 备份链接 下载。
进行刷机
刷机有风险,操作请谨慎。刷机后,你的手机有可能无法启动(俗称“变砖”),或存在其他不稳定情况。操作前请务必完成备份工作。本文作者不为你按照或不按照本文所述进行的任何行为承担任何责任。
刷机顺序如下:
- 刷 TWRP
- 四清(清除 Dalvik Cache、System/内置存储、Data、Cache 四个分区)
- 刷官方系统
- 刷入防止 TWRP 被替换功能
- 刷 EU 版系统
- 清除 Data 分区
- 刷 Magisk
- 再次清除 Data 分区
首先解压 MiFlash 刷机工具,打开 XiaoMiFlash.exe
。需要安装驱动的页面会自动跳出来,如果没有,就点击左上角的 Driver 菜单。然后,根据提示安装驱动。
安装后,建立一个新的文件夹(本文中以 D:\miui12flash
为例)。解压 Android SDK Platform Tools,将 AdbWinApi.dll
、AdbWinUsbApi.dll
、fastboot.exe
、adb.exe
四个文件复制到该文件夹。将 TWRP 的镜像(文件名类似 recovery-TWRP-XXXX.img
)也复制到该文件夹。文件夹的内容应该如下表所示:
1 | D:\miui12flash>dir |
接下来执行第(1)步:TWRP 的刷写。关闭手机,然后长按 音量-
和 电源
键,直到屏幕上显示一只兔子并有 FASTBOOT
或 BOOTLOADER
英文时,表示已经进入 Fastboot 模式。将手机用 USB 线连接到电脑。
随后,按住 Shift
键盘在文件夹任意空白处右键,点击“在此处打开命令行”。输入以下命令:(提示:输入文件名时,可以只输入前几个字符,然后按 Tab
键,文件名会自动补全,省去输入复杂文件名的时间。)
1 | fastboot flash recovery recovery-TWRP-XXXX.img |
执行完第二个命令后,手机会自动重启,并显示 TWRP 启动页面。此时我们可以进行第(2)步。你的手机可能会要求你输入原来系统的解锁密码,请输入之。然后点击“清除”按钮,在新的页面中点击“高级”,选择以下选项:
- Dalvik Cache
- 内置存储
- Data
- Cache
然后滑动底部滑动条执行清除。
清除后,重启系统到 TWRP,我们就可以进行第(3)步——刷入官方版了。刷入 EU 版前先刷入官方版的原因是,如果没有官方版作为底包,会产生一些系统崩溃的 bug(此信息未经查证,也没有可信来源,请酌情参考)。
首先从电脑复制官方版 ROM 的 zip 文件到手机 (不要解压)。在手机 TWRP 首页点击“安装”,选择官方版 ROM 的 zip 文件并安装。安装后不要重启,进行第(4)步:返回 TWRP 主页,选择“高级”,点击“防止 TWRP 被替换”。
然后进行第(5)步,用和刷入国内版 ROM 一样的方法安装 EU 版 ROM 的 zip 文件。刷入完成后,请依然不要直接重启。然后进行第(6)步,在 TWRP 首页点击“清除”按钮,然后选择“清除 Data”,并在弹出确认框内输入 yes
清除。
第(7)步的方法与之前相同,只不过是刷入 Magisk 的 zip 文件,而不是系统的 zip 文件。此处 zip 文件同样无需解压。第(8)步重复第(6)步即可。
以上步骤完成后,即可重启进入系统了。首次启动可能时间比较长,请耐心等待 10-15 分钟左右。如果仍然无法进入系统且卡在 MIUI 界面,可尝试长按电源键直到手机黑屏来强制重启。如果多次仍然存在问题,可以认为是系统有问题,即“卡米”。请尝试重新清除 Data,并回忆是否有步骤存在问题,或寻求他人帮助。
系统内配置
刷机完成,进入系统初始化页面。系统会要求登录谷歌账号。
由于本人所在网络环境可以直接访问 Google,因此不涉及如何进行 Google 激活的问题。你可以尝试在电脑上开启相关软件,并使用 Wi-Fi 设置中的“代理设置”功能。相关用法请自行搜索。
配置 Magisk
进入系统后,首先进行 Magisk 的设置。安装 Magisk 官方仓库发布页 上下载的 Magisk Manager 的 apk 文件,然后安装。如果提示需要更新 Magisk 或 Magisk Manager,请设置代理后更新。
随后,保持代理打开,点击 Magisk 下方导航栏的拼图形状按钮。根据你的实际需要,搜索并下载以下 Magisk 模块:
Riru
:安装以下两个模块的先决条件Riru - LSPosed
:进行 刷入本地化包 或 修复 Play 版 BiliBili 全屏问题 的先决条件。
后文中除非特别说明,我们假定你已经安装了所必需的 Magisk 模块。
打开 ADB 并隐藏不必要的系统应用
由于 Android 11 无法删除系统应用,因此如果想要禁用系统应用,只能选择将其设置为禁用状态。要进行此步,首先要打开开发者模式,并启用 ADB。
打开“设置——我的设备——全部参数”,狂点“MIUI 版本”,直到提示“你已打开开发者模式”。
随后在“设置——更多设置——开发者选项”中,打开 USB 调试。随后将手机通过 USB 线连接到电脑,打开之前所述的包含 adb.exe
的文件夹。执行以下命令:
1 | D:\miui12flash>adb shell |
手机会提示你是否要授权 adb 获得 root 权限。点击“允许”,然后通过以下命令来禁用部分不想要的系统应用:
1 | pm disable <package-name> |
将上文 <package-name>
替换为想要禁用的应用包名。包名可以在手机上长按应用图标,点击“应用信息”,再点击右上角的“信息”按钮查看。具体禁用哪些包,依赖于个人选择。
刷入本地化包
前往 MIUI EU 欧洲版 本地化 Magisk 模块,下载本地化模块。下载前,请仔细阅读文章内容和使用说明。
该本地化包目前仍然不稳定,而且应用双开存在问题(已再 0.67 版本修复,但是引入了一些新的问题,在特定情况下会导致系统 UI 崩溃)。
安装方法请阅读该博文。在此不再赘述。
恢复旧的操作习惯
- 禁用桌面搜索框:设置——桌面——桌面搜索框:关
- 禁用桌面上滑搜索:设置——桌面——桌面模式——桌面上滑:无
- 设置“最近任务”的样式:
- 设置——桌面——最近任务——最近任务样式:横向排布
- 设置——桌面——最近任务——显示内存信息:开
- 设置——桌面——最近任务——显示推荐栏:关
- 关闭全面屏:设置——桌面——系统导航方式:经典导航键
- 同时设置“虚拟按键调换顺序”:开
- 旧版控制中心:设置——通知与控制中心——控制中心样式——经典控制中心
更新小爱同学并添加洛天依音色
截至本文成文时,本地化 Magisk 模块 版本为 0.67,包含的小爱同学应用并非最新版。因此,我们需要手动进行更新。
如果你在刷入本地化模块时,选择恢复了应用商店,可以直接更新小爱同学。 确认 0.67 版本存在 bug,使用小米应用商店更新系统应用,将导致系统崩溃,如果你使用该版本,请勿使用系统商店更新任何系统应用。 该信息可能随时间变化而改变。
点击下载链接下载支持自定义音色的小爱同学:下载链接
接下来的操作,你需要一个能够访问系统根目录 /
的文件浏览器,如 Solid Explorer 2 或 ES文件管理器。
将下载的小爱同学重命名为 VoiceAssist.apk
。然后,复制到 /data/adb/modules/MiuiEULocalization/system/app
,并覆盖。完成后,重启手机。
接下来,给小爱同学添加洛天依的音色。在添加前,请确保你已经至少打开一次小爱同学应用,并已登录小米账号。
您可以使用非官方的 小爱音色列表 免费获取小爱同学音色。在搜索框搜索您需要的关键词即可。
也可以使用经过我挑选的质量较好的两个音色,直接在手机上点击链接即可安装。
修复 Play 版 BiliBili 全屏问题
我是一个十分怀旧的人——仍然在使用 2.4.2 版本的 BiliBili,因为这是以抽屉方式进行交互的最后一个版本。而同时,我也依然在坚持使用安卓的“三大金刚”虚拟按键。但是,在更新到 MIUI 12.5 后,该版本的 BiliBili 出现了问题,表现为在全屏状态下,点击屏幕,虚拟按键会遮挡视频播放器的 UI。
经过仔细研究并咨询他人,最终本人编写了一个 Xposed 模块解决了这个问题。研究的过程可以参见这篇博文 对 Play 版哔哩哔哩 4.2.x 在 MIUI 12 上的虚拟按键 bug 问题分析及通过编写 Xposed 模块解决该问题的记录。
该模块已经 发布在 GitHub 上,您也可以 直接下载。但是在使用前,请仔细阅读使用说明。
恢复数据
恢复存储重定向
如果正在使用 存储重定向,在安装回该应用后,首先在 Magisk Manager 中安装 Riru - Enhanced mode for Storage Isolation
模块,并重启手机。随后对增强模式进行配置。
最后,使用“备份与还原”功能还原设置。部分系统应用可能需要重新设置。
恢复密码管理器
建议在恢复普通应用数据前,先恢复密码管理器和二步验证器(F2A)。
对于 Microsoft Authenticator,在安装后点击“从备份恢复”,然后使用手机验证码登录 Microsoft 账号即可。
但是,对于 Office 365 账户,需要由一名管理员在 Azure Active Directory 中重置二步验证。然后,删除原来的账户条目,并重新扫描二维码添加 F2A。
恢复微信聊天记录
使用电脑版微信的备份与恢复功能即可。
查看 5G 状态及锁定 5G SA 基站
使用 Cellular Pro 可以查看当前的网络状态。
进入该应用后,授予 root 权限,可以在 NR5G 选项卡中查看 5G 状态。Connectivity Mode
栏可以看到 5G 是 SA 还是 NSA。
进入“锁网”选项卡,勾选 SA,可以锁定 5G SA 连接。但是,在 5G SA 覆盖不足的地方,可能导致手机无信号。
总结
本次刷机可以视作成功。经历了与多个模块作者的沟通与反馈,并自行解决了一系列问题后,手机总体能够稳定运行,偶有非关键系统应用崩溃但不影响使用。
本次刷机共花费了三天时间,总计用时约 48 小时,包括刷入、研究、配置、备份、恢复、沟通反馈等时间。总体花费时间较长。
本次刷机达成了目的,使手机获得了 5G SA 的连接能力。经过在肯德基多次测速,可以获得较为稳定的与 5G SA 当前商用的理论值一致的峰值速度,即 1000Mbps/1Gbps。
鸣谢
首先请允许我特别感谢以下朋友:
- MinaMichita 提供了体验极好的 Magisk 本地化模块,并耐心地听取用户反馈。
- VSinger 粉丝俱乐部 华东 1 群的大佬 MichaeLan 提供的小爱同学洛天依音色链接。
此外,xaiomi.eu 团队、Magisk 的开发者 John Wu、TWRP 团队、第三方 TWRP 适配者 WZSX150 的辛勤付出为广大 MIUI 发烧用户提供了软件与技术支持。wdnmd.online 的站长整理汇编了 Redmi K30 Pro / POCO F2 Pro 的所有官方刷机包。Rikka Apps 编写了 Riru Core、Riru Storage Redirect、Riru LSPosed 等 Magisk 模块及 存储空间隔离 应用。alibaba1126 开发的 Cellular Pro 应用提供了专业的手机移动蜂窝型号测量和控制功能。 linusyang92 编写的 Mi Pay Extractor 及 kooritea 的 分支版本 为本文提供了一定的参考。小爱音色列表 网站为小米用户提供免费的小爱同学音色手机服务。在此对他们表达诚挚的感谢。
感谢 秘塔写作猫 提供了在本文的写作过程中提供了文法检查服务。
感谢 洛天依 的歌曲在刷机刷到烦躁、解决不了 bug 及等待反馈回复时,帮助我调整心态、不至于摔碎手机。
参考文献
- YouTube精彩片段:最近看到很多换系统各种卡米,卡兔子什么的。 - 哔哩哔哩.哔哩哔哩文章.2019-10-13, 页面存档于 2021-03-26
- MinaMichita:MIUI EU 欧洲版 本地化 Magisk 模块.Koizumi’s Blog.2021-03-25, 页面存档于 2021-03-26
- Squidward:MIUI国际版本地化(添加银联,公交卡,负一屏).Squidward’s Moai.2021-01-20, 页面存档于 2021-03-26
- Joseph:对 Play 版哔哩哔哩 4.2.x 在 MIUI 12 上的虚拟按键 bug 问题分析及通过编写 Xposed 模块解决该问题的记录.Joseph’s Blog.2021-03-30
参考链接
- MIUI 12 ROM DOWNLOADS | Xiaomi.eu
- 红米K30 Pro MIUI官方刷机包整理 - wdnmd.online, 页面存档与 2021-03-26
- Magisk - GitHub
- SDK Platform Tools
- 小米通用刷机工具
- Google Drive
- 小爱音色列表
- bilibili - Google Play 上的应用
- bilibili历史更新版本 - APKPure.com
- 存储空间隔离(存储重定向)(需要 root) - Google Play 上的应用
- 存储空间隔离 - Rikka Apps
- KeePass
- KeePassium, KeePass 的 iOS 版本
- Keepass2Android - Google Play 上的应用
- Cellular-Pro - Google Play 上的应用
- Solid Explorer File Manager - Google Play 上的应用
- ES文件管理器 - File Explorer App & Cloud Storage - Google Play 上的应用
- Microsoft Authenticator - Google Play 上的应用
- BL/MI Fix - GitHub
- LSPosed - GitHub