博主近日把自己的一加 7 Pro 升级到了 Android Q beta,发现暂时无法刷入 twrp-recovery,也就意味着 root 有一点点的麻烦,今天博主发布个人测试可行的 root 方案。博主是在 Mac 下操作,Windows 以及 Linux 同理。
环境搭建
Xcode
- Mac App Store 安装 Xcode。
- 终端下输入如下命令并按提示安装。ada
1
xcode-select --install
HomeBrew
终端下执行如下命令即可。awk1
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
adb
终端下执行如下命令即可jboss-cli1
2
3
4
5cd ~/Download
wget https://dl.google.com/android/repository/platform-tools-latest-darwin.zip
unzip platform-tools-latest-darwin.zip
echo 'export PATH=/Users/wbx/Downloads/platform-tools:$PATH' >> ~/.zshrc
source ~/.zshrc
Python3 以及 pip3
终端执行如下命令安装 Python3
1 | brew install python3 |
终端输入如下命令安装 pip3
1 | curl https://bootstrap.pypa.io/get-pip.py | python3 |
protobuf 模块
终端执行如下命令安装 protobuf 模块
1 | brew install protobuf |
至此,环境搭建已经全部完成。
检测环境搭建正确性
终端输入以下命令,结果如图则正确
1 | python3 -V |
root 权限获取教程
下载并解压手机当前使用的系统镜像,比如博主的是 Android Q Developer Preview 4 for OnePlus 7 Pro。链接如下。
https://oxygenos.oneplus.net/OnePlus7ProOxygen_13.X.04_OTA_004_all_1908020003_726196c3b79b4f85.zip将解包工具中的两个.py 文件放到我们解压的镜像目录。
执行如下命令解包,当看到 boot.img 解包完成后按 Ctrl+C 终止命令。
apache1
2cd /Users/wbx/Downloads/OnePlus7ProOxygen_13.X.04_OTA_004_all_1908020003_726196c3b79b4f85
python3 payload_dumper.py payload.bin
数据线连接手机,手机开启 USB 调试模式,将解包生成的 boot.img 文件拷贝到手机根目录 (由于 macOS 下无法直接将文件拷贝到 Android,所以采用 adb 命令方案)
armasm1
adb push boot.img /sdcard
手机端安装 Magisk Manager App,可以在酷安下载。
按照图示,给 boot.img 打补丁
将打好补丁的 magisk_patched.img 传回电脑桌面
awk1
adb pull /sdcard/Download/magisk_patched.img ~/Desktop
将桌面上的 magisk_patched.img 文件刷入到手机的 boot 分区,Root 完成。
arcade1
2adb reboot-bootloader
fastboot flash boot ~/Desktop/magisk_patched.img
至此您已经 Root 成功
OTA 更新后如何保留 Root 权限
OTA 更新安装完成后,不要重启。按照图示操作后再重启即可保留 Root 权限