到手了一块小米平板 5 Pro,又一次刷新了我对小米的认知。开个开发者模式要倒数 10 秒看警告;装个 apk 也要倒数 10 秒看警告;解锁 Bootloader 又是登录账号,又是联网绑定,还要等 168 个小时,把用户当贼一样防。
更难受的是,小米平板 5 Pro 并未在全球发售,唯一支持的 MIUI 国行系统自带全链路反诈。隔壁低配的小米平板 5 反倒是又有国际版 MIUI,又有 Android 13 DP(开发者预览)。
不过,小米平板 5 系列通过了 Android 认证。这意味着即使没人给它适配第三方系统,它也一定能跑 Google 发布的 GSI(Generic System Images)原生系统。 而又有许多适配 GSI 的第三方系统,这就解锁了无限可能。
2024 年更新:目前,已有多位开发者为小米平板 5 Pro 适配了 AOSP 系统,建议直接使用。本文内容仅留作参考。
如果有一定的刷机经验,刷写 GSI 非常简单,本文也部分适用于其他 Android 设备。
免责声明:本文为经验总结,操作前请先备份,操作风险自负。
解锁 Bootloader
下载 SDK Platform Tools(包括 adb、fastboot 等实用程序)
解锁程序,解锁时会清除所有数据。
- 关机时按住
音量减
+电源键
进入 Bootloader。 - 连接电脑,按解锁程序提示操作即可。如果程序提示要等 7 天,则 7 天后再次尝试。
接下来在刷入 GSI 前,可以先刷入 Magisk,便于之后的操作。
安装 Magisk
小米平板 5 Pro 目前没有能用的 Recovery,这里通过手动补丁的方式安装。
- 下载与平板系统相同版本的线刷包,提取其中的
boot.img
,复制进平板。 - 进入系统安装 Magisk.apk,用 Magisk Manager 给
boot.img
手动补丁(Install -> Select and Patch a File)。 - 将获得的
magisk_patched-XXX.img
传回电脑。 - 进入 Bootloader,连接电脑,输入
fastboot boot magisk_patched-XXX.img
临时进入支持 Magisk 的系统。- 如果未成功进入,可以重新进入 Bootloader 再试一次
- 自动开机后,在 Magisk Manager 中正式安装 Magisk(Install -> Direct Install)。
备份 Persist 分区(可选)
Persist 分区中储存了诸如指纹模块等的校准信息,这些信息每部设备都是不同的,丢失无法恢复。建议在获取 root 权限后备份一份,以备不时之需。
- 进入 MIUI 系统,开启 USB 调试。
- 连接电脑,输入以下命令。
adb shell su # 获取 root 权限,请在手机上确认 dd if=/dev/block/bootdevice/by-name/persist of=/sdcard/persist.img # 此时按两次 Ctrl + D,退出 adb shell adb pull /sdcard/persist.img
将获得的 persist.img
(大小约 64 MB)长期保存,避免丢失(本教程不会用到)。
刷入 GSI 镜像
小米平板 5 Pro 是 AB 分区,ARM64。选择一个喜欢的 ROM 即可。我测试过可用的有:
- Pixel Experience Plus
- 带 Plus 的版本有一些额外功能,如网速显示
- 基于 Pixel 手机系统,颜值较高,但平板上用会有一些布局错位
- Lineage
- 测试无法通过 SafetyNet
- 对平板适配较好
- AOSP (phhusson)
- 上面的 ROM 都是基于 phhusson 大神的这个项目制作的
- Android 13 GSI
- 蓝牙无法使用(Beta 3)
- 下载解压 ROM,获得
system.img
。 - 进入 Bootloader,连接电脑。
fastboot flash --disable-verity --disable-verification vbmeta vbmeta.img
- 此步骤用于停用 Verified Boot 分区验证,只需执行一次
- 如果已经安装了 Magisk,可以跳过本步骤,但未来要一直安装着 Magisk,否则
system
分区通不过校验可能会被禁用,需要重刷
fastboot reboot fastboot
- 此步骤用于进入 fastbootd,进入后屏幕上应显示 fastbootd
fastboot flash system system.img
,等待刷写完毕fastboot reboot recovery
,进入 Recovery 后,按提示操作清除数据并重启系统- 刷入不同类型 ROM 或版本降级时必须清除数据,否则无法进入系统
此时应该已成功进入系统。如果此前安装了 Magisk,新系统中会自动出现 Magisk 应用。
功能补丁
由于 GSI 镜像并非针对小米平板 5 开发,有一些细节问题需要修复。
修复启动器 / 任务栏
hide-tablet-taskbar(Magisk 模块)
PixelExperience 系统对平板的支持有些小问题(比如任务栏只显示一半)。写了个 Magisk 模块修复之。另外似乎还没有模块支持隐藏 Android 12.1 平板模式下的底部提示条,这里也顺便支持了隐藏。
本模块一并修复了 PixelExperience 13 下启动器崩溃的问题,可以从系统设置中找到 Magisk,安装本模块修复启动器。
开启 120 Hz
adb shell settings put system min_refresh_rate 120 adb shell settings put system peak_refresh_rate 120
如果设置里有 Phh Treble Settings 的话,也可以在里面直接改(Misc features -> Force FPS)。
修复音频
来源:https://forum.xda-developers.com/t/run-an-gsi-on-your-mi-pad-5.4352591/page-9#post-86447857
此外,PixelExperience 13 ROM 可启用 Settings -> Treble -> Misc -> Use System Wide BT HAL 并重启以修复蓝牙音频。
移除屏幕锐化
注意到屏幕会经常出现锐化的效果,看了下 MIUI 并不会有这种情况,费半天劲找到了引起问题的设置,写 Magisk 模块修复之。
SafetyNet
SafetyNet 的修复根据不同 ROM 分成几种情况,这里简单分享下经验。
PixelExperience ROM 已经模拟了设备信息,只需在 Magisk DenyList 对 Play Services 隐藏即可。
Lineage OS 可能由于自带了 su
,我没能成功通过 Basic integrity 测试(可能要自己修改 ROM 了)。
Android 13 GSI 需要 MagiskHidePropsConf + Universal SafetyNet Fix + Magisk DenyList,其中 MagiskHidePropsConf 设置成 MIUI 系统的 fingerprint,外加将 ro.build.version.security_patch
设置成 MIUI 系统对应版本的值(可以用 7z 打开线刷包的 system.img
,在 system/build.props
里找到)。
Magisk DenyList 配置方法
- 打开 Magisk,设置里选择 Hide the Magisk app
- 打开 Magisk,设置里启用 Zygisk 及 Enforce DenyList
- 进入 Configure DenyList,找到 Google Play services,只需勾选
com.google.android.gms
及com.google.android.gms.unstable
两项。 - 进入设置,清除 Google Play services 及 Google Play Store 的数据。
DRM
DRM 方面,Widevine 无需任何操作,神奇的保持在了 L1,修复 Safetynet 后即可直接观看 Disney+。
Netflix 可能多了一套验证,默认会是 L3,以下操作后可以恢复到 L1:
- 确保 SafetyNet 已通过
- 将 Netflix 添加到 DenyList 列表
- 用 Magisk 模块在
build.prop
添加一行ro.netflix.bsp_rev=Q8250-19134-1
- 该值仅适用于小米平板 5 Pro
- Magisk 模块写法非常简单,可以参考上面的「移除屏幕锐化」模块
- 修改
build.prop
后需要清除 Netflix 应用数据重新登录 - 该修改已合并至上游,一段时间后的新版 ROM 可能已经自带了
- 感谢几位朋友的帮助!
系统升级
由于小米平板 5 为 A/B 分区,之前刷机时只刷入了一个分区,另一个分区情况未知,直接升级有一定风险。
建议非必要不升级。升级前务必备份好所有数据,升级后有可能无法开机,需要清数据重刷。
如出现问题,可下载 MIUI 线刷包,使用 Mi Flash 线刷恢复至 MIUI 系统,再次刷入新版 GSI 系统。
- 如刷机刚开始时出现错误,不要试图修改刷机脚本绕过。请检查机型是否正确、是否触发防回滚检测。移除脚本中的自检代码强行刷入将会变砖,无法自行恢复。
- 恢复时不建议锁定 Bootloader(在 Mi Flash 底部选择)。
- 目前(2022-06)如将基于 Android 12 的 MIUI 13 作为底包,后续刷入 GSI 时,会出现一些兼容性问题。如果可能的话,建议刷入基于 Android 11 的 MIUI 13 稳定版。
我最后使用的是 PixelExperience Plus,还是挺不错的,跑分能跑到正常水平,指纹也正常使用。蓝牙耳机在修复音频后可以正常使用(Android 13 Beta GSI 不兼容蓝牙)。因为 Pixel 还没发布平板,PE 自带的 Pixel Launcher 会有些 Bug,但原生 Android 又不是不能换桌面 :P。
一些小问题是,小米键盘和手写笔会无法使用(没买这些),不支持双击唤醒(录入指纹后可用指纹快速唤醒),快充无法使用(被迫延长电池寿命),相机偶尔会假死,MIUI 的各种平板优化自然也没了。
本文撰写过程中参考了以下内容,在此表示感谢:
本文(https://dev.moe/2716)由 Coxxs 原创,转载请注明原文链接。
很实用,感谢踩坑(
之前 XDA 上针对 5Pro 的帖子寥寥无几,一直想刷但没什么动力。
就只是 Root 了之后拿着防火墙开白名单这样勉强用….
大佬, 我尝试修改刷机脚本绕过,然后变砖了请问还有什么抢救方法嘛 万分感谢
首先确认是否是真的变砖了。然后如果还能进 9008 的话,一个方法是去淘宝找有小米售后权限的商家,远程用 9008 刷机
大佬,我刷入Pixel Experience Plus后,实测系统能用,可以上网(可百度,不能谷歌),但是无法进入桌面,一直显示
“pixel启动器屡次停止运行”
会卡死,只能在设置里徘徊,怎么解决呀
这个似乎是 PixelExperience 13 的 BUG,可以参考文中更新后的「修复启动器 / 任务栏」章节修复。
来请问一下就是目前最新的V13.1.4.0.SKYCNXM(2022-10-10
) Android12底包还会有之前的一些兼容性问题嘛)小声
大佬,您好!
我的设备是红米平板,刷入安卓13gsi aosp后,平板一直处于redmi字样,无限重启,并未进入到安卓系统启动页面,您知道怎样解决吗?谢谢您啦!
问题已解决,打扰您啦,谢谢您!
请问小米Pad 5Pro 5G可以刷GSI或者ArrowOS么?
可以刷GSI
在rom里找不到system.img啊?
大佬还在吗?键盘无法唤出怎么办
rom中只看到了一个img文件
system.img 是不是就是 PixelExperience_Plus_arm64-ab-vndklite-13.0-20230914-UNOFFICIAL.img 这个?aosp_recovery.img 是不是通用的?