我平时用一台专门的 Android 机做 app 调试,之前一直是一加 11——手机本身没什么问题,就是曲面屏不太适应,两侧老是误触,凑合用了挺久。
最近换成 13T,直屏,手感好很多。但随之而来的是 ColorOS。
ColorOS 的问题不是功能少,恰恰相反,是东西太多——装个 app 要检查这哪的,定时闹钟被后台杀掉,调试的时候通知推送各种抽风。有一次直接因为时钟 app 被杀导致上班迟到,那次决定了:必须换系统。
逛了圈 XDA,发现一加 13T 国行转 OxygenOS 已经有成熟方案了,社区有人做好了全自动的刷机包,维护也比较活跃,当天下午直接上手。
资源获取
找到方案
方案来自 XDA 社区帖子:ROM | PKX110 | OxygenOS: Convert OnePlus 13T to 13S
本质上是把国行的 PKX110 机型转换成国际版 13S(CPH2723)的 OxygenOS,fastboot 全量刷入,不是 OTA 也不是本地升级包,刷完之后机型识别也会变成 13S。
帖子里有详细说明,相机和信号需要在刷完之后额外装修复模块,Root 也需要单独处理,后面会分别说。
下载刷机包
刷机包托管在 SourceForge:
- 主目录:https://sourceforge.net/projects/oneplus13flashers/files/Oneplus%2013T/
- OxygenOS Flashers:https://sourceforge.net/projects/oneplus13flashers/files/Oneplus%2013T/OxygenOS%20Flashers/
我刷的是 OOS 16.0.2.400,截图时列表最新为 16.0.5.700:

包体分两段压缩(.zip.001 + .zip.002),两个文件放同一目录,用 7-Zip 或 WinRAR 对 .001 解压,会自动合并。解压后目录结构如下:
1602400/
├── COS_FILES_HERE/ # 从 ColorOS 迁移时放对应包文件
├── OOS_FILES_HERE/ # OxygenOS 包文件(通常已预置)
├── Platform-Tools/ # adb / fastboot 工具集
├── super.img # 系统逻辑分区镜像
└── Super_Flasher.bat # 主刷机脚本

解锁 Bootloader
解锁 BL 是一切的前提,这步会清空手机所有数据,做好备份。
先在手机里开权限:设置 → 关于手机 → 版本号连点七次开启开发者模式,进入开发者选项,同时开启 OEM 解锁 和 USB 调试。
手机关机,同时长按电源键 + 音量下键进入 Fastboot 模式,连接电脑,在 Platform-Tools 目录下执行:
fastboot flashing unlock
手机屏幕弹出解锁确认,音量键选中 UNLOCK THE BOOTLOADER,电源键确认。设备自动清空数据并重启。重启完成后 BL 已解锁,进系统重新开启 USB 调试,准备刷机。
刷入 OxygenOS
以管理员身份运行脚本
右键 Super_Flasher.bat,选择以管理员身份运行:

脚本会全程自动调用 Platform-Tools 里的 fastboot 完成分区写入,不需要手动输命令,跟着提示走就行。
第一阶段:核心分区
脚本首先写入 boot、dtbo、init_boot、modem 等分区,A/B 槽各写一遍:

然后写入 vbmeta、vendor_boot,再分 13 段写入 super 逻辑分区(每段约 786 MB,总量约 10 GB):

13 段写完,耗时约 242 秒,之后自动 reboot 进入 fastboot 等第二阶段:

第二阶段:交互提示
脚本暂停,提示在手机端将语言切换为 English——Fastbootd 界面用音量键选中,电源键确认,然后回到电脑按任意键继续:

手机端在 Fastbootd 界面用音量键选中 English,电源键确认:

脚本继续写入 uefi、xbl、xbl_config、xbl_ramdump 等引导分区:

第三阶段:Root 与 Wipe
写入完成后,脚本询问两个问题:是否准备 Root,以及是否需要 Wipe data。

Root 选 Y,Wipe 选 y。这里脚本内置的信号修复工具会因为 Windows 路径问题报错(odm 和 signal 不是内部命令),这是正常现象,信号模块后面单独装。
最终看到 FLASHING COMPLETE:

按脚本提示,在手机 Fastbootd 界面点击 Format data,输入验证码,确认清除数据:




格式化完成,手机自动重启进入 OxygenOS 初始化向导。
首次开机
格式化完成后手机自动重启,进入 OxygenOS 激活向导。
这个阶段蜂窝信号是没有的,Wi-Fi 正常,激活过程需要连接 Google 服务,建议接一个能翻墙的 Wi-Fi,我这边路由器跑的 OpenWrt + Mihomo,直接连上就能过。
激活完进桌面,相机可以用但驱动还没对齐 13T 硬件,色彩和对焦行为和原来不一样。信号模块装完之前蜂窝一直没有。Root 和修复模块装完才算真正落地。
推荐服务取舍
激活向导末尾会弹出一大页「推荐服务」授权,有些看起来人畜无害,实际上坑不少,在这里过一遍。
必须开启
| 服务 | 原因 |
|---|---|
| AI 服务引擎 | 相机、相册等应用的图像算法依赖此服务,关掉后 HDR / 夜景处理会直接失效 |
| 设备快连 | 蓝牙耳机等外设的发现握手协议,关了日常配对会出问题 |
关掉
| 服务 | 原因 |
|---|---|
| 夜间自动更新 / 系统应用更新 | Root 机的生死线——OTA 一旦覆盖 init_boot 分区,KernelSU 当场失效 |
| APP Picks / 快应用服务框架增强 | 商业推广组件,常驻后台无意义唤醒 |
| 智慧数据增强 / 智慧决策 / AI 建议 | 索取位置、日历、应用列表权限的后台常驻服务 |
| 场景感知网络增强 / 智能网络信号 | 在后台静默切换网络路由,调试时干扰抓包环境 |
| 用户体验计划 / 系统稳定改进 | 遥测回传,没有增益 |
KernelSU Root
调试机的核心诉求之一就是 Root——抓包要装系统证书,部分工具需要 root 权限,这台机器本来就是为这个准备的。
Root 方案选 KernelSU,通过修补 init_boot 分区镜像实现。相比 Magisk,KernelSU 在内核层面做 hook,对 OxygenOS 的兼容性更稳。
操作流程
1. 推送原始 init_boot 镜像到手机
从刷机包 OOS_FILES_HERE 目录提取 init_boot.img,通过 adb 推送:
adb push init_boot.img /sdcard/Download/
2. 安装 KernelSU Manager
adb install KernelSU_v3.2.4_32457-release.apk
3. 在手机端修补镜像
打开 KernelSU Manager,点击安装 → 选择一个文件,选中刚推送的 init_boot.img:

点击下一步,KernelSU 修补完成,界面上会显示输出文件路径:

4. 拉取修补后的镜像
adb pull /sdcard/Download/kernelsu_patched_20260417_044704.img
5. 刷入修补镜像
adb reboot bootloader
fastboot flash init_boot kernelsu_patched_20260417_044704.img
fastboot reboot
Sending 'init_boot' (8192 KB) OKAY [ 0.197s]
Writing 'init_boot' OKAY [ 0.006s]
Finished. Total time: 0.377s
重启后,KernelSU Manager 首页显示 Root 状态激活,完成。
相机修复 & 信号模块
OxygenOS 刷机包是面向 13S(CPH2723)的通用包,不含 13T 的相机调教和基带信号补丁。刷完之后这两个问题会比较明显:相机色彩和对焦行为和原来不一样,信号偶尔不稳定。
解决方案是通过 KernelSU 模块打补丁:
| 模块 | 包名 |
|---|---|
| 相机修复 | oneplus13t-fix-camera-CPH2723_16.0.2.400.zip |
| 信号修复 | fix-signal-oneplus13t-v3.1.zip |
相机修复来源:github.com/kinginu/oneplus13t-fix-camera
通过 adb 推送到手机,在 KernelSU Manager 的模块标签页本地安装:
adb push oneplus13t-fix-camera-CPH2723_16.0.2.400.zip /sdcard/Download/
adb push fix-signal-oneplus13t-v3.1.zip /sdcard/Download/
两个模块装完重启,摄像头和信号恢复正常。通话录音在 Phone 应用右上角设置里可以开。
系统清理
换了系统,但还有些后续要处理:OxygenOS 同样有一些预装应用和系统服务需要清理,另外作为调试机,有几个系统行为需要从根上锁死,否则哪天睡一觉起来发现系统被自动更新了,Root 环境就全废了。
禁用 OTA 更新服务
在推荐服务里关闭自动更新只是 UI 层面的,底层四个系统包还在跑。有 Root 之后,直接在包管理器层面系统级禁用:
# 先确认四个包存在
adb shell pm list packages | grep -E "com.oplus.ota|com.oplus.romupdate|com.oplus.cota|com.oplus.sauhelper"
# 系统级禁用
adb shell su -c "pm disable com.oplus.ota"
adb shell su -c "pm disable com.oplus.romupdate"
adb shell su -c "pm disable com.oplus.cota"
adb shell su -c "pm disable com.oplus.sauhelper"
验证禁用状态:
adb shell dumpsys package com.oplus.ota | grep enabled
# enabled=2 → 完全禁用;enabled=0 → 默认启用状态
四个包的作用:
com.oplus.ota:主系统 OTA 更新程序com.oplus.cota:一加特有的静默热修复机制com.oplus.romupdate:ROM 更新检测守护进程com.oplus.sauhelper:系统应用升级辅助(阻止相机等被后台覆盖)
卸载预装应用
adb shell pm uninstall --user 0 只从当前用户移除,APK 本体留在系统分区不动,需要的话可以随时还原。对于调试机来说够用,不需要动系统分区。
OnePlus / OPlus / ColorOS 自带
adb shell pm uninstall --user 0 com.oneplus.mall # OnePlus Store
adb shell pm uninstall --user 0 net.oneplus.forums # Community 社区
adb shell pm uninstall --user 0 com.oneplus.brickmode # 禅定空间
adb shell pm uninstall --user 0 com.oneplus.backuprestore # 手机搬家
adb shell pm uninstall --user 0 com.oplus.games # 游戏助手
adb shell pm uninstall --user 0 com.coloros.translate # 翻译
adb shell pm uninstall --user 0 com.coloros.translate.engine # 翻译引擎
adb shell pm uninstall --user 0 com.redteamobile.roaming # 逍遥游 / 漫游
Google 多媒体 / 内容 / 云端
adb shell pm uninstall --user 0 com.google.android.youtube # YouTube
adb shell pm uninstall --user 0 com.google.android.apps.youtube.music # YouTube Music
adb shell pm uninstall --user 0 com.google.android.videos # Google TV
adb shell pm uninstall --user 0 com.google.android.apps.docs # Google Drive
adb shell pm uninstall --user 0 com.google.android.apps.photos # Google 相册
adb shell pm uninstall --user 0 com.google.android.apps.nbu.files # Files by Google(文件极客)
adb shell pm uninstall --user 0 com.google.android.calendar # Google 日历
Google 设备 / 家庭 / 安全
adb shell pm uninstall --user 0 com.google.android.apps.adm # Find Hub 查找中心
adb shell pm uninstall --user 0 com.google.android.apps.chromecast.app # Google Home
adb shell pm uninstall --user 0 com.google.android.apps.tachyon # Google Meet
adb shell pm uninstall --user 0 com.google.android.apps.safetyhub # 个人安全
Google 账号 / 订阅 / 通讯
adb shell pm uninstall --user 0 com.google.android.apps.subscriptions.red # Google One
adb shell pm uninstall --user 0 com.google.android.contacts # Google 通讯录
还原
任何一个包都可以用下面这条命令还原:
adb shell cmd package install-existing <包名>
例如:
adb shell cmd package install-existing com.google.android.apps.photos
禁用微信 USB 弹窗
卸载完预装应用,收尾还有一件事。手机接上 Mac 数据线,微信会立刻弹出「USB accessory」的提示窗口。关掉,没两秒又弹。原因是微信在系统层注册了 USB AOA 广播监听,插线就会劫持前台。
有 Root 之后,直接在组件级别禁掉这三个 receiver/activity:
adb shell su -c "pm disable com.tencent.mm/com.tencent.mm.plugin.backup.mmaoa.UsbAttachIntentUI"
adb shell su -c "pm disable com.tencent.mm/com.tencent.mm.plugin.backup.mmaoa.UsbBroadcastReceiver"
adb shell su -c "pm disable com.android.systemui/.usb.UsbAccessoryUriActivity"
每行返回 Component {...} new state: disabled,插线不再弹任何窗口。
日后需要用有线迁移微信数据,disable 换 enable 恢复:
adb shell su -c "pm enable com.tencent.mm/com.tencent.mm.plugin.backup.mmaoa.UsbAttachIntentUI"
adb shell su -c "pm enable com.tencent.mm/com.tencent.mm.plugin.backup.mmaoa.UsbBroadcastReceiver"
adb shell su -c "pm enable com.android.systemui/.usb.UsbAccessoryUriActivity"
小结
整个流程大概两个小时,主要时间花在下载包上(挂梯子,包体约 10 GB)。
最终状态:系统干净,信号正常,相机正常,Google 全家桶开箱即用,Gemini 作为系统级 AI 助手直接可用。作为调试机,Root 环境稳定,OTA 通道关死,插线不乱弹窗。
从一加 11 曲面屏凑合用了一年多,换到 13T 直屏 + OxygenOS,这才算是真正用顺了。
后记(2026-04-17)
写完这篇差不多四个月后,一加社区和 XDA 开始集中讨论一个风险点,拿出来说一下,顺便解释一下当时选 16.0.2.400 这个版本为什么是对的。
一加的 ARB 熔断问题
2026 年 1 月前后,陆续有人发现:一加部分机型更新到特定系统版本后,无法再降级或刷旧包,强行降级会直接硬砖,且常规 EDL 救砖方式无效。这不是软件层面的限制,是写入了硬件 e-fuse(电子熔丝),物理不可逆。
XDA 有专门的警告帖:[CRITICAL WARNING] ColorOS 16.0.3.501 Updates - Permanent Anti-Rollback ARB Fuse Blown,标题里直接用了 “CRITICAL WARNING”。OnePlus 后来对媒体承认这是一个临时性的安全机制,并表示后续会恢复降级能力——但”临时”是临时,熔丝烧了就烧了,没有什么”临时不可逆”这种说法。
注意 XDA 警告帖的标题写的是 ColorOS,不是 OxygenOS。这个机制一开始就是从 ColorOS 这边先爆出来的。
ColorOS 的版本分界线(13T 国行 PKX110)
这台机子的起点是 ColorOS,如果你还没动手刷机,或者想重新走一遍流程,需要先确认自己的 ColorOS 版本没有跨过安全线。
同一个 ARB 跟踪库对 PKX110 国行的标注:
| 版本 | 状态 |
|---|---|
PKX110_15.0.2.108(CN01) | ✅ Safe |
PKX110_16.0.3.501(CN01) | ⚠️ Protected(ARB 风险) |
PKX110_16.0.3.502(CN01) | ⚠️ Protected |
PKX110_16.0.5.701(CN01) | ⚠️ Protected |
我当时出发点是 PKX110_15.0.2.108(CN01),在安全线之前。如果你刷机前的 ColorOS 已经升到了 16.0.3.501 或之后的版本,熔丝可能已经烧了,这时候再去刷 OxygenOS 的风险比这篇博客写的要高得多——不只是失败的问题,是可能直接硬砖。
OxygenOS 的版本分界线(13S CPH2723)
刷完 OxygenOS 之后也一样。第三方 ARB 跟踪库对 CPH2723 的标注:
| 版本 | 状态 |
|---|---|
CPH2723_16.0.2.400(EX01) | ✅ Safe |
CPH2723_16.0.3.501(EX01) | ⚠️ Protected(ARB 风险) |
CPH2723_16.0.5.700(EX01) | ⚠️ Protected |
我当时刷的是 16.0.2.400,刚好在这条线之前。这只是凑巧——刷机帖里下载的是这版,没有特意挑。现在看来算是运气好。
这意味着什么
两个操作节点都有版本线:刷机前的 ColorOS 不能太新,刷进去的 OxygenOS 也不能选错。
具体来说:
- 出发点确认在
PKX110 15.x这一段,不要自己手动升级 ColorOS 再去刷 - 下载刷机包时确认版本是
CPH2723_16.0.2.400(EX01),不要用16.0.3.501或更新的包 - 刷完之后禁用 OTA 四个系统包(博客里有命令),如果跳过这步,哪天后台静默更新到
16.0.3.501,熔丝烧了,后续任何想降级或换包的操作都会变成一块砖
用调试机折腾,这种风险尤其不值得踩。