• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# tee_tee_os_framework仓介绍 #
2
3## 简介 ##
4
5OpenTrustee提供了一个可信执行环境(Trusted Execution Environment,TEE),运行在受硬件隔离的安全区域中,与常规操作系统如OpenHarmony同时运行但互相隔离。OpenTrustee比常规操作系统拥有更高的安全性,可以为设备上的机密数据提供保护。
6
7OpenTrustee是一套完整的TEE解决方案,包含多个部件,系统架构如图所示:
8
9![](figures/overview-of-opentrustee.png)
10
11tee_tee_os_framework部件主要包含OpenTrustee的操作系统框架部分,负责TA(Trusted Application)整个生命周期的管理、CA(Client Application)与TA交互信息的处理以及驱动的管理。除此以外,还提供了加解密、安全存储等核心服务,下面是具体的模块介绍。
12
13## tee_os_framework部件模块划分 ##
14<table>
15<th>子模块名称</th>
16<th>模块职责</th>
17<tr>
18<td> gtask </td><td>TA进程的生命周期管理,实现TA进程的创建销毁,CA跟TA交互的通信管理、会话管理、Agent交互管理,TA进程异常状态处理</td>
19</tr><tr>
20<td> teesmcmgr</td><td>smc命令消息分发管理,包括CA命令、系统的休眠唤醒命令分发,idle状态管理等</td>
21</tr><tr>
22<td> tarunner</td><td>TA/驱动/服务二进制elf文件加载解析重定位</td>
23</tr><tr>
24<td> drvmgr</td><td>驱动进程的生命周期管理,包括驱动进程的创建及销毁、驱动接口访问控制、驱动进程权限控制,驱动访问管理,驱动进程异常状态处理</td>
25</tr><tr>
26<td> permission service</td><td>SEC文件验签、权限控制等操作</td>
27</tr><tr>
28<td> ssa</td><td>安全存储服务,提供对数据的可信存储,并保证数据机密性、完整性、原子性和不可复制性</td>
29</tr><tr>
30<td> huk service</td><td>硬件根秘钥访问控制管理</td>
31</tr><tr>
32<td> teemiscdrv</td><td>基础驱动,获取bootloader传入的共享内存信息</td>
33</tr><tr>
34<td> cryptomgr</td><td>提供加解密驱动框架 </td>
35</tr><tr>
36<td> TEE基础API</td><td>提供TA开发的API接口支持,包括加解密、安全存储、安全时间及TA2TA GP接口等</td>
37</tr><tr>
38<td> TEE驱动API</td><td>提供驱动开发的API接口支持,包括中断、IO、dma操作等</td>
39</tr><tr>
40<td> sample</td><td>提供加载tee的示例代码teeloader和atf tee适配示例代码tee_atf</td>
41</tr><tr>
42<td> test</td><td>提供tee测试套件 </td>
43</tr>
44
45</table>
46
47## tee_os_framework部件代码目录结构 ##
48```
49base/tee/tee_os_framework
50├── framework
51│   ├── gtask
52│   ├── teesmcmgr
53│   ├── drvmgr
54│   └── tarunner
55├── lib
56│   ├── drvlib                    # 给驱动和drvmgr提供的lib库
57│   ├── syslib                    # 只给TEE内部服务使用的lib库
58│   └── teelib                    # 给TA、服务提供的lib库
59├── drivers
60│   ├── tee_misc_drv
61│   ├── include
62│   └── crypto_mgr
63├── service
64│   ├── permission_service
65│   ├── huk_service
66│   └── ssa
67├── config
68│   ├── release_config            # release配置信息,特性宏等
69│   └── debug_config              # debug配置信息,特性宏等
70├── build
71├── test
72└── sample
73```
74
75## tee_os_framework构建指导 ##
76tee_tee_os_framework与tee_tee_os_kernel共同构建TEEOS,单独构建命令如下:
77
78```Bash
79./build.sh --product-name rk3568 --build-target tee --ccache
80```
81
82构建产物为TEEOS镜像:`base/tee/tee_os_kernel/kernel/bl32.bin`
83
84## 相关仓
85
86[tee_os_kernel](https://gitcode.com/openharmony-sig/tee_tee_os_kernel)
87