【转载】【原帖名】如何通过紧急刷机模式dump几乎任何高通机型的存储设备

本帖是由最初发表在XDA-developers的帖子翻译,并加以说明。
近期在安卓高通救砖。找资料的时候看到这篇帖子。转过来给大家学习用。

作为通用教程,只要手机能够进入紧急刷写模式(EDL,或9008),大多数的高通机型就能够使用本教程。
本教程主要的意义是,通过提取手机的 eMMC 存储来获取原厂 ROM 的备份,对没有原厂 ROM 的手机制作 ROM 将成为可能。

为确保本教程能够顺利工作,遵循此教程需满足以下条件:
- 你知道如何进入紧急刷写模式,且知道如何强制重启手机 (对于更新驱动程序操作很有必要)
- 高通紧急刷写模式不要求账户授权 (例如小米、vivo、oppo近年的新机) 或者未被魔改 (例如Lumia手机的紧急刷写模式)
- 对应你手机处理器和存储设备形式 (eMMC 或 UFS 存储) 的 firehose 文件
- 最新的高通 USB 驱动和 QPST 工具

对于非 Android 设备,已知 HP Elite X3 (仅测试了工程机)可以使用本教程。
其他大多数 Android 设备应当也能使用。


第一步:进入紧急刷写模式

以下方法可供参考。
- 关机,按住特定键连接电脑
例:TCL / 阿尔卡特 / 黑莓的智能手机可通过音量减号进入紧急刷写模式

- 紧急刷写模式线 (可以自制或X宝购买,关键字:小米工程线)
例:近期的锤子 (Smartisan) Android 智能手机可借助这种线进入紧急刷写模式

- Fastboot 命令
例:部分小米手机,可通过特殊编译后的 fastboot 执行命令 fastboot reboot-edl 来进入。


- 短接法
如果你知道测试点在哪里,或者你知道存储芯片的 CLK 引脚对应的电阻接到了哪里,请在关机的情况下使用良导体将其接地(例如接到屏蔽罩上),然后把手机接入电脑,即可进入紧急刷写模式。
此方法对几乎任何高通设备都有效,只要你有厂商内部的电路原理图就可以轻松找到(只是说有的情况下找起来要简单一点)。

- 擦写掉手机的 abl/xbl 分区或 aboot 分区

注意:此方法会导致手机变砖从而强制进入紧急刷写,有一定风险。

第二步:将手机的驱动更新成 Qualcomm HS-USB QDLoader 9008

如果在设备管理器的“端口 (COM 或 LPT)”分类里已经显示成了 HS-USB QDLoader 9008,请跳过此步骤直接看第三步。
如果在“端口 (COM 或 LPT)”分类里显示成 HS-USB Diagnostics 9008,或是“通用串行总线设备”分类里显示成"QHSUSB__BULK",你必须要右键更新驱动程序,并从计算机中手动选择驱动,将其更新为 Qualcomm HS-USB QDLoader 9008,才能让后续步骤发挥作用。
要重启手机,你可以使用强制重启的组合键,当你看到端口消失了即为刷新成功。此时你只要用相同的方法再进一次紧急刷写模式,即可继续后续步骤。对于已经变砖的机器,该端口会重新刷新。


第三步:打开 QFIL 并加载 Firehose 文件

QFIL 可以在开始菜单的Qualcomm\QPST里找到。
首次启动,你需要选择手机闪存的类型,这对后续步骤非常关键,
大多数情况下默认选emmc,但如果是旗舰设备也许会使用ufs。这里我们选择emmc。

Build Type 要选择 Flat Build,然后要选定适用于你手机的 firehose 文件。如果你找不到匹配的 firehose 文件,你可以使用不同手机的 firehose 文件,只要处理器和存储芯片规格相同。
例如我在 HP Elite X3 上能够使用 ZUK Z2 的 firehose 文件"prog_emmc_firehose_8996_ddr.elf"。


第四步:打开分区管理器 Partition Manager

现在从顶部的菜单栏选择 "Tools" - "Partition Manager",并注意看下面的状态框。
当状态框显示:

  1.  
  2. 2019-07-18 20:04:19.775    20:04:19: Sahara protocol completed
  3. 2019-07-18 20:04:19.776    Sending Programmer Finished
  4. 2019-07-18 20:04:19.776    Switch To FireHose
  5. 2019-07-18 20:04:19.777    Wait for 3 seconds...
复制代码


如果你没有看到上面的内容,说明 firehose 文件不对或者紧急刷写端口出了问题,你需要重启手机再来一次或者要选择其它的 firehose 文件再次尝试。

如果接下来你看到了 Partition Manager 窗口,那你成功了一半,请继续往下看。

这就是你手机的分区表。请注意看你手机的最后一个分区的 Start LBA 和 LBA number,分别是起始扇区和扇区长度。
以 HP Elite X3 的分区表为例,最后一个分区是 Data,它的 Start LBA 和 LBA number 分别是 0x01E20000 和 0x0565BFDF。使用计算器将两者相加,不难得出整个eMMC存储的扇区数是0x0747BFDF,换算成10进制就是 122142687 扇区。将扇区数乘以 512 可以得到整个 eMMC 存储的实际容量,本例 eMMC 的实际容量为 62537055744‬ 字节。

后续我们会用到 122142687 这个数字。
如果不想把用户数据 dump 出来,你只要 Start LBA 的数字即可。这么一来获得的 dump 将不会包含用户存储数据。
在大多数场合下,用户存储经过了加密,即便 dump 出来了也无法顺利解密得到里面的资料,这对取证场景带来了些许不利。

请不要关闭 Partition Manager,我们接下来的步骤要保持它一直开启。
接下来请根据你的需求选择第五步A还是第五步B。


第五步 A:提取 eMMC 存储
请将以下地址复制到文件资源管理器:
%AppData%\Qualcomm\QFIL

这将会把你重定向到 C:\Users\[你的用户名]\AppData\Roaming\Qualcomm\QFIL .
找到对应你 COM 口序号的 COMPORT_XX 目录,例如这里是 COM8 端口。

在这里打开一个命令提示符或 PowerShell。
请执行下列命令,从而将内置存储顺利 dump 出来。如果你的 QPST 安装在了不同目录,整个命令也要跟着调整:
"C:\Program Files (x86)\Qualcomm\QPST\bin\fh_loader.exe" --port=\\.\COM8 --search_path=D:\path\to\your\dump --convertprogram2read --sendimage=full_dump.bin --start_sector=0 --lun=0 --num_sectors=122142687 --noprompt --showpercentagecomplete --zlpawarehost=1 --memoryname=emmc
注意,此命令不会为你自动创建不存在的目录(例如上述命令的D:\path\to\your\dump,一旦目录不存在它将无法 dump,你需要自行创建此目录。

现在只需要静静等待备份流程完成。

备份完成后,你就可以使用 7-Zip 打开此备份文件并提取你需要的分区。

第五步 B:回写 eMMC 存储
请将以下地址复制到文件资源管理器:
%AppData%\Qualcomm\QFIL

这将会把你重定向到 C:\Users\[你的用户名]\AppData\Roaming\Qualcomm\QFIL .
找到对应你 COM 口序号的 COMPORT_XX 目录,例如这里是 COM8 端口。

在这里打开一个命令提示符或 PowerShell。
请执行下列命令,从而将内置存储顺利 dump 出来。如果你的 QPST 安装在了不同目录,整个命令也要跟着调整:
本例中,你的 dump 文件位于 D:\path\to\your\dump\full_dump.bin 。
"C:\Program Files (x86)\Qualcomm\QPST\bin\fh_loader.exe" --port=\\.\COM8 --search_path=D:\path\to\your\dump --sendimage=full_dump.bin --start_sector=0 --lun=0 --noprompt --showpercentagecomplete --zlpawarehost=1 --memoryname=emmc

现在只需等待流程完成即可。
如果你需要单独恢复某个分区,你需要将参数里的 start_sector 换成对应分区的 Start LBA 换算成十进制的数值。

恢复完成之前,严禁关闭 Partition Manager!

第六步:退出 Partition Manager


操作完成之后,关闭 Partition Manager,QFIL 会将你的手机自动重启回紧急刷写模式或是正常模式。
这之后你就可以放心大胆折腾你的手机了。

出处中文版原帖地址:ht删tps://for删um.51n删b.com/thread删-1904860删-1-1.html

猜你喜欢

转载自blog.csdn.net/llq520/article/details/114811131