发布于 

一加手机刷机教程

⚠️ 风险提示

  • 刷机会清空全部数据,操作前务必完整备份(照片、通讯录、微信聊天记录、OTP 密钥、Authenticator 数据)
  • 解锁 Bootloader 通常会导致保修失效,部分机型会永久熔断保险丝(如三星 Knox 0x1、小米部分机型)
  • 操作不当可能变砖,本文末尾提供救砖方案,但不保证一定能救回
  • 请确认电量 ≥ 60%,使用原装数据线,台式机请插机箱后置 USB 口
  • 本文仅用于技术学习和自有设备的固件研究,请遵守当地法律法规

适用机型

本文覆盖一加 6 至一加 13 的全系主流机型(含 Ace / 一加数字系列的国内版与海外版)。核心流程(解锁 BL → fastboot 刷入 → Root)在骁龙平台上通用,天玑平台的 Ace 系列在 EDL 深刷与 payload 提取环节存在差异,文中已单独标注。

机型代号对照表

刷机圈交流、找 ROM、找 payload 全部使用 codename(代号),而不是"一加 11"这种市场名。下表为主流机型代号与常见型号(Model Number)对照:

市场名 codename 常见型号 平台 分区方案
OnePlus 5 cheeseburger A5000 骁龙 835 A-only
OnePlus 5T dumpling A5010 骁龙 835 A-only
OnePlus 6 enchilada A6000 / A6003 骁龙 845 A/B
OnePlus 6T fajita A6010 / A6013 骁龙 845 A/B
OnePlus 7 Pro guacamole / guacamoleb GM1910 / GM1920 骁龙 855 A/B
OnePlus 7T hotdogb HD1900 骁龙 855+ A/B
OnePlus 7T Pro hotdog HD1910 骁龙 855+ A/B
OnePlus 8 instantnoodle IN2010 / IN2013 骁龙 865 A/B
OnePlus 8 Pro instantnoodlep IN2020 骁龙 865 A/B
OnePlus 8T kebab KB2000 / KB2001 骁龙 865 A/B
OnePlus 9 lemonade LE2110 / LE2113 骁龙 888 A/B(虚拟)
OnePlus 9 Pro lemonadep LE2120 / LE2123 骁龙 888 A/B(虚拟)
OnePlus 9R lemonades LE2101 骁龙 870 A/B(虚拟)
OnePlus 10 Pro neoli NE2210 / NE2213 骁龙 8 Gen1 A/B(虚拟)
OnePlus 10T ovaltine CPH2399 / CPH2413 骁龙 8+ Gen1 A/B(虚拟)
OnePlus 11 salami PHB110 / CPH2447 / OP594DL1 骁龙 8 Gen2 A/B(虚拟)
OnePlus 12 waffle CPH2573 / CPH2581 / PJD110 骁龙 8 Gen3 A/B(虚拟)
OnePlus 13 dodge CPH2649 / CPH2653 / PJD110 骁龙 8 Elite A/B(虚拟)

Ace 系列(国内为主)代号相对混乱,且不同批次、不同运营商定制机可能存在差异:

市场名 codename(常见说法) 平台 备注
一加 Ace 常见为 OP556F 系 天玑 8100-Max 请以 XDA / 官方页面为准
一加 Ace Pro 常见为 OPD2203 系 骁龙 8+ Gen1 与 10T 平台同源
一加 Ace 2 常见为 PHP110 系 骁龙 8+ Gen1 海外版对应 11R
一加 Ace 2 Pro 常见为 PJE110 系 骁龙 8 Gen2 请以官方页面为准
一加 Ace 3 常见为 PJF110 系 骁龙 8 Gen2 海外版对应 12R
一加 Ace 5 / 5 Pro 请以官方页面为准 骁龙 8 Gen3 / Elite 较新机型资料少

📌 不确定就查,不要猜。 刷错 codename 的固件是变砖第一大原因。确认代号最可靠的方式是在 fastboot 下读取:

fastboot getvar product
fastboot getvar variant

或者在系统里看:

adb shell getprop ro.product.device
adb shell getprop ro.product.name
adb shell getprop ro.build.display.id

系统演变:氢 OS → 氧 OS → ColorOS

理解一加的系统演变,才知道该下载哪个包、能不能跨区刷:

阶段 时间 系统 说明
氢 OS / 氧 OS 并行 1 ~ 7 代 H₂OS(国内)/ OxygenOS(海外) 两套同源代码,包名不同,不能互刷(早期需转换包)
氧 OS 统一 8 ~ 9 代 OxygenOS 11+ 国内版并入 OxygenOS,底层开始对齐 ColorOS
合并 ColorOS 10 ~ 11 代 OxygenOS 12/13 ≈ ColorOS 12/13 底层已高度共用,国内版系统包名变为 ColorOS 系
ColorOS 深度整合 12 代至今 ColorOS 14/15 + OxygenOS 品牌 国内/海外固件仍分开发布,请勿直接互刷

刷机实际影响:

  • 国内版(PHB110 等)与海外版(CPHxxxx)固件不通用,跨区刷大概率卡 LOGO 或基带丢失
  • 一加 9 之后,国内版刷国际版需要同时刷入对应 region 的 persist / 基带,操作复杂,不建议新手尝试
  • 一加 8 及之后所有机型都是 A/B 分区,刷分区时必须注意当前槽位

准备工作

工具清单

工具 用途 获取方式
Android SDK Platform Tools adb / fastboot 命令行 官方 developer.android.com/tools/releases/platform-tools
一加 USB 驱动 Windows 识别 fastboot / EDL 设备 一加官网支持页 / Windows 自动更新
OnePlus USB Drivers(通用 ADB 驱动) 解决"设备管理器感叹号" Google USB Driver 也可应急
payload-dumper-go 从 payload.bin 提取分区镜像 GitHub: ssut/payload-dumper-go
Fastboot Enhance Windows 图形化刷 payload / 分区管理 GitHub 开源项目
Magisk Root 方案(修补 boot / init_boot) GitHub: topjohnwu/Magisk
KernelSU 内核级 Root 方案 GitHub: tiann/KernelSU
MSM Download Tool 一加官方救砖工具(9008 深刷) 各机型社区分发版本
QFIL / QPST 高通 9008 烧录工具 需授权账号,见后文

环境检查

Windows(PowerShell):

# 解压 platform-tools 后进入目录
cd D:\platform-tools

# 验证 adb 可用
.\adb.exe version
# 预期输出:Android Debug Bridge version 1.0.41 及之后版本

# 验证 fastboot 可用
.\fastboot.exe --version
# 预期输出:fastboot version 34.0.0-xxxxxxx 或更高

# 查看已连接设备(此时手机开启 USB 调试并授权)
.\adb.exe devices
# 预期输出:
# List of devices attached
# 8be64f1a        device

📌 如果显示 unauthorized,说明手机上没点"允许 USB 调试"。撤销授权后重插:设置 → 开发者选项 → 撤销 USB 调试授权。

Linux / macOS(bash):

# udev 规则(Linux 无 root 权限识别不到设备时)
sudo tee /etc/udev/rules.d/51-android.rules <<'EOF'
SUBSYSTEM=="usb", ATTR{idVendor}=="2a70", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="05c6", MODE="0666", GROUP="plugdev"
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", MODE="0666", GROUP="plugdev"
EOF
sudo udevadm control --reload-rules
sudo udevadm trigger

# 验证
adb devices
fastboot devices

一加设备的 USB VID 主要是 2a70(一加自有)和高通 05c6(EDL 模式)。

固件下载

来源 说明
一加官方支持页 最安全,提供完整全量包(国内 / 海外分开)
一加社区「系统更新」板块 国内版全量包 + 增量包
OxygenOS 官方 ROM 下载页 海外版全量包
XDA Forums 对应机型版块 第三方 ROM、救砖包、payload

下载后务必核对 MD5 / SHA256,一加官方页面会同时给出校验值:

# Linux / macOS
sha256sum OnePlus11_OxygenOS_xxx.zip
# Windows PowerShell
Get-FileHash .\OnePlus11_OxygenOS_xxx.zip -Algorithm SHA256

数据备份清单

# 1. 完整物理备份(需要已 Root,或依赖厂商工具)
adb backup -apk -shared -all -f backup.ab

# 2. 手动备份关键目录
adb pull /sdcard/DCIM ./backup_dcim
adb pull /sdcard/Download ./backup_download
adb pull /sdcard/Pictures ./backup_pictures

# 3. 微信聊天记录:微信内 设置 → 聊天 → 聊天记录迁移与备份
# 4. 短信/通话记录/联系人:建议直接用厂商云服务同步
# 5. OTP / Authenticator:Google Authenticator 需手动导出,微软 Authenticator 走云备份

⚠️ 警告:解锁 Bootloader 会强制清除 /data 分区,adb backup 之外的一切本地数据都会消失。OTP 密钥一旦丢失且没有恢复码,很多账号将永久无法找回。

一、开启开发者选项与 OEM 解锁

  1. 设置 → 关于手机,连续点击 版本号 7 次,输入锁屏密码后提示"您已处于开发者模式"
  2. 进入 设置 → 系统 → 开发者选项
  3. 打开 USB 调试
  4. 打开 OEM 解锁(部分国行机型显示为"设备解锁"或"高级解锁")
  5. 部分机型需要登录一加账号并联网"申请解锁资格"

验证开关是否生效:

adb shell getprop ro.oem_unlock_supported
# 返回 1 表示支持解锁

adb reboot bootloader
fastboot oem device-info
# 关注 Device unlocked: false(未解锁)

二、解锁 Bootloader

方式一:fastboot 命令行(推荐)

# 进入 fastboot(bootloader)模式
adb reboot bootloader

# 或按键进入:关机后按住 音量上 + 电源键

# 确认设备被识别
fastboot devices
# 预期输出:8be64f1a    fastboot

# 一加老机型(6/7 系列)用 oem unlock
fastboot oem unlock

# 一加 8 及之后机型用通用命令
fastboot flashing unlock

手机屏幕会出现解锁确认界面,用音量键选择 UNLOCK THE BOOTLOADER,按电源键确认。

# 解锁完成后重启
fastboot reboot

⚠️ 警告:确认解锁会立即执行恢复出厂设置。手机上会提示 "Erase all data",此时后悔还来得及——但一旦确认,数据不可恢复。

方式二:解锁码(部分老机型)

一加 3/3T/5 等老机型曾需要官方申请解锁码,现已基本停用。当前主流机型统一走 fastboot flashing unlock。

验证解锁状态

fastboot oem device-info
# 期望看到:
# Device unlocked: true
# Device critical unlocked: true

# 或者
fastboot getvar unlocked
# unlocked: yes

系统重启后,开发者选项里的 OEM 解锁会变灰并提示"设备已解锁",这也是解锁成功的标志。

三、A/B 分区机制(必读)

一加 8 之后(含 8)全部采用 A/B 无缝更新(Seamless Update),一加 9 之后进一步升级为 虚拟 A/B(Virtual A/B)。

A/B 分区原理

概念 说明
slot(槽位) 系统有两套分区:_a 和 _b,如 boot_a / boot_b
current slot 当前正在运行的槽位
无缝更新 OTA 在后台写入非当前槽位,重启后切换,用户无感知
虚拟 A/B 用动态分区 + 快照技术模拟双槽,节省约 1.5GB 空间

槽位操作命令

# 查看当前槽位
fastboot getvar current-slot
# 预期输出:current-slot: a

# 手动切换槽位(刷入后要切到刚刷的槽)
fastboot set_active b
fastboot --set-active=b

# 设置下次启动的槽位(部分机型支持)
fastboot getvar all 2>&1 | grep -i slot

⚠️ 警告:刷分区时必须刷到当前槽位,否则刷完还是启动旧系统。最稳妥的做法是:

fastboot getvar current-slot   # 假设返回 a
fastboot flash boot_a boot.img
fastboot flash init_boot_a init_boot.img

或者不带后缀直接 fastboot flash boot boot.img,fastboot 会自动附加当前槽位后缀。

查看所有分区

fastboot getvar all 2>&1 | grep -E "partition-size|has-slot"

典型 A/B 分区列表(一加 11):

分区 作用 是否 A/B
boot / init_boot 内核 + ramdisk,Root 修补目标 是
vendor_boot 厂商内核模块 + dtb 是
dtbo 设备树覆盖层 是
vbmeta / vbmeta_system AVB 校验元数据 是
super 动态分区容器,内含 system/vendor/product/odm 是(逻辑分区,无后缀)
recovery 恢复模式(一加 8+ 多为 boot 内置) 是
persist 传感器校准、DRM 密钥、WiFi/蓝牙 MAC 否(共享)
modem / bluetooth 基带与蓝牙固件 是
userdata / metadata 用户数据与加密元数据 是(但会被清空)

四、payload.bin:现代一加固件的本质

一加 8 之后的官方全量包,解压后核心文件是 payload.bin,而不是一堆 *.img。这是 Android 10+ 的 OTA 更新包格式。

全量包典型结构

OnePlus11_OxygenOS_14.0.0.xxx.zip
├── payload.bin              # 所有分区镜像的容器(2~5GB)
├── payload_properties.txt   # 升级参数
├── META-INF/                # Recovery 升级脚本
├── care_map.pb              # 分区校验映射
└── apex_info.pb             # APEX 模块信息

用 payload-dumper-go 提取分区镜像

# 下载对应平台的 payload-dumper-go,以 Linux x64 为例
# 方式一:直接从 zip 提取(推荐,最快)
./payload-dumper-go -o ./out payload.bin

# 方式二:指定要提取的分区(省时省空间)
./payload-dumper-go -p init_boot,boot,vendor_boot,vbmeta -o ./out payload.bin

# 方式三:直接从 zip 提取,不用先解压
./payload-dumper-go -o ./out OnePlus11_OxygenOS_xxx.zip

预期输出:

[INFO] Extracting init_boot.img
[INFO] Extracting boot.img
[INFO] Extracting vendor_boot.img
[INFO] Extracting vbmeta.img
...
Done! Check ./out directory

提取成功后:

ls -lh ./out/
# boot.img  init_boot.img  vendor_boot.img  vbmeta.img  system.img ...

📌 Windows 下同样可用,直接运行 payload-dumper-go.exe。如果杀软报毒,一般是 Go 编译产物被误报,可加白名单。

用 Fastboot Enhance 图形化操作

不想敲命令可以用 Fastboot Enhance(Windows):

  1. 手机进入 fastboot 模式并连接电脑
  2. 打开 Fastboot Enhance,点击 Payload 标签页
  3. 载入官方全量包 zip
  4. 勾选需要刷入的分区,点击 Flash
  5. 工具会自动提取并刷入,无需手动处理 payload

五、刷入方式对比

方式 操作 是否清数据 适用场景 难度
本地升级 设置 → 系统更新 → 本地升级,选 zip 否 官方同版本/跨版本升级 ⭐
增量包(OTA) 系统推送或本地选增量 zip 否 小版本升级,需当前版本完全匹配 ⭐
adb sideload 进入 Recovery 后 adb sideload ota.zip 否 官方包无法本地识别时 ⭐⭐
fastboot update fastboot update full_ota.zip 否 完整 OTA 包,官方推荐 ⭐⭐
逐分区 fastboot flash 提取 payload 后手动刷 可选 Root、降级、救砖 ⭐⭐⭐
flash_all 类脚本 执行官方 fastboot 线刷包脚本 是 救砖、彻底重置 ⭐⭐⭐
EDL 9008 深刷 QFIL / MSM Download Tool 是 真砖救砖 ⭐⭐⭐⭐⭐

方式一:本地升级(最安全)

  1. 把官方全量 zip 放到手机存储根目录(不要解压)
  2. 设置 → 系统 → 系统更新 → 右上角设置 → 本地升级
  3. 选中 zip,等待校验后自动重启升级
  4. 升级过程中不要断电、不要按键

方式二:adb sideload

# 进入 Recovery
adb reboot recovery

# Recovery 界面选择 Apply update from ADB(不同版本文案略有差异)
# 然后电脑执行:
adb devices
# 预期:8be64f1a    sideload

adb sideload OnePlus11_OxygenOS_xxx.zip
# 预期输出:
# Total xfer: 2.00x

方式三:fastboot update(官方全量包)

adb reboot bootloader
fastboot devices
fastboot update OnePlus11_OxygenOS_xxx.zip

📌 fastboot update 不会清除用户数据,适合"降级回官方版本但保留数据"的场景。但跨大版本降级(如 ColorOS 15 → 13)仍建议清空数据,否则容易出现系统应用 FC。

方式四:逐分区刷入(Root 必走路径)

这是最灵活也是 Root 的标准前置步骤:

# 1. 提取分区镜像
./payload-dumper-go -o ./out OnePlus11_OxygenOS_xxx.zip

# 2. 进入 fastboot
adb reboot bootloader
fastboot devices

# 3. 确认槽位
fastboot getvar current-slot
# current-slot: a

# 4. 刷入关键分区(不带后缀,fastboot 自动附加当前槽)
fastboot flash boot out/boot.img
fastboot flash init_boot out/init_boot.img
fastboot flash vendor_boot out/vendor_boot.img
fastboot flash dtbo out/dtbo.img
fastboot flash vbmeta out/vbmeta.img
fastboot flash vbmeta_system out/vbmeta_system.img

# 5. 刷入动态分区(super 里的逻辑分区,需要进入 fastbootd)
fastboot reboot fastboot
# 等待进入 fastbootd(屏幕显示 "FASTBOOTD" 或 "Entering fastboot")

fastboot flash super out/super.img
# 或者直接刷逻辑分区:
fastboot flash system out/system.img
fastboot flash vendor out/vendor.img
fastboot flash product out/product.img
fastboot flash odm out/odm.img

# 6. 清除逻辑分区元数据(刷 super 后常需要)
fastboot wipe-super super_empty.img

# 7. 重启
fastboot reboot

⚠️ 警告:刷 vbmeta.img 时如果官方包启用了 AVB 校验,而你要刷入被修改过的 boot(比如 Root 后的),必须禁用校验,否则会卡在开机 LOGO 或直接进 fastboot:

fastboot --disable-verity --disable-verification flash vbmeta out/vbmeta.img

刷完若仍无法启动,可刷入空 vbmeta(部分机型需要):

fastboot --disable-verity --disable-verification flash vbmeta --slot-all vbmeta_empty.img

六、Root:Magisk 与 KernelSU

6.1 判断该修补 boot 还是 init_boot

机型 / Android 版本 修补目标 说明
Android 12 及更早 boot.img ramdisk 在 boot 里
Android 13+(一加 9 之后升级到 13 也算) init_boot.img ramdisk 被拆分到独立分区
部分 ColorOS 14 机型 init_boot.img 同 Android 13+

不确定就两个都试,或者看官方包里有没有 init_boot.img:

# 提取后检查
ls -lh out/ | grep -E "boot"
# 有 init_boot.img → 修它;只有 boot.img → 修 boot

6.2 Magisk 修补 init_boot(手机端修补法)

  1. 手机安装 Magisk APK(最新版)
  2. 提取官方包中的 init_boot.img,传到手机:adb push init_boot.img /sdcard/Download/
  3. 打开 Magisk → 安装 → 选择并修补一个文件 → 选中 init_boot.img
  4. 输出文件在 /sdcard/Download/magisk_patched-xxxxx_init_boot.img
  5. 拉回电脑:adb pull /sdcard/Download/magisk_patched-xxxxx_init_boot.img
  6. 刷入:
adb reboot bootloader
fastboot flash init_boot magisk_patched-xxxxx_init_boot.img
# 预期输出:
# Sending 'init_boot' (8192 KB)              OKAY [  0.230s]
# Writing 'init_boot'                        OKAY [  0.110s]
# Finished. Total time: 0.412s

fastboot reboot

6.3 用 magiskboot 命令行修补(电脑端)

# 提取 magiskboot(在 Magisk APK 里,改后缀为 zip 解压)
unzip -o Magisk-v27.0.apk -d magisk_apk
ls magisk_apk/lib/x86_64/libmagiskboot.so
cp magisk_apk/lib/x86_64/libmagiskboot.so ./magiskboot
chmod +x magiskboot

# 解压 init_boot
./magiskboot unpack init_boot.img
# 输出:
# HEADER_VER      "4"
# RAMDISK         "ramdisk.cpio"
# ...

# 修补 ramdisk
./magiskboot cpio ramdisk.cpio "add 0750 init magiskinit" "mkdir 0750 overlay.d" "patch"
# 输出:Patch @ 000...

# 重新打包
./magiskboot repack init_boot.img init_boot_patched.img

📌 日常使用推荐 Magisk App 修补法(6.2),命令行法主要用于自动化脚本和定制研究。

6.4 KernelSU(内核级 Root)

KernelSU 工作在内核层,相比 Magisk 更难被检测:

对比项 Magisk KernelSU
实现层级 用户态(修补 ramdisk + zygisk) 内核态(钩子在内核)
前置条件 修补 boot/init_boot 需要刷入支持 KernelSU 的内核(或用 GKI 内核手动集成)
检测难度 较高(需配合 Shamiko/隐藏) 较低(无用户态痕迹)
模块生态 丰富 相对少

KernelSU 有两种接入方式:

# 方式一:GKI 模式(官方通用内核镜像,一加 8+ 多数支持)
# 下载对应内核版本的 KernelSU boot 镜像后直接刷
fastboot flash boot kernelsu-boot-5.10.xxx.img

# 方式二:自行编译内核集成(需要内核源码 + 编译环境)
git clone https://github.com/tiann/KernelSU
# 按官方文档把 kernelsu 加入内核源码树,重新编译 boot

📌 KernelSU 需要内核版本与 GKI 版本严格对应(uname -r 查看,如 5.10.198-android13),刷错版本直接变砖。

6.5 Root 后的隐藏与检测

# 检查 Root 是否生效
adb shell su -c "id"
# 预期输出:uid=0(root) gid=0(root) groups=0(root) context=u:r:su:s0

# Magisk 内置检查
# Magisk App → 首页 "Zygisk: 是" 表示 Zygisk 已启用

配合 Zygisk + Shamiko / Play Integrity Fix 模块可改善银行 App 与钱包的检测结果,但这是持续对抗过程,没有一劳永逸的方案。

七、9008 深刷模式(EDL)

EDL(Emergency Download Mode) 是高通芯片内置的紧急下载模式,设备在该模式下暴露为 Qualcomm HS-USB QDLoader 9008。它是比 fastboot 更底层的救砖通道——即使 bootloader 损坏、分区表损坏,只要主板没坏,理论上都能救。

进入 EDL 的方式

方式 操作 适用情况
按键组合 关机后同时按住 音量上 + 音量下,然后插入 USB 线 大部分骁龙机型,最常用
按键组合(带电源) 关机后按 音量上 + 音量下 + 电源键 8 秒 部分机型
adb 命令 adb reboot edl 系统能启动或能进 fastboot 时
fastboot 命令 fastboot reboot-edl / fastboot oem edl fastboot 可用时
主板短接 拆机,短接主板上的两个测试点(TP)再插线 完全无响应、按键失效
深刷线 特制 USB 线,内部短接 D+/D- 或强制进入 9008 需要专门制作
# 软件方式进入
adb reboot edl

# 或者
adb reboot bootloader
fastboot reboot-edl

进入成功后,Windows 设备管理器会出现:

端口 (COM 和 LPT)
└── Qualcomm HS-USB QDLoader 9008 (COM3)

Linux 下:

lsusb | grep -i qualcomm
# Bus 001 Device 012: ID 05c6:9008 Qualcomm, Inc. Gobi Wireless Modem (QDL mode)

EDL 烧录工具

工具 来源 说明
QFIL QPST 工具包组件 高通官方,需要 firehose_xxxx.mbn 编程器文件
QPST Configuration 高通官方 端口管理、设备检测
MSM Download Tool 一加官方 / 社区分发 一加专用,封装了 firehose,傻瓜式
Fastboot Enhance 开源 识别 9008 端口后可辅助操作
MiFlash / XiaoMiFlash 小米系(部分通用) 需要修改配置才能刷非小米设备

MSM Download Tool 使用步骤(以一加 9 系列为例):

  1. 手机进入 EDL 模式并连接电脑,确认 COM 口出现
  2. 以管理员身份运行对应机型的 MSMDownloadTool V*.exe
  3. 工具会自动检测到 COM 口(Connected to COM3)
  4. 点击 Start,等待进度条走完
  5. 工具提示 Download Complete 后手机自动重启
  6. 首次开机会非常慢(可能 5~10 分钟),属正常

⚠️ 警告

  • 一加 8 之后的机型,官方 firehose 文件基本不公开,网上流传的旧版工具对一加 11/12/13 通常无效
  • 新版 MSM Download Tool 需要授权账号登录(售后体系内部工具),个人用户很难获取
  • 淘宝/闲鱼上的"远程深刷"服务本质是走授权账号,有泄露隐私风险,请谨慎评估
  • 短接主板需要拆机,会破坏防水胶且极易损坏排线,作为最后手段

9008 模式排障

现象 原因 处理
设备管理器显示 QHSUSB_BULK 而非 COM 口 驱动未装 安装 Qualcomm QDLoader HS-USB Driver
COM 口出现但很快消失 供电不足 / 数据线问题 换原装线、插后置 USB 口、换电脑
QFIL 提示 Sahara Fail firehose 不匹配 换对应机型的 firehose 文件
Download 卡在 0% 存储芯片损坏 硬件故障,需换主板
提示 Firehose Authentication Failed 新版芯片要求签名 firehose 无解(个人),走售后

八、常见问题

8.1 Widevine L1 降级

解锁 BL 后,部分机型的 Widevine DRM 等级会从 L1 降到 L3,表现为 Netflix、Disney+、腾讯视频等平台无法播放高清(只能 480p)。

# 查看当前 Widevine 等级
adb shell getprop | grep -i widevine
# 或用 DRM Info 类 App 查看 Security Level
等级 说明
L1 硬件级安全路径(TEE),支持 1080p/4K 流媒体
L3 纯软件解密,最高 480p

📌 一加多数机型解锁后仍保持 L1(DRM 密钥在 persist 中且未触发熔断),但部分批次/系统会降级。降级后无法恢复,除非重新上锁 BL(且部分机型上锁后仍不恢复)。

8.2 银行 App / 支付 App 检测

解锁 BL + Root 后常见的检测点:

检测项 表现 应对思路(简述)
SafetyNet (已废弃) 老 App 仍在用 已停止服务,无需处理
Play Integrity 钱包、银行、游戏 Play Integrity Fix 模块 + 指纹伪装
文件系统痕迹 检测 magisk、.magisk 等路径 Magisk 随机包名 + 隐藏
Zygisk 检测 检测内存注入 Zygisk Next + Shamiko
内核特征 检测 KernelSU 符号 KernelSU 的 "su 兼容模式" 关闭
解锁状态 检测 ro.boot.verifiedbootstate 需内核级隐藏

⚠️ 注意:这些手段属于持续对抗,随时可能失效。更重要的是:在自有设备上做安全研究时,不要在生产环境(主用手机)上折腾,建议用备用机。

8.3 刷机后无限重启(Bootloop)

# 排查顺序
# 1. 看能不能进 fastboot
fastboot devices

# 2. 槽位是否正确(A/B 机器刷错槽是最常见原因)
fastboot getvar current-slot
fastboot set_active other    # 切到另一个槽试试

# 3. 清 data(80% 的 bootloop 是残留数据冲突)
fastboot erase userdata
fastboot erase metadata

# 4. 重新刷完整官方包
./payload-dumper-go -o ./out official.zip
fastboot reboot fastboot
fastboot flash super out/super.img
fastboot reboot

8.4 fastboot 识别不到设备

平台 排查
Windows 设备管理器 → 看是否有 "Android" 或感叹号设备 → 手动指定 Google USB Driver
Windows 尝试换 USB 2.0 口(部分 USB 3.x 兼容性差)
Linux 检查 udev 规则(见准备工作),sudo fastboot devices
通用 换线、换口、重装 platform-tools
# Windows 查看 USB 设备
Get-PnpDevice -PresentOnly | Where-Object { $_.InstanceId -match "USB" } | Select-Object FriendlyName, InstanceId

8.5 刷回官方并重新上锁

# 1. 刷入完整官方固件(逐分区或 fastboot update)
fastboot update official_full_ota.zip

# 2. 确认系统能正常启动、无任何修改

# 3. 重新上锁
fastboot flashing lock

# 部分老机型
fastboot oem lock

⚠️ 警告:上锁前必须确认系统 100% 原厂。上锁后如果系统被修改过,AVB 校验失败会导致无法开机且无法解锁(一加部分机型上锁后 OEM unlocking 开关会被锁死),直接变板砖。

九、救砖速查表

症状 可进入的模式 救砖方案 成功率
卡 LOGO / bootloop fastboot 清 userdata + 重刷 super 高
无限重启 fastboot 切槽位 + 重刷官方包 高
进不了系统但能进 fastboot fastboot 逐分区刷入官方镜像 高
只能进 Recovery recovery adb sideload 官方全量包 高
黑屏但电脑有反应 EDL 9008 MSM Download Tool / QFIL 中(需 firehose)
完全黑屏无反应 需短接 主板短接触点进 EDL 中低
充电无任何反应 无 硬件故障,查电池排线 / 电源 IC 低

十、操作检查清单

  • [ ] 完整备份数据(含 OTP 密钥、Authenticator)
  • [ ] 电量 ≥ 60%
  • [ ] 原装数据线,台式机后置 USB 口
  • [ ] 确认机型 codename 与固件包匹配(fastboot getvar product)
  • [ ] 校验固件包 SHA256
  • [ ] adb / fastboot 能正常识别设备
  • [ ] 了解当前槽位(fastboot getvar current-slot)
  • [ ] 准备好同版本的官方救砖包(本地保存)
  • [ ] 知晓 EDL 进入方式(作为最后手段)

参考资源

类型 说明
XDA Forums 各机型版块,ROM / 救砖包 / 讨论
GitHub: topjohnwu/Magisk Magisk 官方仓库与文档
GitHub: tiann/KernelSU KernelSU 官方文档
GitHub: ssut/payload-dumper-go payload 提取工具
一加官方支持页 官方全量包与驱动
Android 官方 Platform Tools adb / fastboot

📌 不同批次、不同区域的机型在分区布局与工具可用性上可能存在差异,操作前请以对应机型的 XDA 原帖与官方页面为准。