架构信息仅用于理解目的。你无需执行任何配置或定制。
Arm 核心的安全模式构成了 TrustZone 技术的核心。它为安全操作系统提供基于硬件的安全环境,并将安全世界与非安全世界分离。 下图展示了 Qualcomm Linux 安全软件架构。它展示了组件或模块在富执行环境(用户空间和内核空间)与可信执行环境中的分布。 图:Qualcomm Linux 安全软件组件
- 非安全模式:Linux 在 Arm 核心的此模式下运行。
- 安全模式:Qualcomm TEE 和可信应用程序在 Arm 核心的此安全模式下运行。

Linux 用户空间(非安全 EL0)
此用户空间包括位于 Linux 用户空间中的主要安全模块/接口,根据 Arm 异常级别,它运行在非安全 EL0 中。
- Mink—Linux(Mink 平台/系统监听器服务/传输机制)
- 提供通过可信应用程序使用 Qualcomm TEE 功能的服务和传输机制。
- 构成系统监听器服务(QTEE supplicant),旨在扩展 Qualcomm TEE 功能。
- 通过
libminkteec实现全局平台 TEE 客户端 API,用于运行基于全局平台的可信应用程序。有关更多信息,请参阅 TEE Client API Specification。- 在富执行环境(Linux 用户空间)中实现与运行在 Qualcomm TEE 中的可信应用程序交互的客户端应用程序。各种客户端应用程序包括:
- 使用 mink API 开发的客户端应用程序
- 基于全局平台的客户端应用程序
- 使用基于全局平台的 TEE 客户端 API 规范开发的客户端应用程序
- 密钥管理
- 加密客户端库(
libckqteec)实现了到运行在 QTEE 中的 PKCS#11 可信应用程序的 PKCS#11 接口。运行在 Linux 上的用户空间应用程序可以链接到此库,通过 PKCS#11 标准接口向 TEE 请求加密操作。 libckqteec库定义了应用程序与加密设备之间的标准 PKCS#11 接口,使应用程序能够将加密设备视为令牌,并执行由这些令牌实现的加密功能。- PKCS#11 接口提供一系列加密服务,包括加密、解密、签名生成、签名验证和永久密钥存储。
图:内核和用户空间中的密钥管理

- 加密客户端库(
- 有关密钥管理的更多信息,请参阅 Qualcomm WES 和存储加密。
- 有关各种安全软件组件的更多信息,请参阅安全功能。
Linux 内核空间(非安全 EL1)
以下是安全专用的内核驱动:
- QCOMTEE 驱动:
- 该驱动集成到标准的 Linux TEE 子系统中,但它扩展了子系统的功能以支持 Qualcomm 的独特需求。
- 位置:驱动源代码位于
drivers/tee/qcomtee/。- 驱动 ID:在 TEE 子系统中,QCOMTEE 以唯一 ID(通常为 3)注册,以区别于 OP-TEE(1)和 AMD-TEE(2)。
- 对象 IPC 集成:由于标准 TEE 子系统本身不支持基于对象的 IPC,QCOMTEE 驱动在其之上分层实现了对象 IPC。它引入了可通过特定 IOCTL 调用的通用对象抽象。
- 通信流程:
- 用户空间:应用程序使用 Mink TEEC 或 Mink Adaptor 库,通过 GlobalPlatform 或对象 IPC 接口与 QTEE 交互。
- TEE 子系统:尽可能重用标准 IOCTL(如 TEE_IOC_SHM_ALLOC),而新的 IOCTL(
like IOCTL_OBJECT_INVOKE)处理对象特定逻辑。- QCOMTEE 驱动:将参数编组为 Qualcomm TEE 可理解的格式。
- 固件(Qualcomm TEE):接收请求并执行所请求的可信应用程序逻辑。
- 有关 CM 和加密/PRNG 驱动,请参阅相应的内核文档。
Qualcomm Hypervisor(非安全 EL2)
有关更多信息,请参阅 Qualcomm Hypervisor。Qualcomm TEE SDK(安全 EL0)
Qualcomm 提供用于开发和构建可信应用程序的软件开发套件(SDK)。该 SDK 包含编译可信应用程序所需的构建系统、头文件和库依赖项。- 可信应用程序。请参阅 Qualcomm TEE → 可信应用程序。
Qualcomm TEE mink(安全 EL1)
在基于 Qualcomm TEE 内核的系统中,软件在一个或多个相互通信的域中运行,例如内核域或用户域。 这些域在访问内存和其他系统资源的能力上有所不同。Mink 是一种基于对象能力模型的、基于对象 IPC 的同步消息传递协议,旨在促进不同域之间的安全通信。它使一个域中的代码能够通过将不可伪造的对象引用作为输入或输出参数传递,来调用另一个域中的对象。
- 其中一个域称为内核域,运行在安全 EL1,对系统资源拥有完全控制权。
- 其他域称为用户域或进程,运行在安全 EL0,对系统资源的访问受到限制。基于对象 IPC 的 Mink 协议允许对授予进程的访问权限进行精确控制。

