【FAQ】全志R329如何在Tina安全应用程序调试?
-
问题描述
客户将Tina上的安全应用移植到自己的SDK,编译完成后,执行时出现如下问题:
printf(“NA:open session\n”);
teecErr = TEEC_OpenSession(&ctx, &teecSession, &ta_UUID,
TEEC_LOGIN_PUBLIC, NULL, NULL, NULL);在打印了NA:open session后,卡在了TEEC_OpenSession后面就没走了。
问题分析
TEEC_OpenSession函数作用是建立一个指定NA(非安全程序)与指定TA(可信程序)之间的通信通道。
在此处出错,表明NA与TA建立不了联系,可能原因有多种。
首先要对NA与TA通信过程要有整体了解,才确认在哪个节点出现问题。
解决办法
了解NA与TA通信流程。如下图所示:
整个通信设计5个模块: NA <-> optee_client <-> linux驱动(driver/tee/optee)<-> optee(闭源)-> TA。
在上述每个过程中都可能出现问题。下一步,检查每个模块是否工作正常。
optee_client。 optee_client提供NA使用的libteec库,以及tee-supplicant后台应用程序。
确保rootfs中有包含该库与应用程序,同时tee-supplicant有在后台运行。linux驱动。 检查内核配置有没有开CONFIG_TEE与CONFIG_OPTEE。启动后,检查是否存在tee的设备节点/dev/tee0与/dev/teepriv0。
由于optee为闭源,可以先从NA查到linux驱动,比如TEEC_OpenSession这个最终会调用到内核driver/tee/tee_core.c中的tee_ioctl_open_session函数。检查上述流程是否存在问题。
TA。TA也是客户自己开发。NA与TA交互接口如下图所示。比如本例NA调用TEEC_OpenSession,会与TA中的TA_CreateEntryPoint与TA_OpenSessionEntryPoint接口交互,可以在这两个接口中加入打印,看是否有到达TA。
如果最终确认是optee中的问题,可以找AW内部安全负责人进行处理。
-
-
-
-
-
Copyright © 2024 深圳全志在线有限公司 粤ICP备2021084185号 粤公网安备44030502007680号