刷机全程由 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 桌面,“系统故障”提示消失。
六、这次救砖的几个关键点
- 官方固件不等于一定能启动。 固件版本要与 bootloader 匹配,必要时连 bootloader 固件一起更新。
- fastboot 刷不了 critical 分区,不代表没救。 遇到
Flashing is not allowed for Critical Partitions,应尽早转 EDL。 - EDL 的核心是签名 loader。 同名文件不可靠,最好从对应机型的官方线刷包中提取。
- 认证项目号要对。 一加 7 Pro 是 18821,18825 是 5G 版本。
- 写完要回读校验。 工具提示成功不等于数据正确。
- EDL 不充电。 电量是隐形杀手,刷机前先充满。
- 线刷会清空数据。 数据重要的话,先评估备份的可能。
写在最后
手机最终恢复了正常:氢OS 可以启动、没有系统故障提示、数据已清空、bootloader 保持解锁。
回头看,这次救援真正困难的不是某一个操作,而是在每一步错误里判断出“为什么”:版本不匹配、fastboot 受限、loader 签名不对、项目号不对、电量耗尽——单个问题都不复杂,叠加在一起却很容易让人以为手机彻底坏了。
希望这篇记录能帮到遇到类似情况的人:只要 bootloader 还能进、9008 还能连,手机通常都还有救。
本文记录的是个人设备维修经历。刷机有风险,操作前请备份数据、确认型号与固件,并自行承担相应风险。