ChrAlpha's Blog

因 Magisk 模块致 Pixel 8 卡死在 Fastboot 的救砖记录

2024-09-28·便签格

经过排查,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 模块致 Pixel 8 卡死在 Fastboot 的救砖记录
本文作者
ChrAlpha
发布日期
2024-09-28
更新日期
2024-09-28
转载或引用本文时请遵守 CC BY-NC-SA 4.0 许可协议,注明出处、不得用于商业用途!
CC BY-NC-SA 4.0