因 Magisk 模块致 Pixel 8 卡死在 Fastboot 的救砖记录
经过排查,Pixelify v3.0 在 Magisk >27 的 pre-release(截至目前)上存在兼容性问题,当然这已经是后话了。
bootloop
通过标题可知,我实际上并不是遇到这种情况。但是在搜寻信息,确定是 Pixelify 的问题时,发现其他反馈更多也是陷入 bootloop(开机动画循环)的情况。这种情况其实是还算号处理的,网络上有很多相关解决方案。例如:
- 出现开机动画后按住音量减键,进入 Safe mode,此时 Magisk 会自动禁用所有模块,但是不会禁用 Magisk Core,所以依然可以通过 adb shell 操作移除特定或所有模块
- 先在连接的电脑命令行输入
adb wait-for-device shell magisk --remove-modules
,然后再给手机开机,这样在启动阶段检测到 ADB 连接就会立即赶在出问题前移除所有模块 - 在第三方 Recovery(现在不常用)解锁后,删除
/data/adb/modules
下的模块文件夹,或者直接刷入将.apk
重命名为.zip
的 Magisk 卸载包
卡在 Fastboot
Pixel 在开机先出现完整的 Google
下一步正常是 6 个字母变成点转一圈化作 G
-logo 的动画,但是我遇到的情况比较特殊,出现 Google
后直接黑屏然后进入 Fastboot 模式,从结果来看这都没有陷入 bootloop,上述的两种方案均无法使用。
较新的 Magisk 已经移除「核心模式」且 Pixel 自 7 代开始便引入 init_boot
,通过 fastboot boot
临时启动原镜像或者不包含模块的镜像都是无效的。这种情况下,尽管通过刷入原 init_boot
是可以进入系统。但此时完全失去 Magisk 核心的同时模块依然在 /data/adb/modules
下,重新安装会 Magisk 问题依旧。且没有 Root 权限的备份工具很难大展身手,不能指望备份后擦除数据再重装来清除模块。
此时经过 这个帖子的回复 提醒,可以除了 Magisk 外的通过其他手段获取 Root 权限,例如 KernelSU 或者 Kitsune Magisk,这样既不会被 Magisk 启动模块同时获得 Root 权限后可以访问到 /data/adb/modules
文件夹进行操作。具体在模块文件夹下加入名为 disable
/remove
的文件即可在下次启动 Magisk 时禁用/移除模块。
由于我是在升级 Android 15 QPR1 Beta 2(Build AP41.240823.009
)同时将 Magisk 升级至 27008
的 pre-release,这两者某种意义上都不算正式版、都有风险,且 Pixelify 已经超过一年未更新,当时并不确定是与系统兼容问题还是与 Magisk 兼容问题,所以只能通过上述方法先把模块处理掉。如果早点注意到是 Pixelify 与 Magisk pre-release 的兼容问题,那么直接刷回原 init_boot 开机、用回正式版 Magisk 重新 patch init_boot、刷如新 patched init_boot 即可。
这种依靠其他工具获取 Root 权限以此来排查 Magisk 模块问题的方法,一般脑回路有点难以想到,但却有借鉴意义,于是在此记下。
后
任何时候,规律的自动化备份都是很重要的。由于最近忙,我是直接擦掉数据、重装系统再还原的。这是确定有完整备份在云端给我的底气。等过了一两周有空再来排查的。
当然,我不鼓励贸然清除数据,Google 为 Android 引入的工厂重置保护(FRP)在你已登录 Google 账户并使用非正常方式重置时会触发,下一次安装系统后开机不可跳过网络连接且必须登录重置前相同的 Google 账号来解除保护。这自然要求你连接到可以访问 Google 的网络环境,注意此时是无法安装代理工具的,只能通过分享代理的热点或支持数据漫游的境外 SIM 卡来解决。对于本文的情况,可以在刷入原镜像解除 Magisk 后进入系统、登出 Google 账号再擦除数据,毕竟登出 Google 账号又不需要任何 Root 权限。
部分链接:
- 一日一技 | Magisk 模块「翻车」,没有 TWRP 如何救砖?
- Magisk 模块目录说明:这里得知加入名为
disable
/remove
文件的操作 - Magisk - Installation and troubleshooting:非官方手册,部分内容过时,但篇幅很全面
- Find problem apps by rebooting to safe mode:Pixel 进入 Safe mode 的说明