TEE 开发中 遇到的环境问题 总结

我们把 CA 和TA   编译的依赖环境 统称为TDK  (Trust Develop Kit)

其中 TDK 目录 结构如下 :

├── Android.mk
├── ca_export_arm
│   ├── bin
│   ├── bin_android
│   ├── bin_softfp
│   ├── include
│   ├── lib
│   ├── lib_android
│   └── lib_softfp
├── ca_export_arm64
│   ├── bin
│   ├── bin_android
│   ├── include
│   ├── lib
│   └── lib_android
├── CHANGELOG.md
├── LICENSE
├── README.md
└── ta_export
│ ├── host_include
│ ├── include
│ ├── keys
│ ├── lib
│ ├── mk
│ ├── scripts
│  └── src

 

很明显, ca_export_arm 和 ca_export_arm64 是给CA 编译使用的依赖, ta_export 是给 ta 编译使用的依赖

由于项目太多,会经常遇到各种各样的奇怪问题 , 当你遇到奇怪问题,确认代码无误的时候, 需要立刻意识到 环境问题

1:CA 传输的数据 送往 ta 丢失 或者篡改

2:TA 操作 buffer 爆出 0xffff0001 错误

3:TA 的 fastcall 无法返回 

4:TA 的API  cmd 传递的buffer 数据被篡改

5:TA 无法被成功load 

遇到这样的问题,需要首先需要明确环境问题, 下面给出一个基本范式:

- TA 文件和 OPTEE OS   位数要相同

- libteec.so 和 tee-supplicant  要和系统保持一致, 且 是有同一个toolchains 编译出来的

- so文件也有32 bit 和 64 bit 区分,但是和 TA 文件bit 没有强相关


遇到这样的问题, 可以自己重新编译optee_client 代码 , OPTEE os  ,  重做TDK ,一定能解决问题

 

posted @ 2024-04-10 20:14  颜小雀  阅读(23)  评论(0编辑  收藏  举报