-
安装 QDL 工具
项目地址Arch Linux 用户可以使用 Arch Linux CN 仓库预编译的 qdl 包,或者使用 AUR 的 qdl-git 包
-
准备 oppo_decrypt 工具放在能找到的地方 项目地址
-
准备你对应机型的线刷包
解压后可以看到后缀为 .ops 的文件,例如一加6 enchilada_22_H.07_180513.ops
假设你的刷机包文件名为 enchilada_22_H.07_180513.ops
python3 ./oppo_decrypt/opscrypto.py decrypt enchilada_22_H.07_180513.ops
解密后的文件夹将生成在刷机包同级的 extract 目录
查看当前目录,找到 settings.xml 文件打开,里面保存的是全量配置,但是无法被 QDL 工具直接使用
找到 settings.xml 文件内所有的 Program* 和 Patch* 代码块
例如
<Program0>
<program ..../>
...
</Program0>
<Patch0>
<patch ..../>
...
</Patch0>
将每个代码块的内容复制出来,只复制里面的不包含最外层,分别粘贴到文件 rawprogram*.xml 及 patch*.xml 例如 rawprogram0.xml 注意 rawprogram 父级 tag 固定为 data
<?xml version="1.0" encoding="utf-8" ?>
<data>
<program ..../>
...
</data>
patch0.xml 注意 patch 父级 tag 固定为 patches
<?xml version="1.0" encoding="utf-8" ?>
<patches>
<patch ..../>
...
</patches>
这一步操作完你的刷机包解压后目录下就有了多个 rawprogram*.xml 和 patch*.xml 格式的文件了,文件的序号应当和当前目录下 gpt_main*.bin 一一对应
首先将你的手机关机,然后同时按住音量上和音量下不松开,不要按电源键直接连接电脑
接下来执行下面的命令执行线刷,必须用 bash 执行,fish/zsh 执行会无法识别命令
# 可以先模拟执行看下文件是否正常
qdl --dry-run -d -s ufs prog_firehose_ddr.elf rawprogram*.xml patch*.xml
# 正式执行刷入
qdl -d -s ufs prog_firehose_ddr.elf rawprogram*.xml patch*.xml