Skip to content
SlippinDylan
Go back

一加 13T 刷入 OxygenOS + KernelSU Root 全流程记录

我平时用一台专门的 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:

我刷的是 OOS 16.0.2.400,截图时列表最新为 16.0.5.700:

SourceForge OxygenOS Flashers 文件列表

包体分两段压缩(.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 完成分区写入,不需要手动输命令,跟着提示走就行。

第一阶段:核心分区

脚本首先写入 bootdtboinit_bootmodem 等分区,A/B 槽各写一遍:

Flasher 写入 boot / dtbo / init_boot / modem 分区

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

写入 super 分区(1–5/13)

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

Super 分区写入完成,总耗时 242 秒

第二阶段:交互提示

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

提示在手机端选择 English

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

Fastbootd 语言选择界面,选中 English

脚本继续写入 uefixblxbl_configxbl_ramdump 等引导分区:

写入 xbl 系列引导分区

第三阶段:Root 与 Wipe

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

Root 询问与 Wipe data 选项

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

最终看到 FLASHING COMPLETE

FLASHING COMPLETE

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

进入 Fastbootd 模式,选择 Format data

输入屏幕显示的随机验证码

确认清除,所有用户数据将被抹除

Data formatted,格式化完成

格式化完成,手机自动重启进入 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 安装界面,选择 init_boot 分区镜像文件

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

KernelSU 刷写完成,输出 patched 镜像路径

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 → 默认启用状态

四个包的作用:


卸载预装应用

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,插线不再弹任何窗口。

日后需要用有线迁移微信数据,disableenable 恢复:

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 也不能选错

具体来说:

用调试机折腾,这种风险尤其不值得踩。


Share this post on:

Previous Post
GitLab CI 全链路 APK 自动化发布:跨项目产物传递 + 无状态上传 COS
Next Post
Homelab GitLab 三机分工架构:GitLab + Nexus + Runner