一加11(PHB110)刷机和Root指南
在搭载高通8GEN2处理器的一系列手机中,一加11凭借泄露的9008工具,一举成为了最受开发者关注的机型。 截至今日,该型号已适配第4个第三方ROM,且在XDA Forums中的讨论度排行靠前。 一切迹象表明,是时候更新手中的开发机了。
刷机工具
比较遗憾的是,大部分刷机工具只能运行在Windows环境下。
Latest ADB Fastboot and USB driver installer tool
用于一键安装ADB和Fastboot模式下的驱动
地址:github
欧加真9008工具
基于bff,用于备份和还原Flash文件
作者:某贼
地址:lanzou(f65u)
OPLUS骁龙8GEN2设备刷机工具
用于PHB110机型分区的9008刷入
地址:cyteam
FastbootEnhance
提供Fastboot的GUI操作,包括切换到fastbootd等。
地址:github
备份分区
为了避免参数丢失不得不换主板的悲剧,在进行任何操作前必须备份全部分区。 目前,可使用欧加真9008工具一键备份(需要安装9008驱动)。
特别的,在进行root时需要对boot分区进行修补,故需要频繁对boot分区进行备份。 通过比较OTA和OFP包可发现,同样的版本下,不同打包方式中的boot镜像是相同的。 另外,在未修改boot分区时,备份得到的镜像与刷机包中的一致。
刷入OOS
由于COS和OOS中比较大的分区变动1,刷机过程比较复杂,主要流程如下2:
解锁bootloader:
- 打开developer mode 开发者模式
- 打开USB Debug usb调试
- 开启 OEM-unlock oem解锁
- adb reboot-bootloader
- 进入 fastboot
- fastboot flashing unlock
- adb reboot-bootloader
刷入系统:
- 下载CPH2449 GLO A.10
- 打开Fastboot Enhance
- 确认勾选”Ignore Unknown Partition”
- 确认 fastbootd is NO
- Flash payload.bin
- 选择 boot into fastbootd
- 打开 Fastboot Enhance
- 再三确认”Ignore Unknown Partition”
- 确认 fastbootd is YES
- Flash payload.bin
- 下载解压 ocdt_CPH2449.img
- 进入fastboot
- fastboot flash ocdt ocdt_CPH2449.img
- Fastboot reboot
回锁bootloader:
这里要注意不能在初始化阶段设置密码3,并且不要在修改boot分区后回锁4。
- 进入OxygenOS, 跳过所有选项. 不要设置pin密码(此过程最好不要插卡)。 🈶科学环境的话,无所谓。
- 打开 developer mode开发者模式
- 打开 USB Debug usb调试
- 打开OEM-unlock
- adb reboot-bootloader
- 进入fastboot模式
- fastboot flashing lock
- fastboot reboot
经测试,在回锁后,系统能够正常增加更新。(在Root后无法OTA更新5)
刷入my_preload分区:
由于该分区存放的是预装应用等内容,不需要在OTA中更新,故在上述刷写过程中不会被覆盖6。 因此,需要从OFP包中提取并刷入7
root(KernelSU)
KernelSU是一种新的root方式(对内核进行修改),隐蔽性更高,但操作也更复杂。 对于一加11的原版ROM,目前均已有现成的内核修补包供直接刷入(不压缩); 但是如果刷了第三方系统,则可能需要手动编译内核。
在刷入前,可以通过如下指令尝试启动:
fastboot boot boot.img
确认能够启动后,再实际刷入:
fastboot flash boot boot.img
KernelSU在模块接口方面尽可能地与Magisk保持一致,并提供了额外的功能。 另外,对于Magisk的Zygisk功能,通过Zygisk Next模块实现了支持。
在需要时可以给shell添加root,这样就能通过adb shell
执行root脚本。
Xposed框架(LSPosed)
LSPosed是一个基于Xposed框架的8安卓应用hook模块,目前已支持到安卓14。 LSPosed虽然以模块的形式刷入,但自身又是一个强大的框架,搭载了大量的Xposed模块。 通过Xposed框架定义的一套hook接口,Xposed模块的开发者可以不需要适配安卓底层的改动,应用的兼容性得到显著提升。
CallRecording
该应用解决了原生拨号器无法录音的问题:
- 将
CountryCode
修改为可录音的区域。 - 跳过开启录音时的提示音(根据拨号器版本分为2种方式)
SSLUnpinning
随着安卓的更新,对应用的抓包(MITM攻击)变得越来越困难,这一方面体现在证书的安装上9,另一方面体现在应用的自保护上。 SSLUnpinning通过绕过应用的CA证书有效性检测的方式,实现了对大部分应用的抓包。
ROM提取
卡刷(OTA)包是单个bin文件,需要先将其解包,可使用payload-dumper-go。
线刷(OFP)包是按分区分割的img文件,格式为Android sparse image,需先使用simg2img将其转换为正常的img文件,然后挂载到linux系统中读取。
一加的内置系统应用在分区my_stock
中。
其中,我的一加
软件在文件夹KeKeUserCenter
中,在COS中包名为com.heytap.vip
,在OOS中包名为com.oneplus.account
,两者并不能覆盖安装。
其它的一加服务都依赖于上述软件,因此提取系统应用并没有什么意义。