> ## Documentation Index
> Fetch the complete documentation index at: https://dragonwingdocs-staging.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 工具创建代表输入源的设备树源/设备树源包含 (DTS/DTSI) 文件。

<Note>
  在某些平台上，`xbl_config.elf` 仅包含 XBL 专用 DT 节点，而 UEFI 专用 DT 节点位于单独的 `uefi_dtbs.elf` 文件（或其压缩/KVM 变体）中。在这些平台上，请使用 QDTE 单独打开并编辑 `uefi_dtbs.elf` 来修改 UEFI DT 节点。有关完整的平台明细，请参阅[启动接口概述](./boot-interfaces-overview)。
</Note>

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

  Ubuntu 22.04 Linux 主机计算机

  Windows 10 和 11 主机计算机
</Note>

## **配置 QDTE**

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

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

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

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

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

| **属性**                                                                                                                                                       | **Linux/Windows 主机 PC 的文件路径**                                                                                                                                                                                                                                                                                  |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------ | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| **SecTool 路径**：SecToolsv2 的安装路径，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-staging/uWQLnBcS9sxlZhgB/System/Boot/media/k2c-qli-boot/qdte-configure-settings.png?fit=max&auto=format&n=uWQLnBcS9sxlZhgB&q=85&s=3483259fad144ec127b56a846a6a3f42" 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-staging/uWQLnBcS9sxlZhgB/System/Boot/media/k2c-qli-boot/configure-qdte-disassemble.png?fit=max&auto=format&n=uWQLnBcS9sxlZhgB&q=85&s=730045aa15deec4eb2c159edd907eb0c" 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-staging/uWQLnBcS9sxlZhgB/System/Boot/media/k2c-qli-boot/configure-qdte-dtbfile-name.png?fit=max&auto=format&n=uWQLnBcS9sxlZhgB&q=85&s=d320985f8d4972f95277b1d3ed51a540" 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-staging/uWQLnBcS9sxlZhgB/System/Boot/media/k2c-qli-boot/configure-qdte-highlight-qdte.png?fit=max&auto=format&n=uWQLnBcS9sxlZhgB&q=85&s=398806f9373d249848febedaf3d0d202" 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-staging/uWQLnBcS9sxlZhgB/System/Boot/media/k2c-qli-boot/configure-xbl-config-files-using-qdte-1.png?fit=max&auto=format&n=uWQLnBcS9sxlZhgB&q=85&s=cada06241bbf479fc880c382b42cd9e9" 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>
