QFIL:Qualcomm Flash Image Loader,高通的烧录工具。
一、常规烧录配置界面:
按照上图的配置,就可以完成一次常规烧录了。
注: rawprogram_unsparse0.xml文件里面描述的是分区与镜像的信息
二、使用QFIL读取eMMC分区内容步骤如下:
1、通过硬件短接或者reboot edl命令,是系统进入9008模式。
2、配置好programmer path路径
3、选择Tools->Partiton Manager,然后点击OK,后面会弹出一个框,显示对应的分区信息
4、选中我们需要操作的分区,右键选中Manage partition data
5、可以对步骤4选中的分区,进行擦除、读、写操作。(目前我只有读成功了,其他的都没有成功)
步骤1需要根据实际情况自己去配置:
可以硬件短接
可以reboot edl
步骤2的配置:
步骤3的弹窗:
步骤4无法截图:
右键选中我们想要操作的分区就行。
步骤5的擦除、读、写:
注:数据读完之后,QFIL的status窗口会显示保存的路径
高通还提供了另一种dump eMMC内容的方式,可以参考文档:KBA-190828041405 How to dump flash
涉及到的相关命令:
命令一:
QSaharaServer.exe -u 22 -s 13:D:\820A\S202\v2.6.1_202112051629\emmc\prog_emmc_firehose_8996_ddr.elf
命令二:
fh_loader.exe -–port=\\.\COM22 --sendxml=system.xml -–search_path=C:\Users\qidong.liu\Desktop\s202\ --convertprogram2read --memoryname=emmc --noprompt --showpercentagecomplete
使用步骤如下:
1、通过短接或者命令的方式,进入9008下载模式。
2、执行命令一
3、执行命令二(dump得到的eMMC的内容,就在执行命令的路径下面)
命令一参数解释:(下面的都是自己根据实际使用过程中分析得到的,没有任何文档介绍)
-u 22:表示指定com22这个端口。(怎么判断com是多少,可以通过设备管理器查看)
-s:这个我也不知道啥意思,没有任何资料介绍
D:\820A\S202\v2.6.1_202112051629\emmc\prog_emmc_firehose_8996_ddr.elf:表示你运行哪个固件来dump emmc。(注:你想dump emmc的内容,那么肯定要在板卡上面运行一个程序。这个elf文件就是这个程序)
--convertprogram2read:这个我也不知道啥意思
--memoryname=emmc:读eMMC。(有些可能是UFS,不过我没有实际验证过)
--noprompt:这个我也不知道啥意思
--showpercentagecomplete:这个我也不知道啥意思
命令二参数解释:
-–port=\\.\COM22:指定com22这个端口
--sendxml=system.xml:程序使用的配置文件
-–search_path=C:\Users\qidong.liu\Desktop\s202\:搜索配置文件的路径
注:执行QSaharaServer.exe和fh_loader.exe的时候,可能找不到命令,需要你手动添加系统环境变量,将QSaharaServer.exe和fh_loader.exe的路径加入到Path里面。QSaharaServer.exe和fh_loader.exe的路径和QFIL处于同一路径下面
关于system.xml配置文件内容介绍:
内容如下:
<?xml version="1.0" ?>
<data>
<!--NOTE: This is an ** Autogenerated file **-->
<!--NOTE: Sector size is 512bytes-->
<program SECTOR_SIZE_IN_BYTES="512" file_sector_offset="0" filename="xbl" label="xbl" num_partition_sectors="4096" physical_partition_number="0" start_sector="131072" />
</data>
内容解析:
SECTOR_SIZE_IN_BYTES:指定分区大小
file_sector_offset:偏移大小
filename:dump后的内容保存的文件名字
label:dump哪个分区的内容
num_partition_sectors:分区的大小
physical_partition_number:这个我不知道啥意思,有知道的大佬可以指点一下
start_sector:分区的起始扇区
到这里,就可以dump整个分区的内容了。