OnePlus 12R/Ace3 OOS 升级后恢复信号和Root步骤

因为一加Ace3切换成OxygenOS后会伴随有信号丢失的问题 ,解决办法就是刷ocdt分区和oplusstanvbk分区,但是这个也不是一劳永逸的方法,每次ota后都要重新操作一遍,为了方便自己使用,特在此记录。

恢复信号

1
2
3
adb reboot fastboot
fastboot flash ocdt ocdt.img
fastboot flash --slot=all oplusstanvbk oplusstanvbk.img

这里面的ocdt.img和oplusstanvbk.img是自己在买回新机后备份的原ColorOS系统的分区,一直保留使用,据说这个是和自己的手机绑定的,所以使用别人的,以及其它版本的不知道是否可行。

Root

现在使用APatch进行root,虽然从Apr 4, 2024已经没有再进行更新了,但截止到目前依然可用,目前最新版本的oos为CPH2609_15.0.0.400(EX01) 。使用它的原因是感觉比Magisk好用,内核级别的root,不容易被检测到。第一次安装刷入的步骤不难,也不是自己的目的,升级后进行的操作步骤如下:

获取boot镜像文件

  • 1、下载全量包,可通过oxygen Updater 获得
  • 2、解包
    • 通过解压软件获取payload.bin 文件
    • 通过payload dumper 获取boot.img文件

修补镜像

将获取到的原系统boot.img传输到手机,打开APatch,点击右上角手机图标,选择选择一个启动镜像并修补 ,找到文件,选择进行修补,之后修补好的文件会被保存到download文件夹,名称类似于apatch_patched_10763_0.10.7_prob.img

刷入修补后的boot文件

将修补后的apatch_patched_10763_0.10.7_prob.img传到电脑,在相应文件夹内打开终端,输入

1
2
adb reboot bootloader
fastboot flash boot xxx_boot.img

完成

补充:

在oos14时代,可能是内核版本没变,一次修补好的boot文件连续用了好几次,升级后直接刷入,免除了解包的麻烦。

但在oos15时代,不知道什么原因,第一次大版本升级后修补的boot镜像,直接用在后面的小版本OTA后都导致了无法进入系统的问题,所以,还是不要偷懒,每次都解包重新修补比较保险。

当然,出现无法启动的问题后,只需要刷入原版boot.img即可重新开机。

附:Linux环境下payload dumper使用方法

系统要求

  • Python3, pip
  • google protobuf for python pip install protobuf

准备工作

  • 1、git clone https://github.com/vm03/payload_dumper.git
  • 2、在payload dumper 目录下
    1
    python -m pip install -r requirements.txt
    这里要注意,如果不能安装,要进入python虚拟环境,方法在这一篇 ,这一点至关重要,我在这里花费了不少时间。

全量包解包

1
python payload_dumper.py payload.bin