Skip to content

Instantly share code, notes, and snippets.

@BruceZhang1993
Created September 15, 2025 15:05
Show Gist options
  • Save BruceZhang1993/774dc3149028069ddbddadd38c118594 to your computer and use it in GitHub Desktop.
Save BruceZhang1993/774dc3149028069ddbddadd38c118594 to your computer and use it in GitHub Desktop.
记录关于一加设备在 Linux 执行 9008 线刷救砖的一些小经验

你需要准备什么

  • 安装 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment