各位好!
关于OP-TEE最近看了相关的资料,有个问题没有理清楚:op-tee中,非安全的应用程序A调用客户端的API是如何将数据给安全应用程序B的?看了OP-TEE有关tee规范中客户端API和内部API的测试例子没有看出这一过程,麻烦大家给予指点
谢谢啦
A将数据传递给linux内核,linux内核将用户层数据拷贝到内核层,linux内核向守护进程申请一块共享内存,linux内核又把数据拷贝到共享内存,将数据所在的虚拟地址转为物理地址,将物理地址作为参数放在r1,r2中,产生svc中断传递给OPTEE,OPTEE再将物理地址转为虚拟地址,读取数据,床递给B
teelook你好
谢谢你的解答。
optee中读取数据,传递给B,B是不是要调用对应的TEE的API ,如TEE_ReadObjectData 才能获取数据?
teeklook你好
还想问下您:共享内存跟安全储存中的相关API有关联吗?共享内存中的数据需要经过安全存储这块才能被TEE系统获取吗??
谢谢
共享内存就是安全世界和非安全世界通信用的,比如安全世界应用调用安全存储API,API函数内部会申请共享内存,然后把加密过得数据存放在共享内存中发送给linux内核,内核再给linux守护进程,linux守护进程在把数据存储到linux文件系统中
你先把OPTEE的demo用在电脑上跑起来,跟踪下TEE_OPENSESSION和TEE_INVOKECOMMOND大体流程,就能大概搞清楚linux应用,linux内核,守护进程,OPTEE,OPTEE应用之间的关系了,再细致的看代码,我也是在没人教的情况下硬着头皮看了好几个月才看完的
恩恩,谢谢啦--teelook