> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs.qualcomm.com/llms.txt
> Use this file to discover all available pages before exploring further.

# QDTE

QDTE 是一款通过编辑 `xbl_config.elf` 文件来配置 DTB 的工具。

您可以从 [Qualcomm Software Center（QSC）](https://softwarecenter.qualcomm.com/#/)下载 QDTE，并使用命令 `./qdte` 启动 UI。

QDTE 提供以下功能：

* 允许在测试环境中试验配置设置。

* 该工具可直接打开/读取 DTB 文件，或解析 xbl\_config.elf 文件并提取其中嵌入的 DTB 文件。在后一种情况下，保存文件时，工具会重新生成经过签名的 xbl\_config.elf 文件。

请勿使用 QDTE 工具创建代表输入源的 devicetree 源/devicetree 源包含（DTS/DTSI）文件。

<Note>
  QDTE v1.3.0 支持以下环境：

  Ubuntu 22.04 Linux 主机

  Windows 10 和 11 主机
</Note>

## **配置 QDTE**

QDTE 图形用户界面（GUI）工具用于配置和修改 Devicetree 二进制（DTB）文件。有关详细信息，请参阅[启动接口概述](./boot-interfaces-overview)。

本节介绍如何使用 QDTE 工具执行以下操作：

* 加载、解析、编辑和保存 DTB 文件。
* 从设备读取或向设备写入 DTB 文件。
* 在您的主机 PC（无论是 Linux 还是 Windows）上进行配置设置。

按如下方式在主机设备上进行配置设置：

<Frame caption="**表：Linux/Windows 配置**" />

| **属性**                                                                                                                                                    | **Linux/Windows 主机 PC 的文件路径**                                                                                                                                                                                                                                                                                |
| --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| **SecTool 路径**：SecToolsv2 的安装路径，该工具用于对软件镜像执行安全操作。                                                                                                         | <ul><li>Linux：`SECTOOLS=”META_PATH”/<chipset>.LE.X.x/common/sectoolsv2/ext/Linux/sectools`</li><li>Windows：`SECTOOLS=”META_PATH”\<chipset>.LE.X.x\common\sectoolsv2\ext\windows\sectools`。有关适用于 Windows 的 SecToolsv2 的更多信息，请参阅 SecTools V2: Metabuild Secure Image User Guide</li></ul>                      |
| **Profile 文件**：用于签署安全配置文件 XML 文件。                                                                                                                         | <ul><li>Linux：`"META_PATH”/<chipset>.LE.X.x/common/sectoolsv2/kodiak_security_profile.xml`</li><li>Windows：`"META_PATH”\<chipset>.LE.X.x\common\sectoolsv2\kodiak_security_profile.xml`</li></ul>                                                                                                            |
| **Sign cmd json**：用于签署来自 QDTE 安装目录的 JSON 文件。测试签名模式用于在非安全设备上工作。对于安全设备，请参阅[启用安全启动](https://dragonwingdocs.qualcomm.com/System/Security/enable-secure-boot)。 | <ul><li>Linux：`/local/mnt/qcom/QDTE/test_signing_mode.json`</li><li>Windows：`C:\Program Files (x86)\Qualcomm\QDTE\test_signing_mode.json`</li></ul>                                                                                                                                                          |
| **Devprg 文件**：设备编程器文件。                                                                                                                                    | <ul><li>Linux：`"META_PATH”/<chipset>.LE.X.x/BOOT.MXF.1.0.c1-00134-KODIAKLA-2/boot_images/boot/QcomPkg/SocPkg/Kodiak/Bin/LAA/DEBUG/prog_firehose_ddr.elf`</li><li>Windows：`"META_PATH”\<chipset>.LE.X.x\BOOT.MXF.1.0.c1\boot_images\boot\QcomPkg\SocPkg\Kodiak\Bin\LAA\DEBUG\prog_firehose_ddr.elf`</li></ul> |
| **Flash 类型**：存储类型，此处为 UFS。                                                                                                                                | –                                                                                                                                                                                                                                                                                                            |

<div style={{ textAlign: 'center', width: '100%' }}>
  <img src="https://mintcdn.com/qualcomm-prod/eYaEBFH0xlFq53OY/System/Boot/media/k2c-qli-boot/qdte-configure-settings.png?fit=max&auto=format&n=eYaEBFH0xlFq53OY&q=85&s=ebfb26c317aea15ee7829ccdacf9e65d" alt="QDTE 签名配置的设置" style={{ display: 'block', margin: '0 auto' }} width="508" height="558" data-path="System/Boot/media/k2c-qli-boot/qdte-configure-settings.png" />

  <p style={{ textAlign: 'center' }}><strong>图：QDTE 签名配置的设置</strong></p>
</div>

使用以下步骤通过 QDTE 配置 DTB 文件。此步骤仅适用于 XBL 和 UEFI DTB。

1. 要打开 XBLConfig ELF 文件，请转到 **File** > **Open DTB Elf** > **From Build**。
   * 如果文件无效或已损坏，系统会生成错误。为避免出现该错误，请确保下载有效的启动二进制文件（包括 `xbl_config.elf`），并将其与 XBL 配置一起使用。该二进制文件包含启动组件，它是固件的一部分。
   * 如果文件加载成功，将出现一个树形视图，其中填充了 DTB 元素。

2. 选择 XBLConfig ELF 文件进行编辑。

   QDTE 主界面将显示该文件。

   下图显示了 XBLConfig 辅助窗口，其中展示了包含两个 DTB 的 XBLConfig 文件的反汇编结果。

   <div style={{ textAlign: 'center' }}>
     <img src="https://mintcdn.com/qualcomm-prod/eYaEBFH0xlFq53OY/System/Boot/media/k2c-qli-boot/configure-qdte-disassemble.png?fit=max&auto=format&n=eYaEBFH0xlFq53OY&q=85&s=2a267135f5caf5d2ca1adf4fb8d1470c" alt="显示反汇编结果的 XBLConfig 辅助窗口" width="866" height="430" data-path="System/Boot/media/k2c-qli-boot/configure-qdte-disassemble.png" />
   </div>

   下图显示了在树形视图中打开的示例文件，其中四列均已填充。

   <div style={{ textAlign: 'center' }}>
     <img src="https://mintcdn.com/qualcomm-prod/eYaEBFH0xlFq53OY/System/Boot/media/k2c-qli-boot/configure-qdte-dtbfile-name.png?fit=max&auto=format&n=eYaEBFH0xlFq53OY&q=85&s=4aac7bd481c274b8e3e77bd7543e43f9" alt="在树形视图中打开的示例文件" width="1045" height="643" data-path="System/Boot/media/k2c-qli-boot/configure-qdte-dtbfile-name.png" />
   </div>

3. 要放弃所有更改并从磁盘重新加载文件（如果在 QDTE 工具打开期间文件在磁盘上发生了变化），请选择 **File** > **Reload File**。

4. 要向树中添加项目，请右键单击某个节点。将显示以下项目：

   |                  | **表：DT 项目**                                                          |
   | ---------------- | -------------------------------------------------------------------- |
   | **树项目**          | **描述**                                                               |
   | Add New Child    | 在树中添加子项。                                                             |
   | Node             | 询问新节点的名称并添加该节点。如果节点名称无效，则会出错。                                        |
   | Property of Type | 打开一个菜单，允许您选择要添加的属性类型。添加属性时会显示与新属性类型对应的 **Edit** 对话框。确认后，将添加指定类型的新属性。 |

   您可以删除 DT 中除根节点以外的所有项目。要删除项目，请右键单击该项目并选择 **Delete**。删除节点时也会删除其子节点（如果有）。

5. 要编辑属性，您可以右键单击并选择 **Edit**，或双击打开对话框。此对话框允许您编辑属性名称和属性值。

6. 要以二进制十六进制转储形式查看 DTB 文件，请转到 **View** > **Raw**，将显示导出的 DTB 文件。
   以下原始视图示例显示了偏移量、十六进制值和相应的字符列，其中一个节点以橙色突出显示。

   <div style={{ textAlign: 'center' }}>
     <img src="https://mintcdn.com/qualcomm-prod/eYaEBFH0xlFq53OY/System/Boot/media/k2c-qli-boot/configure-qdte-highlight-qdte.png?fit=max&auto=format&n=eYaEBFH0xlFq53OY&q=85&s=60d7602b4be237f344cd55d8326add53" alt="原始视图，其中一个节点以橙色突出显示" width="915" height="372" data-path="System/Boot/media/k2c-qli-boot/configure-qdte-highlight-qdte.png" />
   </div>

   要移除所有突出显示，请转到 **View** > **Clear Highlights**。

7. 要保存修改后的 DTB，您可以转到 **File** > **Save**（或按 **CTRL + S**）覆盖现有文件，或转到 **File** > **Save Copy As**（或按 **CTRL + SHIFT + S**）将 DTB 的副本保存到新文件。

8. 要生成更改摘要，请选择 **File** > **Export Change Report**。
   将创建一个 JSON 文件，其中列出本次会话中对 DT 所做的所有更改，以及操作后 DTB 的结果。

9. 要在 QDTE 主界面中保存修改后的 DTB 文件，请转到 XBLConfig 辅助窗口，然后选择 **Reassemble and Sign**。修改后的文件将被保存。

10. 接下来，为输出文件选择一个名称。
    工具链使用 XBLConfig 重新组装 ELF。如果错误消息指示未生成已签名的 XBLConfig，则会将该错误降级为警告，并改为显示成功消息。

<div style={{ textAlign: 'center', width: '100%' }}>
  <img src="https://mintcdn.com/qualcomm-prod/eYaEBFH0xlFq53OY/System/Boot/media/k2c-qli-boot/configure-xbl-config-files-using-qdte-1.png?fit=max&auto=format&n=eYaEBFH0xlFq53OY&q=85&s=12b35e1c6acee3ccaa49dfe3a47c8f71" alt="QDTE 中的 Reassemble and Sign" style={{ display: 'block', margin: '0 auto' }} width="926" height="450" data-path="System/Boot/media/k2c-qli-boot/configure-xbl-config-files-using-qdte-1.png" />
</div>
