调试 Qualcomm TEE
Qualcomm TEE 内核日志(也称为 TrustZone diag 日志)可用于调试 Qualcomm TEE 中发生的错误。 TrustZone diag 日志可在 Linux 内核驱动中获得,该驱动会重定向这些日志。- 使用 SSH 以 root 身份连接到设备。
- 使用以下命令捕获 TrustZone 日志:
tzbsp_log.txt 中的错误代码以十六进制编码。你可以运行以下工具将 tzbsp_log.txt 从十六进制解码为字符串。
- 前往
<TZ.XF.X.X path>/trustzone_images/ssg/bsp/tz/build/tz/A53_64/<BuildFlavor> - 使用 python 3 运行以下命令。
例如:
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)将变得不可访问。有时,设备可能会提示进行恢复出厂设置。使用以下命令在安全设备上进行调试:在设备上烧写 APDP
要在设备上烧写 APDP,请运行以下命令:
/trustzone_images/ssg/securemsm/trustzone /qsee/mink/oem/config<chipset>/oem_config.xml
请参阅 KBA-191202045020-1(ZIP)。有关更多信息,请参阅 MiniDump Software User Guide。
注意
SecTools 和 MiniDump 指南仅面向具有授权访问权限的许可用户。
在安全设备上收集 Qualcomm TEE/TrustZone diag 日志
在安全设备上,从 Linux 收集的 Qualcomm TEE/TrustZone 日志默认处于禁用状态。Qualcomm 提供了加密日志功能用于日志记录。按照以下步骤启用此功能:- 使用以下命令生成用于加密的 RSA 密钥:
- 使用以下命令显示 RSA 密钥信息和模数:
注意 模数用于
oem_config.xml文件中的pub_mod。pub_exp指数通常为 65537。0x10001 称为publicExponent。 - 在
trustzone_images/ssg/securemsm/trustzone/qsee/mink/oem/config/<chipset>/ oem_config.xml文件中设置 RSA 公钥(指数和模数)。 通过在oem_config.xml文件中添加以下内容来启用此功能:注意 更新oem_config.xml文件中的公钥时,请确保没有因 Notepad 或 Wordpad 编辑器而在其中插入换行符、制表符或空格。 - 从
trustzone_images/ssg/securemsm/trustzone/qsee/mink/oem/config/<chipset>/oem_config.xml文件启用加密功能配置标志,使用: - 要构建 TrustZone devcfg 镜像,请输入 OEM_ID 字段值并对
devcfg.mbn镜像进行签名。 - 使用以下命令烧写已签名的
devcfg.mbn镜像:
devcfg.mbn,QCS9100 使用 devcfg_iot.mbn。
- 使用以下命令收集 Qualcomm TEE/TrustZone 日志:
Qualcomm TEE/TrustZone diag 日志解密步骤
- 从 KBA-200917004544-1(ZIP)下载 Python 解密工具
decrypt_tzdiag_qsee_log_tools.py。 - 要安装,请运行以下命令:
- 要解密,请运行以下命令:
- 成功解密后:
- 将 Qualcomm TEE 日志的明文转换为可读的字符串格式。
- 将十六进制编码的错误代码转换为字符串,使用:
后续步骤
- 要了解如何开发和运行可信应用程序与客户端应用程序,请参阅开发可信应用程序和客户端应用程序。
- 要配置 Qualcomm TEE 以保护处理敏感数据并运行可信应用程序的设备,请参阅配置安全服务。
- 要定制内存和 SEPolicy,请参阅定制安全服务。

