刷机与救砖记录

刷机真理:

  • 夜晚不刷机
  • 刷机先备份

FLASH AT YOUR OWN RISK
PLEASE READ ALL OF THIS BEFORE FLASHING

背景

  • 设备: 一加 13 (oneplus 13
  • 经验: 0
  • 工具: 电脑、网络、论坛

动机

旧手机陪伴了我三年的高中 + 大半年大学,在三年的(较)高强度使用后变得空间不足、电池续航较差,终于到了换的时候。

旧手机是荣耀,无法安装谷歌框架,更无法刷机。年少不懂的我只能忍受着各种无法删去的广告、极低的隐私、极差的广告。

终于我看到一位我很喜欢的up推荐了一加 13,并第一次了解到刷机这个概念,仿佛打开了新世界的大门。

略过从对刷机、bl、root、ROM这些词语一无所知,到购入手机,到各种找教程的过程,我终于在25年的暑假的返校最后一周决定开始刷机。

行动

一加作为如今刷机的主流选择,有着非常丰富的教程与活跃的论坛。我最终选择跟着 XDA 上的一份教程进行刷机:

[PJZ110][21 Jan] ColorOS to OxygenOS

最终目的

为了使用完整的谷歌服务,与最大限度地去掉手机内置广告,我选择刷入一加 全球版的系统,即这里标题提到的:from ColorOS to OxygenOS

步骤

  • 备份系统文件
  • 解锁 BL 锁 (Unlock Bootloader)
    alt text
  • 刷入全球版系统 (Flash)
    alt text
  • 获取 Root 权限
    alt text
  • 安装模块,隐藏环境等
    alt text

安装的模块

  • Fix Signal OnePlus 13 :专门修复信号问题
  • Zygisk Next
  • Play Integrity Fix (Tricky Store) :过谷歌安全验证
  • Wi-Fi 7 Enabler :解锁 Wi-Fi 7 (6 Ghz)波段
  • LSPosed :主要为了使用专为一加手机提供优化的 LuckyTool
  • Zygisk Assistant

最终成果

经过一天的折腾,成功刷入全球版系统,开始愉快使用。
虽然存在一些硬件不适配的问题,诸如NFC有些场景无法使用、天气定位乱飘,但我愿意用这些不变换取一个相对纯净的系统。
alt text

救砖

当然,第一次刷机,不出意外还是会出意外的。以下是迄今为止两次翻车及神奇救砖经历。

再次牢记刷机真理:

  • 夜晚不刷机
  • 刷机先备份

乱装模块的后果

起因

第一次刷机并获取Root权限后,面对如此丰富多样可供选择的模块,我依次下载了每个看着有趣的模块。尽管是一个一个安装,但问题依旧出现了,这时我就犯了第一个错:不要在晚上刷机。

临近睡觉,我急匆匆地装上了几个模块,并简单点开调了调,变安心放下手机睡觉了。一觉起来,我发现我的手机没电关机(前一天晚上还有四十多),并在充上电以后陷入了重启循环。
后来回顾,主要原因应该是晚上装的一个充电模块(所以说和电池有关的模块也要慎重),同时不知道还有什么其他影响,总之现在无法开机了。

救砖过程

以下是尝试过程:

  • 既然是模块的问题,我尝试在开机时通过案件,关闭KernelSU的所有模块:结果失败,无法关闭
  • 直接取消Root,模块自然失效:具体操作是重新刷回原版的init_boot分区,最终确实成功开机了。

看着简单,但那确实是经过一番搜索与摸索的结果。现在看来很自然也很好理解,但当时全网搜索了好久,才确认这个方法。当时甚至一度跑去售后,最终当我想给售后 复现 一下我的重启循环时,我的手机 神奇地 在这一刻重新开机了(此前一直无法成功,尽管我刷入了init_boot,但当我重新获取root权限后,即刷回修补后的init_boot分区,又陷入了无法开机的情况)。如果在这里没成功,我就要喜提清空数据了,但不知道此时达成了什么前置条件,一切恢复正常了,这次危机也就此结束。

过于自信因此没备份

背景

自上次刷到全球版过了半年多,版本也该更新了,于是我准备从原本的15.831 更新 到15.864。
到864的原因是,这是OOS15最新的一个版本了,如果再新就要到OOS16,刚出没多久,而且跨大版本,因此舍弃。

更新前,我看这个OTA Updates的教程如此简单,我有急着更新,因此完全没备份数据,也没有关闭本地模块,直接开始操作,在执行完:

  1. 打开本地安装
  2. 电脑上下载安装包 REPO
  3. 手机安装
  4. KSU Install to inactive slot (After OTA)
  5. 在软件更新处选择重启

完全参考以下教程:
参考

一系列后,再次无法开机了

救砖

现状:一加此型号手机采用a/b分区设计,无缝更新,此时新版本在b分区,旧版本在a分区,data数据分区共享。

这次对比之前,有了更多的经验,也有了Gemini的全程辅助(捣乱),依次尝试以下操作:

  • 尝试切回分区 a 开机:失败
  • 在a/b分区都刷回原版init_boot:失败
  • 取消更新合并 snapshot-update cancel:失败
  • 刷回原版vbmeta、boot等分区:情况更坏了

到此时已经深夜十二点过了(是的,又是晚上刷机带来的问题),面对无限重启的手机和我可能再也再也见不到的手机中的数据,我选择去睡觉,明天早上清醒再解决… (以下感受见下一部分详述)
早上起来又做了以下尝试:

  • 开始搜寻各大论坛(酷安、XDA…),没找到什么信息
  • 绝望,试图找专业人士去救砖:论坛里、QQ群里、闲鱼上的各种我能找到的人都问了个遍,只有两个人在听了我的描述后表示有小概率数据还能保住,剩下都表示只能清空线刷
  • 为了没备份的数据苦苦挣扎,谨慎地尝试AI给的方法
  • 关键与转折:利用之前的全量包,重新把新系统完整刷了一遍
  • 关闭 vbmeta校验,如下:
    alt text

至此,成功开机了!
虽然root掉了,但数据依旧完整,更新也成功了!


刷机后记

面对可能永远消失的数据的绝望与无力

数据的世界,不同于现实世界,是没有实体而无法触及的。因此可能上一秒你的照片,你的数据还完好无损,下一秒你就再也无法访问它们。好一点来说,如果没有进行彻底格式化,它们依旧躺在那些01的海洋中,甚至可以说躺在那些晶体管中,而我只是无法解读它们。

在那个手机无法开机,可能面对丧失手机内所有数据的夜晚,我想了很多。
我先设想最坏情况:我的手机里有什么是独一份而格式化后就会永远失去的东西?

  • 照片:相册里有这半年多的照片,其中包括和朋友同学出游的照片,最宝贵的还是上个月去斯里兰卡旅游照的大量照片。这些我都没有备份,斯里兰卡的照片我也只随便发了几张给朋友,除此之外照片只在手机中。
    如果这些照片找不回来,我已经做好安慰自己过去美好回忆记在脑中就足够了的准备了…
  • 微信聊天记录:尽管大多数时候电脑和手机的记录是同步的,但也存在少量情况下电脑端的消息不全。不过这点还算可以接受。
  • 备忘录:里面有一些记录
  • 其他系统桌面设置等…

总之,我在试图思考最坏的情况,并做好充足的心理准备。尽管如此,那天晚上,我躺在床上还是辗转反侧,心中一片乱麻。我想和我的数据一起死去。

面对那些宝贵而又脆弱的数据,在这种情况,我们是无助的。
最终救回那些数据,是我垂死挣扎的结果。

说实话,这两次都是稀里糊涂的救回来了,为什么这么做不行?为什么那样做就可以了?
我到现在都没搞懂具体是什么出了问题(欢迎在评论区讨论),但是就是尝试看起来很有希望的这个,在尝试看起来很可靠的那个,然后在一个步骤后,神奇的开机了,数据再次回来了,我迈入死亡的一只脚也回来了。

老生常谈的AI问题

AI在面对自己没有把握或根本不知道的事情时,在99%情况里它会胡诌一个答案出来,此时如果我们不加判断或轻率地复制粘贴那些指令,很可能让本就糟糕的事情进一步陷入无法解决的境地。我们一次又一次地踩这个坑,掉到坑里我们才又提醒自己下次更加谨慎。

(绝望截图)及时止损
alt text

不可否认,最终成功保住数据,还是AI+我一起找出尝试出的办法,所以AI不是不能给出正确答案,而是需要人类来进行最为关键的选择与判断

目的为导向的学习

我去刷机,不是因为我对刷机很感兴趣,想去研究这个原理(当然现在逐渐深入渐渐发现了其中的有趣之处),而是纯粹的目的驱动:我想新手机拥有谷歌框架、纯净的外版系统、以及刷机后一系列的自定义自由。

有了这个目的,我开始从零开始研究如何达到我的目的。正如前面所说,最开始,我下载酷安,根本搞不懂那些名词是什么意思,只能收藏+关闭一条龙,企图找到个靠谱的步骤直接照搬。同时也看看一些科普与视频,补补理论知识。最终我也是找到XDA上这个量身定制的教程,一切都只差行动。

当然,付诸行动需要决心,还有不到一周开学与即将失去家里的便利条件就是一个很好的推动剂。

而且,现实与教程的文字往往是有区别而不能一比一复刻的,我在按教程走的时候遇到了无数的问题,翻论坛、查谷歌、问AI,用尽一切方法。在这个过程中,我才真正理解了我每一步是在干什么,渐渐了解背后的原理,这比过看一万篇教程。


待补充:刷机名词解释