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