第五章:源码结构与编译
Trusty TEE的源代码采用模块化设计,主要目录结构如下:
关键目录说明:
Trusty采用模块化编译系统,主要分为内核和用户态两部分:
内核编译基于LK构建系统,主要步骤:
# 设置目标平台(如qemu-arm32)
export TARGET=your_target_platform
# 进入lk目录
cd trusty/lk
# 执行编译
make
内核编译关键配置选项:
| 配置选项 | 说明 | 默认值 |
|---|---|---|
| WITH_TRUSTY_IPC | 启用Trusty IPC通信机制 | 1 |
| WITH_KERNEL_VM | 启用内核虚拟内存管理 | 1 |
| WITH_LIB_CONSOLE | 启用控制台支持 | 1 |
| TRUSTY_USER_ARCH | 用户空间架构(arm/arm64) | arm |
用户态组件使用单独的构建系统:
# 进入用户态构建目录
cd trusty/user
# 执行编译
make
注意:用户态组件编译依赖于内核头文件和库,通常需要先完成内核编译。
编译完成后会生成以下关键镜像文件:
| 镜像文件 | 位置 | 说明 | 组成 |
|---|---|---|---|
| trusty.img | trusty/build/ | 完整的Trusty系统镜像 | 内核+用户态+TA |
| tos.bin | trusty/lk/build-* | Trusty OS二进制(仅内核) | LK内核+Trusty扩展 |
| trusty_app.img | trusty/user/build/ | 用户态组件镜像 | 系统服务+TA |
trusty.img 是完整的Trusty系统镜像,其结构如下:
图:trusty.img镜像结构
镜像验证:可以使用trusty/tools/imgtool.py工具验证和解析镜像内容:
# 查看镜像信息
./imgtool.py info trusty.img
# 解包镜像
./imgtool.py unpack trusty.img output_dir