
记录初次搞机:OnePlus 10 Pro root 之路#
近来捡回了部二手的一加 10 Pro,打算尝试 root。之前虽也早就像试试的,但奈何一直用了五六年的旧手机很难解锁,我也不想承担相应的损失唯一一部手机的风险,故一直搁置着。随着旧手机越来越难堪重负(代理网速一快就卡死自动重启),终于想着再添加一部手机。说是添加是因为旧的也还在用,把相应的需求迁到新的 root 的手机上,老的手机就完成些日常生活需要的功能,这样我也无需顾虑要把 root 隐蔽得有多好了。
一加的手机我不太了解,只知道它解锁应该是最简单的了,但这也就够了,所以这次是专门挑着一加的手机捡的。
然这么多年虽然不能说是一直心心念念,但也时不时惦记着 root 的事,尤其是不时遇到我想要的功能但是要 root 的时候,总是很不爽。虽说如此,但也没有说就有去专门了解,因为这肯定是越看越想自己上手的,这要上手就要斥资买手机,所以是忍不得就看不得的,以至于我现在对此依旧接近一无所知。
所以以下是一些近乎小白入门的记录和经验,如果未来有人看了能有所参考,那就是赚到了。
事前准备#
有一些工具肯定是需要的,首先肯定是 adb 不消说,从 Android SDK 中下载 platform-tools 解压即可。
如果是 Windows 的话还有一个驱动要装,我一开始没装驱动,结果一进 fastboot 就连不上手机,百思不得其解,后来才发现是驱动没装的缘故。
装上这个就可以了:
Google USB 驱动
然而顶级域名 cn 的 Android Developer 的这个下载链接点进去是 404 的,又让我百思不得其解好久😓。这里这个才行:
Google USB 驱动
解压后,右键点击 android_winusb.inf
选择安装即可。
解锁 bootloader#
Warning
解锁 bootloader 会清除手机数据,所以要提前备份好数据。
一加的手机解锁 bootloader 是最简单的,直接在手机上开启开发者选项,然后打开 OEM 解锁和 USB 调试就行了。
开启开发者选项:
设置
-关于手机
-版本信息
狂点版本号 7 次开启 OEM 解锁:
设置
-系统
-开发者选项
-OEM 解锁
打开开启 USB 调试:
设置
-系统
-开发者选项
-USB 调试
打开
然后连接电脑,在 platform-tools 所在路径打开终端,输入 adb reboot bootloader
重启到
fastboot 模式,可以看到最下面红色的 DEVICE STATE - locked
,即上锁状态。
再输入 fastboot flashing unlock
,使用音量键上下选择 UNLOCK THE BOOTLOADER
,按电源键确认即可解锁 bootloader。
如果像我一样卡在 waiting for device
的话,可能就是驱动没装好。装好上面的驱动后,在
设备管理器
中找到 Android Device
,发现它带着 ❔ 或 ⚠️。右键选择
更新驱动程序
- 浏览我的电脑以查找驱动程序(R)
-
让我从计算机上的可用驱动程序列表中选取(L)
- Android Device
-
Android Bootloader Interface
确认即可。
解锁后手机会重启,并且清除数据,再回到手机上开启开发者选项,这时会发现
OEM 解锁
是灰色的无法操作,这说明解锁成功了。我们在打开 USB 调试
就行了。
获取 root 权限#
怎么获取 root 权限?方案好多。
首先是一直有所耳闻的 Magisk,然后是它的各种分支, Magisk Alpha、Kitsune Magisk (原 Magisk Delta)等等。现在又有 KernelSU,以及它的分支 KernelSU Next、SukiSU Ultra 等等。还有 APatch 等等。要选哪个?
毕竟我也还是半个小白,这里也很难给出它们的各种差异以及优劣对比。总之我听说 KernelSU 是新兴的内核级的解决方案,听着就很高级,而且对传统的 Magisk 的大多数模块也都兼容,隐蔽性也可能更好,所以我就选了它。
安装 KernelSU#
什么是 KernelSU?官网这样写的:
KernelSU 是 Android GKI 设备的 root 解决方案,它工作在内核模式, 并直接在内核空间中为用户空间应用程序授予 root 权限。
Android GKI (Generic Kernel Image) 2.0,是在 Android 12 上引入的,内核版本应该是 5.10 以上的。所以并非所有 Android 设备都支持 KernelSU。
幸好幸好的是,我的这部一加 10 Pro 刚好是 Android 12 内核版本 5.10。
从 KernelSU GitHub Releases
下载最新的 KernelSU 管理器 KernelSU_vX.X.X_XXXXX-release.apk
,安装到手机上并打开,如果显示 不支持
那就是不支持,如果显示 未安装
那就是 OK 的。
选择安装方式#
现在 KernelSU 有两种安装方式:
GKI
(Generic Kernel Image): 使用 通用内核镜像 (GKI)替换掉设备原有的内核。LKM
(Loadable Kernel Module): 使用 可加载内核模块 (LKM)的方式加载到设备内核中,不会替换掉设备原有的内核。
具体差异参考官方文档 KernelSU 安装介绍:
GKI模式
GKI 模式会替换掉设备原有的内核,使用 KernelSU 提供的通用内核镜像。GKI 模式的优点是:
通用型强,适用于大多数设备;比如三星开启了 KNOX 的设备,LKM 模式无法运作。还有一些冷门的魔改设备,也只能使用 GKI 模式;
不依赖官方固件即可使用;不需要等待官方固件更新,只要 KMI 一致,就可以使用;
LKM模式
LKM 模式不会替换掉设备原有的内核,而是使用可加载内核模块的方式加载到设备内核中。LKM 模式的优点是:
不会替换掉设备原有的内核;如果你对设备原有的内核有特殊需求,或者你希望在使用第三方内核的同时使用 KernelSU,可以使用 LKM 模式;
升级和 OTA 较为方便;升级 KernelSU 时,可以直接在管理器里面安装,无需再手动刷写;系统 OTA 后,可以直接安装到第二个槽位,也无需再手动刷写;
适用于一些特殊场景;比如使用临时 ROOT 权限也可以加载 LKM,由于不需要替换 boot 分区,因此不会触发 avb,不会使设备意外变砖;
LKM 可以被临时卸载;如果你临时想取消 root,可以卸载 LKM,这个过程不需要刷写分区,甚至也不用重启设备;如果你想再次 root,只需要重启设备即可;
怎么选?官方推荐的是手机优先考虑 LKM 模式;模拟器、WSA等优先考虑 GKI 模式。所以我选择了 LKM 模式。
使用 LKM 模式安装#
我的手机支持 fastboot boot
,所以可以使用最简单的方法,即官方推荐的:
使用
fastboot boot
临时启动 KernelSU 提供的 GKI 内核,然后安装管理器,最后在管理器中直接安装。
因为是临时启动,所以不会替换掉原有的内核,十分安全,不太会变砖。
KernelSU 是 Android GKI 设备的 root 解决方案,这时候就体现出 GKI 的优势了。只要是相同 KMI (Kernel Module Interface) 版本的内核都可以刷入。
如何查看自己的 KMI 版本?在 设置
- 关于手机
- 版本信息
中可以看到 内核版本
。
就我的这部一加 10 Pro 来说,内核版本是 5.10.66-android12-9-gc634142fd3d8-ab8094802
,
那么 KMI 版本就是 5.10-android12-9
。具体可以参考官方文档中的
KMI 说明。
接着在 KernelSU GitHub Releases 中找到对应的 KMI 版本的 GKI 内核下载解压。
同一 KMI 版本的 GKI 内核有几个不同的后缀:
boot.img.gz
boot-gz.img.gz
boot-lz4.img.gz
根据不同手机内核不同的压缩格式选择对应的下载,一般是 boot.img.gz
,当然反正是 fastboot boot
临时启动的,所以也可以随便选一个试试先,大不了重启就完了。
手机进入 fastboot
模式之后再 fastboot boot boot.img
启动 GKI 内核,开机后就应该有临时的
GKI 模式的 KernelSU 了。打开 KernelSU 管理器,可以看到 工作中 <GKI>
点击安装选择
直接安装
,就可以安装 LKM 模式的 KernelSU 了。(如果选择 fastboot flash boot boot.img
应该就并非临时的 GKI 模式的 KernelSU 而是直接完成永久的 GKI 模式 KernelSU 的安装了吧)
问题是官方提供的 GKI 内核只有 android12-5.10.209
android12-5.10.218
android12-5.10.226
版本的,而我的手机是 android12-5.10.66
版本的。按理这个小版本是不要紧的,毕竟是同一 KMI 版本,然而我试了个遍,始终是显示 未安装
。
又是百思不得其解,折腾了一晚上,主要是刚刚接触很多东西都不太了解,一头雾水的情况下四处查各种单词缩写的含义,把文档里的各种安装方式看了一遍又一遍,终于最后还是在 zzh20188/GKI_KernelSU_SUSFS
找到了一个 android12-5.10.66-2022-01-boot.img
的 GKI 内核,成功安装了 SukiSU(其实我本来就是想装这个分支的,只不过它的文档直接让我看 KernelSU 的文档我就一直跟着 KernelSU 的走)终于看到
了 工作中 <LKM>
。
不过这个 GKI 内核好像有点问题,读取不了电池电量,显示的是 0%,也不知道是是不是下的 Pre-release 内核的缘故。反正我装的的 LKM 模式的 SukiSU,又不把它刷进去,装完重启手机就回到原本的内核了。
享受 root 权限#
所有应用默认是没有 root 权限的,想要使用 root 权限的应用就在 SukiSU 中授权就好了。
首先还是要把 LSPosed 给装上。
LSPosed 需要 Riru 或 Zygisk,所以我们要先给 SukiSU 提供 Zygisk API 支持。
安装 Zygisk Next#
Zygisk Next 是什么?
Standalone implementation of Zygisk, providing Zygisk API support for KernelSU and a replacement of Magisk's built-in Zygisk.
Zygisk Next 是一个独立的 Zygisk 实现,为 KernelSU 提供 Zygisk API 支持,并替代 Magisk 内置的 Zygisk。
在 Releases 找到最新的 zip 包下载,打开 SukiSU 在 模块
中选择下载的 zip 包,安装完成后重启手机。
安装 LSPosed#
然后就可以装 LSPosed 了。在 Releases 找到最新的名字中带 zygisk
的 zip 包下载并在 SukiSU
中安装即可。
重启后在通知栏会有提示 LSPosed 已加载
,点击进入 LSPosed 马上把这烦人的通知关了,
创建一个快捷方式在桌面。
安装 Xposed 模块#
首先是先装了个 LuckyTool 美化一下 ColorOS,有考虑过刷个 OxygenOS,但暂时还是先不折腾了,况且网上看了一圈用我这个手机的人 分享经验的很少,还是先别自己瞎折腾了😰。
可以在 Xposed Module Repository 中找一下好用的模块。安装后在 LSPosed 中启用即可。
另外,听说 Lucky Patcher 可以卸载系统应用,但我也不知道有哪些是可以卸载的,只能一个个先备份了以防万一,然后再卸载。重启后一看屏幕是全黑的,吓了一跳,但这是正确的,毕竟主题商店已经不复存在了。赶紧先随便找个壁纸换上先,换完后定睛一看,这些系统应用怎么都还在?只是全部都回复初始状态了,点进去又要我同意他们的条款。最后还是在 Scene 里面把它们都冰封了算了。
结束#
姑且先写到这吧,未来还有什么折腾的在编辑更新。