QFIL的烧录、读写

本文详细介绍了Qualcomm Flash Image Loader (QFIL) 的使用方法,包括常规烧录配置、eMMC分区内容读取步骤、两种dump eMMC内容的命令及其参数解读,以及system.xml配置文件的解析。重点展示了高通烧录工具在嵌入式开发中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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整个分区的内容了。      

<think>嗯,用户想用QFIL工具单独烧录特定分区。首先,我需要回忆一下QFIL的基本操作流程。QFIL是高通芯片常用的烧录工具,支持多种分区操作。用户之前可能已经进行过完整烧录,但现在需要单独刷写某个分区,比如恢复某个损坏的分区或者更新系统部分功能。 首先,我得确定单独烧录需要哪些步骤。通常,QFIL的完整烧录使用.xml配置文件,里面包含了所有分区的信息。单独烧录的话,可能需要修改这个配置文件,只保留目标分区,或者使用其他方法选择特定分区。但不确定具体怎么操作,可能需要生成或获取特定分区的.img文件,然后在QFIL中选择对应的分区表进行烧录。 然后,用户可能需要准备分区表文件,例如rawprogram0.xml和patch0.xml,这两个文件通常和固件包一起提供。单独烧录时需要确保这两个文件只包含目标分区的信息,或者QFIL有选项可以选择单独分区。另外,备份当前数据很重要,避免数据丢失,用户可能已经知道这点,但还是要提醒。 还有,进入EDL模式是关键步骤。用户可能需要手动让设备进入下载模式,通常是关机后按特定组合键。不同设备进入方式可能不同,可能需要查阅具体设备的说明。同时,驱动安装是否正确也很重要,否则QFIL可能无法识别设备。 另外,使用QFIL时,选择正确的构建类型,比如“Flat Build”还是“Patch Build”,这可能影响烧录方式。单独烧录可能需要选择不同的选项。还有,用户可能需要使用firehose程序文件(.mbn或.elf),这是高通底层通信协议,必须正确配置。 可能会遇到的问题包括分区表文件配置错误,导致烧录失败,或者设备无法进入EDL模式。需要指导用户检查这些步骤,并确保文件路径正确,没有空格或特殊字符。此外,烧录完成后可能需要重启设备,进入主系统验证是否成功。 最后,用户可能需要相关的问题,比如如何提取特定分区镜像,或者如何解决驱动问题。需要生成几个相关问题,帮助用户进一步解决可能遇到的困难。</think>### 如何使用QFIL工具单独烧录特定分区? #### 步骤说明: 1. **准备工作** - 下载并安装最新版QFIL工具(Qualcomm Flash Image Loader)[^1]。 - 确保设备驱动已正确安装(如高通HS-USB QDLoader驱动)。 - 获取目标分区的镜像文件(例如`system.img`、`boot.img`)和分区表文件(`rawprogram0.xml`、`patch0.xml`)。 2. **进入EDL模式** - 关闭设备电源,长按特定组合键(如音量+/- + 电源键)进入紧急下载模式(EDL模式)。不同设备按键组合可能不同,需参考具体文档。 3. **配置QFIL工具** - 打开QFIL,选择**Flat Build**模式。 - 在**Select Programmer**中加载与设备匹配的Firehose文件(通常为`.mbn`或`.elf`后缀)。 4. **加载分区表与镜像** - 在**Load XML**部分,分别加载修改后的`rawprogram0.xml`和`patch0.xml`文件。若需单独烧录分区,需在XML文件中仅保留目标分区的条目。例如: ```xml <!-- rawprogram0.xml片段 --> <program file="system.img" label="system" sparse="false"/> ``` 5. **执行烧录** - 点击**Download**按钮开始烧录,进度条完成后设备会自动重启。 6. **验证结果** - 重启后检查目标分区功能是否正常(如系统版本号、分区读写状态)。 #### 注意事项: - **分区表修改风险**:错误修改XML文件可能导致设备变砖,建议备份原始文件。 - **镜像兼容性**:确保分区镜像与设备型号和固件版本匹配。 - **驱动问题**:若QFIL无法识别设备,需重新安装高通驱动或检查USB连接。 ```plaintext # 示例命令(仅供参考) QFIL.exe -port COM3 -xml rawprogram0.xml -patch patch0.xml ```
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

monkey_llll

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值