Skip to main content
当前版本未启用 TEE 日志。
调试提供了一套常见的日志记录和调试技术,用于排查 Qualcomm TEE、可信应用程序与客户端应用程序以及安全设备中的问题。 重要提示 请在 SELinux Permissive 模式下运行所有 SSH 命令。Enforcing 模式将在未来支持。有关如何连接设备的说明,请参阅 Qualcomm Linux 构建指南

调试 Qualcomm TEE

Qualcomm TEE 内核日志(也称为 TrustZone diag 日志)可用于调试 Qualcomm TEE 中发生的错误。 TrustZone diag 日志可在 Linux 内核驱动中获得,该驱动会重定向这些日志。
  1. 使用 SSH 以 root 身份连接到设备。
  2. 使用以下命令捕获 TrustZone 日志:
tzbsp_log.txt 中的错误代码以十六进制编码。你可以运行以下工具将 tzbsp_log.txt 从十六进制解码为字符串。
  1. 前往 <TZ.XF.X.X path>/trustzone_images/ssg/bsp/tz/build/tz/A53_64/<BuildFlavor>
  2. 使用 python 3 运行以下命令。
    例如:
对于设备日志收集,TrustZone diag 日志缓冲区是 RAM 转储的一部分,可以在崩溃转储解析工具中使用来自 TZ.XF 软件的 qsee.elf 进行解析。对于离线或设备外日志收集,TrustZone diag 日志缓冲区是 RAM 转储的一部分,可以在崩溃转储解析工具中使用来自 TZ.XF 软件的 qsee.elf (trustzone\_images/ssg/bsp/qsee/build/\${tz\_bid:EACAANAA}) 进行解析。

使用安全崩溃转储进行调试

你可以使用 RAM 转储来调试 Qualcomm TEE。Qualcomm TEE 的执行区域转储通过安全崩溃转储收集。 使用 stage 2 sec.elf 触发熔丝的设备称为已启用安全启动的设备。要在这些设备上进行调试,请参阅 SecTools v2: Secure Debug User Guide 注意 SecTools 指南仅面向具有授权访问权限的许可开发者。

调试可信应用程序和客户端应用程序

可信应用程序日志(也称为 Qualcomm TEE 日志)用于调试可信应用程序中的错误。要调试客户端应用程序中的错误,则使用内核日志和 journalctl 日志。 对于在线或设备端日志收集,Linux 会在运行时收集 Qualcomm TEE/内核日志。你可以使用 SSH 连接到设备并使用以下命令:
  • 从 Linux 收集 Qualcomm TEE 日志:
  • 对于客户端应用程序,收集内核日志和 logcat 日志:
  • 对于离线或设备外日志收集,Qualcomm TEE 日志与内核日志和 journalctl 日志一起包含在 RAM 转储中。

在安全设备上进行调试

作为安全启动流程的一部分,熔断调试禁用熔丝会禁用设备上的调试功能。这包括各子系统上的 RAM 转储、INV 和 NINV 调试。 调试策略功能允许对已启用安全启动的设备的调试能力进行控制。 调试策略镜像允许在商用安全设备上启用诸如 JTAG 重新启用(INV 调试)、RAM 转储和 TrustZone 日志记录(NINV 调试)等调试功能。 出于安全原因,设备的序列号控制着用于安全 RAM 转储、Qualcomm TEE 日志和 JTAG 的调试策略。 在 Qualcomm TEE 子系统上启用 JTAG 会使设备在硬件密钥生成方面的安全性失效。因此,现有的安全存储(如用户数据、SFS 和 RPMB)将变得不可访问。有时,设备可能会提示进行恢复出厂设置。使用以下命令在安全设备上进行调试:
确保正确配置 OEM_ID、PRODUCT_ID、序列号与密钥以及证书路径。 有关更多信息,请参阅 SecTools v2: Secure Debug User Guide 注意 SecTools 指南仅面向具有授权访问权限的许可开发者。

在设备上烧写 APDP

要在设备上烧写 APDP,请运行以下命令:
表:用于转储收集的调试策略标志
/trustzone_images/ssg/securemsm/trustzone /qsee/mink/oem/config<chipset>/oem_config.xml
请参阅 KBA-191202045020-1(ZIP)。有关更多信息,请参阅 MiniDump Software User Guide 注意 SecToolsMiniDump 指南仅面向具有授权访问权限的许可用户。

在安全设备上收集 Qualcomm TEE/TrustZone diag 日志

在安全设备上,从 Linux 收集的 Qualcomm TEE/TrustZone 日志默认处于禁用状态。Qualcomm 提供了加密日志功能用于日志记录。按照以下步骤启用此功能:
  1. 使用以下命令生成用于加密的 RSA 密钥:
  2. 使用以下命令显示 RSA 密钥信息和模数:
    注意 模数用于 oem_config.xml 文件中的 pub_modpub_exp 指数通常为 65537。0x10001 称为 publicExponent
  3. trustzone_images/ssg/securemsm/trustzone/qsee/mink/oem/config/<chipset>/ oem_config.xml 文件中设置 RSA 公钥(指数和模数)。 通过在 oem_config.xml 文件中添加以下内容来启用此功能:
    注意 更新 oem_config.xml 文件中的公钥时,请确保没有因 Notepad 或 Wordpad 编辑器而在其中插入换行符、制表符或空格。
  4. trustzone_images/ssg/securemsm/trustzone/qsee/mink/oem/config/<chipset>/oem_config.xml 文件启用加密功能配置标志,使用:
  5. 要构建 TrustZone devcfg 镜像,请输入 OEM_ID 字段值并对 devcfg.mbn 镜像进行签名。
  6. 使用以下命令烧写已签名的 devcfg.mbn 镜像:
注意 QCS6490 使用 devcfg.mbn,QCS9100 使用 devcfg_iot.mbn
  1. 使用以下命令收集 Qualcomm TEE/TrustZone 日志:

Qualcomm TEE/TrustZone diag 日志解密步骤

  1. 从 KBA-200917004544-1(ZIP)下载 Python 解密工具 decrypt_tzdiag_qsee_log_tools.py
  2. 要安装,请运行以下命令:
  3. 要解密,请运行以下命令:
  4. 成功解密后:
    1. 将 Qualcomm TEE 日志的明文转换为可读的字符串格式。
    2. 将十六进制编码的错误代码转换为字符串,使用:

后续步骤