随着小米逐渐收紧手机 Bootloader 解锁政策,一加手机便成为了可能是 国内 最适合刷机爱好者的安卓设备:解锁不设限、Root 后在一定范围内支持保修。我能理解厂商封堵刷机的考量,如今的安卓生态早已告别那个功能匮乏、需要靠刷机来弥补的时代,再加上深度定制的 UI 系统和基于硬件的定制化功能,都让第三方 ROM 的生存空间日益萎缩。当刷机变得不再必要,刷机文化式微是必然的趋势。但安卓的魅力,始终来源于它的开放性,我还清楚地记得在小米 5 上实现三系统共存时那种纯粹的快乐——即便这并没有什么意义。

在因骁龙 888 的拉胯而从小米 11 转向 iPhone 之后,我已经有 4 年没接触过刷机了。这次有幸拿到一部一加 Ace5 Pro,机主( おとうと) 拜托我帮忙解锁并隐藏 Root,我得以借此再过一把刷机的瘾。

本文是机器快速上手及刷机过程的简要记录。

关于手机

一加 Ace5 Pro 发布于 2024 年 12 月 26 日,搭载当下最新的旗舰芯片 高通骁龙 8 至尊版( Snapdragon 8 Elite),配备 6.78 英寸的直面屏和 6100mAh 大电池,整机仅重 203g,和我手上的 iPhone 比较,轻得相当明显。

既然定位电竞手机,这样的配置倒还算中规中矩。我手上这台是 12GB+256GB 的内存和存储,只是打游戏的话还算够用,即便再安装个微信也不在话下。但要拿微信办公的话得另当别论。

后置三摄采用浴霸式排布,最高像素 5000 万。随手在昏暗的室内拍了一张,感觉色彩比我的 iPhone 要鲜艳一些。

拍照水平太次,看不出所以然来。

不过话说回来,可能是我太久没关注安卓市场,再加上之前基本只接触过小米的缘故,对其他品牌的产品线了解相当有限。我只能顺着「小米数字系列是高端旗舰,Redmi K 系列是中高端旗舰」的逻辑,猜想只划分为数字和 Ace 两条产品线、价格区间也近似的一加,定位应该也差不多。可是查询参数时才惊讶地发现,搭载相同 CPU 的一加 Ace5 Pro 居然比一加 13 的安兔兔跑分高了三万多。只能归结于晚发布的 Ace5 Pro 在芯片调教上要比老前辈更成熟一些。

关于系统

现在的一加预装的是和母公司 OPPO 一样的 ColorOS,我这台一加 Ace5 Pro 搭载的是最新的 ColorOS 15。这是我第一次使用 ColorOS,新鲜感虽谈不上十足,但也有些好奇心在。

桌面中规中矩,看不出明显的差异,至少和我印象中的 氢 OS 不太相似,毕竟氢壁纸在当时可算是独一档的设计。(我这是什么老古董)

毕竟现在的系统大都趋于雷同,做得太复杂是需要额外的上手成本的。

所以我直奔系统预装应用,倒要看看是不是只有小米才会预装一堆垃圾。

果不其然,大家都是半斤八两。

可当我尝试批量卸载这些应用时,才注意到无法直接在 抽屉模式 下批量卸载它们,提示仅能移除图标。

小米不是这样教我的诶,我记得把这些图标往顶栏拖动,是有一个按钮可以直接卸载的。

翻了翻桌面设置,才注意到 ColorOS 的桌面只有在 标准模式 下,才能批量卸载应用。

抽屉模式下,需要进入应用抽屉,点击右上角「管理」,勾选应用后,才可以批量卸载。

奇怪的逻辑。

预装应用如此,广告尤甚。ColorOS 锁屏默认使用「乐划锁屏」推送垃圾新闻、短视频和广告不说,系统自带应用还有无法关闭的广告。尤其是自带浏览器。浏览器不仅有开屏广告,主页还充满了各种各样低俗的广告。网页无法打开时还会推送低俗新闻,锁屏后重新打开浏览器还会弹一次开屏广告。即便能切换成极简模式,搜索框中也无时无刻不在滚动着广告推送。

乐划锁屏倒是能关,可这浏览器怎么都找不到关闭广告的入口。小米被骂了一顿之后老实了不少,系统广告大部分支持关闭。但一加我 简单 翻了翻,没有看到明显的关闭广告的选项。顶多一刀切关闭通知,或者卸载了之。

不过在试着整理桌面时,意外地发现 ColorOS 的应用文件夹居然支持自由调整大小。不仅可以横向/竖向拉伸,还能变成长条形、方形等不同布局。如果 iOS 能把这文件夹调整方式抄了去的话,我的桌面也能变得好看一些。

对比小米的设计,ColorOS 的处理方法明显更灵活,实际使用起来也顺手得多。

还发现了一个叫做「一加互传」的功能,写着支持 iPhone。我以为会是使用相同协议无感传输的那种,结果还是需要在 iPhone 端安装「O+互联」APP 才能互相传输文件。那和两台设备都安装一个互传应用并没有什么实质上的区别,只是一加自带了这个互传 APP 而已。

还有其他基于机载 AI 的功能,因为需要登录欢太账户,没能体验;另外骁龙 8 至尊版的游戏性能,因为只是解锁刷机,也没有深度测试一番。

最后是把小米 11 刷成 ColorOS 体验了番 AI……

关于刷机

一加解锁 Bootloader 不像小米需要下载专用的解锁工具,直接在「开发者选项」中允许「OEM 解锁」,再重启至 Fastboot 模式,然后使用 fastboot 命令,即可完成解锁,非常简单。

至于获取 Root 权限,我还停留在使用 Magisk 获取 Root 的古早思维,不知道现在是不是有什么新的方式。网上搜索了一圈,都推荐使用 KernelSU 获取 Root 权限。简单翻阅了下官方文档,似乎使用 LKM 模式 修补官方 init_boot.img 镜像的方式,和为 Magisk 修补 boot.img 镜像差不多。按部就班实操了一遍,成功获取到了 Root 权限。

刷机有风险,请做好救砖的心理准备!!!

准备

在开始之前,需要准备以下工具:

  • ADB Tool:用以执行 adb 和 fastboot 指令,传送门
  • Fastboot 驱动:解决 fastboot 指令不生效的问题,传送门
  • payload-dumper-go:提取原厂系统安装包中的 init_boot.img,用以后续修补 KernelSU,传送门
  • KernelSU 管理器:管理 Root 权限,传送门

解锁

首先,打开设置,下拉至「关于本机」,点击「版本信息」。接着连续点击顶部「版本号」7 次,开启「开发者选项」。

返回设置。下拉至「系统与更新」,点击「开发者选项」,找到「OEM 解锁」并开启,以允许解锁引导加载程序;开启「USB 调试」,以便后续连接电脑执行解锁命令。

将手机通过 原装数据线 与电脑相连接。接着,打开 我的刷机传家宝 ADB Tool,双击 打开CMD命令行.bat ,弹出终端窗口后输入:

adb devices

此时手机应当会弹出 USB 调试 授权,勾选 一律允许 并确认即可。

终端中会输出 List of devices attached 列出当前 adb 设备。

随后,再执行:

adb reboot bootloader

等待手机重启至 Bootloader 模式。

一加的 Bootloader 模式,屏幕左上角有一个显眼的 START 提示,下方以英文标注:

Press volume key to select, and press power key to select.

意为「使用音量按键选择,按下电源按键确认选择」。

以红字 DEVICE STATE - locked 提示设备已上锁。

完整示例如下,仅供参考:

-----------------------------------
START
-----------------------------------

Press volume key to select, and press power key to select.

FastBoot Mode
PRODUCE_NAME - sun
VARIANT - SMB UFS
BOOTLOADER VERSION -
BASEBAND VERSION -
SERIAL NUMBER - abcedf
SECURE BOOT - yes
DEVICE STATE - locked

在 adb 工具中输入:

fastboot devices

如果正常如下图输出设备代号,即可继续执行解锁命令。

如果没有任何输出,请安装 驱动,或是检查线材、数据线与手机 PC 的连接状态。

总之,在 fastboot devices 命令有正常输出后,继续在终端中输入解锁命令:

fastboot flashing unlock

此时终端中应当会提示:

D:\ADB Tool>fastboot flashing unlock
OKAY [  0.015s]
Finished. Total time: 0.016s

而手机上会出现解锁相关的警告。按 音量下键 选中 UNLOCK THE BOOTLOADER,再按下 电源键 确认解锁。

解锁将自动清空所有数据,并自动重启至开机引导模式。

修补

根据 KernelSU 官方文档 的说明,需要先检查设备是否支持使用 KernelSU。下载并安装 KernelSU 管理器后,打开 KernelSU。

  • 如果应用程序显示 “不支持”,则表示您的设备不支持 KernelSU,你需要自己编译设备的内核才能使用,KernelSU 官方不会也永远不会为你提供一个可以刷写的 boot 镜像。
  • 如果应用程序显示 “未安装”,那么 KernelSU 支持您的设备;可以进行下一步操作。

咱的设备当然是支持的,估计是一些不常见的古董才会不被 KernelSU 支持。

接着,下载官方原版系统更新包。因为不知道从哪里可以获取到完整包,这里使用的是 大侠阿木 提供的全量更新包 度盘链接

这里我使用的是 PKR110_15.0.0.800(CN01) 版本,度盘中还提供了数个官方下载链接,如果没有度盘会员可以直接使用官方链接下载。

官方链接官方链接官方链接官方链接官方链接

官方链接官方链接官方链接官方链接官方链接

接着,解压安装包,获取 payload.bin 文件。

随后,下载 payload-dumper-go,并解压 payload-dumper-go_x.x.x_windows_amd64.zip,打开该文件夹,将上面获取到的 payload.bin 文件移动至该文件夹中。

接着在 该文件夹 空白处右键,选择「在终端中打开」。直接使用以下命令,可以省去将该应用添加到环境变量的步骤:

.\payload-dumper-go.exe payload.bin

由于一般只用得到 boot.imginit_boot.img ,可以不必等待全部跑完流程,看到这俩文件被提取出来就可以按 CTRL+C 取消进程,关闭窗口。

本来准备试试 一加全能工具箱,但打开就提示「终端设置异常」,即便恢复为「Windows 控制台主机」也无济于事。想了想也就敲几个命令的事,就没再继续修复环境异常,可能是 Win11 下这个工具水土不服吧。

init_boot.img 拷贝至手机中,打开 KernelSU 管理器,点击顶部左边第一个按钮,选择修补本地 init_boot.img

KernelSU 会将修补过的镜像文件保存在原镜像同路径,命名格式为 kernelsu_patched_xx.img,拷贝至电脑备用。

我这台机子目前的系统版本号为 PKR110_15.0.0.800(CN01),如果你的版本号和我一致,可以直接使用我修补好的镜像。传送门

但仍注意备份数据,并做好随时救砖的思想工作!!!!

Root

解锁完机子,修补好镜像,Root 就很简单了。先开启「USB 调试」并使用 ADB Tool 确认连接正常后,重启至 fastboot 模式:

adb reboot bootloader

测试 fastboot 连接,确保有正常输出:

fastboot devices

最后,将修补过的 kernelsu_patched_xx.img 使用以下命令刷入系统。

fastboot flash init_boot kernelsu_patched_xx.img

你可以参考下图将文件拖动至工具中,不用手敲文件路径。

提示刷入完成后,再使用 fastboot reboot 命令重启系统。

即可在 KernelSU 中查看到 Root 状态。

隐藏

本来是计划把隐藏的方法完整记录下来的,奈何老弟整活把手机搞到无限重启,只能双清恢复出厂设置。我没有及时保存截图,一切努力付诸东流……

关于 KernelSU 的用法以及隐藏 Root 的方法,这里就不赘述了。可以尝试使用 KernelSU 自带的功能对特定应用还原环境,或是在安装 ZygiskNext 模块后,使用 LSPosed 框架配合 隐藏应用列表 隐藏特定应用。如果仍被检测到 Root,或是提示对系统已被改动,可以尝试安装 PlayIntegrityFixTrickyStore 模块,一般就能摆脱嫌疑。

回锁

老弟发现这机子内核版本太高,不适合他搞小动作,准备退货。所以我辛辛苦苦解锁完、折腾完 Root 隐藏,还得全部清空给它锁回去……

上锁的话,需要先在 KernelSU 中选择「永久卸载」 移除 Root 权限和所有模块,还原原厂镜像。

保险起见,再使用完整包更新一遍系统,确保所有文件都恢复为原厂文件。

然后按照解锁的方式进入 fastboot 模式,使用以下命令回锁:

fastboot flashing lock

手机上会弹出提示,选择锁定菜单即可。

重启手机后,如果开机界面没有出现设备已解锁的提示,就说明回锁成功了。

但看说这个操作非常危险,有概率使设备 变砖,我只是运气好才一次成功。大家千万不要没事干解锁回锁反复横跳……

关于救机

如果因为瞎折腾导致无限重启什么的,可以尝试使用 电源键+音量减键进入 Recovery 模式,尝试清除系统数据,看看能不能再次回到开机引导界面……

文章参考

文中提到的所有应用和工具:

解锁和 Root 方面的参考: