跳到主要内容

一次 OnePlus 7 Pro 救砖实录:fastboot 受限后,改用 9008/EDL 线刷氢OS

X2Post 的头像
X2 会员
X2Post会员回声
1 0

刷机全程由 Claude Code Desktop + Deepseek + 人工物理操作 完成

  • 手机型号:一加 7 Pro(GM1910,代号 guacamole,骁龙 855)
  • 故障:系统完全无法启动,能进 fastboot,但刷入的镜像被 bootloader 拒绝
  • 结果:完整线刷氢OS 11.0.6.1 后恢复正常
  • 环境:macOS + adb/fastboot + edlclient

这篇文章记录一次真实的救砖过程。它没有详细的命令清单——那些操作由Claude Code Desktop + Deepseek完成。 这篇文章重点讲清楚:为什么刷机会失败,以及 fastboot 走不通时,9008/EDL 是怎么把手机救回来的。

一、故障现象

手机是一加 7 Pro(国行 GM1910),此前刷过机、root 过,之后无法正常启动:

  • 按电源键进不了系统
  • 能进入 FastBoot 菜单,bootloader 处于解锁状态
  • 屏幕显示 OnePlus 的报错:The current Image(boot/recovery) have been destroyed and can not boot

也就是说,bootloader 还活着,但 boot 镜像没有被接受。这类状态通常还有救,关键是找到“正确”的镜像。

二、官方固件也被拒绝

按照 OnePlus 7 Pro 的官方固件,依次尝试了 OxygenOS 11.0.9.1 和 OxygenOS 12.1 H.41。刷写过程正常,但 bootloader 在启动时拒绝加载,报 Load Error。

这说明问题不只是镜像损坏,而是固件版本与设备当前 bootloader 的兼容性——这台机器之前刷过较新的系统,会拒绝更旧的 boot 镜像。

继续刷入国行 H.40(ColorOS 12.1)的 boot 后,系统终于能进到设置界面,但提示:

系统出现故障,选择语言后请尝试在线更新(保留数据)进行系统修复

想彻底修复,需要把 bootloader 固件(abl、xbl、tz 等)也更新到同一版本。但 fastboot 直接拒绝:

Flashing is not allowed for Critical Partitions

执行 unlock_critical 也被厂商拒绝(Device cannot be unlocked for technical reason)。

结论:一加国行设备锁住了关键分区,fastboot 到此为止,必须走 9008/EDL。

三、转向 9008/EDL

EDL(Emergency Download Mode,高通 9008 模式)是骁龙的底层刷写模式,绕过 Android 和 bootloader 的常规校验,由高通 Firehose 协议直接写入闪存。

但 EDL 不是随便拿个工具就能刷,有两个关键点。

1. 必须使用签名 loader

进入 9008 后,需要向设备上传一个 firehose loader 来执行读写。这个 loader 必须是设备厂商签名的。网上同名文件很多,签名不匹配时会出现 I/O 错误或反复 Pipe error。

最终,loader 是从对应机型的官方 OFP 固件包里提取的:OFP 是一个加密容器,XML 头带有各镜像的偏移;解密后能定位到 Sahara 段的 firehose。因为 Sahara 项就在文件开头,只需要流式读取前几 MB,不需要解压整个 10GB 的包。

2. 认证项目号要对

一加的 EDL 写入关键分区时需要 setprojmodel 认证。edlclient 默认的项目号是 18825(OnePlus 7 Pro 5G),而这台 GM1910 对应的是 18821(OnePlus 7 Pro)。项目号不对,认证就会失败。

工具链搭在 macOS 上,使用的是开源的 edlclient 和 libusb。进入方式很简单:关机后按住音量上、音量下,再插数据线,电脑会识别为 Qualcomm 9008 设备。

设备的分区分散在多个 UFS LUN 上,刷写时按 LUN 分组进行。写完后没有直接相信“OKAY”,而是回读分区、与官方镜像逐字节比对——abl、xbl、vendor 的校验结果全部一致。

四、电量耗尽的小插曲

整个过程中最惊险的一幕,是手机在多次刷写之后电量耗尽:

  • 屏幕完全黑屏
  • 电脑检测不到任何 USB 设备
  • 按电源键没有任何反应

原因并不复杂:EDL 模式不会正常充电,手机在底层模式下持续耗电,耗尽后自然无法再进入任何模式。

处理方式是接原装充电器插墙,充 30–60 分钟,期间不要反复按键;等电压能支撑芯片启动后,再重新进入 EDL。

这也提醒:刷机前一定要保证电量充足,刷写期间尽量保持供电。

五、为什么最后刷的是氢OS

在 EDL 完整刷入 ColorOS 12.1(H.40)之后,45 个分区全部写入并校验一致,但“系统故障”的提示依然存在。它更像是 ColorOS 的完整性检测,而不是固件损坏。

而这台手机的原厂国行系统其实是氢OS。改刷 HydrogenOS 11.0.6.1(Android 11,国行完整 OTA)后,同样的流程:解包、按 LUN 写入、回读校验、清数据、重启。

结果:手机正常进入氢OS 桌面,“系统故障”提示消失。

六、这次救砖的几个关键点

  1. 官方固件不等于一定能启动。 固件版本要与 bootloader 匹配,必要时连 bootloader 固件一起更新。
  2. fastboot 刷不了 critical 分区,不代表没救。 遇到 Flashing is not allowed for Critical Partitions,应尽早转 EDL。
  3. EDL 的核心是签名 loader。 同名文件不可靠,最好从对应机型的官方线刷包中提取。
  4. 认证项目号要对。 一加 7 Pro 是 18821,18825 是 5G 版本。
  5. 写完要回读校验。 工具提示成功不等于数据正确。
  6. EDL 不充电。 电量是隐形杀手,刷机前先充满。
  7. 线刷会清空数据。 数据重要的话,先评估备份的可能。

写在最后

手机最终恢复了正常:氢OS 可以启动、没有系统故障提示、数据已清空、bootloader 保持解锁。

回头看,这次救援真正困难的不是某一个操作,而是在每一步错误里判断出“为什么”:版本不匹配、fastboot 受限、loader 签名不对、项目号不对、电量耗尽——单个问题都不复杂,叠加在一起却很容易让人以为手机彻底坏了。

希望这篇记录能帮到遇到类似情况的人:只要 bootloader 还能进、9008 还能连,手机通常都还有救。


本文记录的是个人设备维修经历。刷机有风险,操作前请备份数据、确认型号与固件,并自行承担相应风险。

补充说明

以下内容独立于原帖正文,由作者后续补充。

#5

Deepseek token费用花费21元

讨论 · 0

还没有评论

等待第一条认真回应。

登录后参与讨论

登录