历经一年多时间的系统整理合补充,《手机安全和可信应用开发指南:TrustZone与OP-TEE技术详解 》一书得以出版,书中详细介绍了TEE以及系统安全中的所有内容,全书按照从硬件到软件,从用户空间到内核空间的顺序对TEE技术详细阐述,读者可从用户空间到TEE内核一步一步了解系统安全的所有内容,同时书中也提供了相关的示例代码,读者可根据自身实际需求开发TA。目前该书已在天猫、京东、当当同步上线,链接如下(麻烦书友购书时能给予评论,多谢多谢)

京东购买地址

当当购买地址

天猫购买地址

非常感谢在此期间大家的支持以及各位友人的支持和帮助!!!。

为方便和及时的回复读者对书中或者TEE相关的问题的疑惑,也为了大家能有一个统一的交流平台。我搭建了一个简单的论坛,网址如下:

https://www.huangtengxq.com/discuz/forum.php

关于您的疑问可在“相关技术讨论“”中发帖,我会逐一回复。也欢迎大家发帖,一起讨论TEE相关的一些有意思的feature。共同交流。同时该论坛中也会添加关于移动端虚拟化的相关技术的板块,欢迎各位共同交流学习

  

OpenTee的源代码可以从github上获取,在Linux中使用repo的方式可以获取到完整的OpenTee的所有源代码。repo链接如下:

repo init -u https://github.com/OP-TEE/manifest.git -m default.xml --repo-url=git://codeaurora.org/tools/repo.git

  下载完成之后,打开代码后可以发现OP-TEE的源代码目录结果如下图所示:

  该工程中各目录的作用介绍如下:

bios_qemu_tz_arm: 在qemu平台中运行tz arm的bios代码,启动最初阶段会被使用到,用来加载kernel, OP-TEE os image, rootfs并启动linux kernel和OP-TEE OS

build:这个工程的编译目录,里面包含了各种makefile文件和相关配置文件

busybox:busybox的源代码,用于制作rootfs的使用被使用到

gen_rootfs:存放制作rootfs时使用的相关脚本和配置文件

hello_work:一个示例代码,目录下包含了TA和CA部分的代码,在Linux shell端运行hello_world指令,就能调用CA接口,最终会穿到TEE中执行对应的TA部分的代码

linux:linux内核代码,在driver/tee目录下存放的是tee对应的驱动程序

optee_client:包含了CA程序调用的userspace层面的接口库的源代码。其中tee_supplicant目录中的代码会被编译成一个Binary,该binary主要的作用是,当调用CA接口,需要加载TA image时,TEE OS通过该binary从文件系统中来获取TA image,并传递給TEE OS,然后再讲TA image运行到TEE OS中。

optee_os:存放OP-TEE OS的源代码和相关文档

optee_test:opentee的测试程序xtest的源代码,主要用来测试TEE中提供的各种算法逻辑和提供的其他功能

out:编译完成之后输出目录(该目录编译完成之后才会生成)

qemu:qemu源代码

soc_term:在启动时与gnome-terminal命令一起启动终端,用于建立启动的两个terminal的端口监听,方便OP-TEE OS的log和linux kernel log分别输出到两个terminal中

toolchains:编译时需要使用的toolchain

1.OP-TEE代码结构相关推荐

  1. OVS代码结构(by quqi99)

    作者:张华 发表于:2021-12-28 版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本版权声明 ( http://blog.csdn.net/quqi99 ) 问题 ...

  2. 最全Pycharm教程(43)——Pycharm扩展功能之UML类图使用 代码结构

    版权声明:本文为博主原创文章,转载时麻烦注明源文章链接,谢谢合作 https://blog.csdn.net/u013088062/article/details/50353202 1.什么是UML ...

  3. 微服务实战之春云与刀客(三)—— 面向接口调用代码结构实例

    2019独角兽企业重金招聘Python工程师标准>>> 概述 在上一篇中提到了spring cloud 面向接口调用的开发风格,这一篇会举一个简单的但完整的例子来说明整个代码结构. ...

  4. Python外壳:代码结构!(IF WHILE FOR RANGE...)

    #:octothorpe 书中说它是八脚怪物!哈哈! 注释就要在前面加上一个#符号! 在print语句里,恢复正常的符号功能! \连接符号: 这个样子就不会一行输入很多的东西,读起来不舒服!功能也是一 ...

  5. [转]VSTO Office二次开发RibbonX代码结构

    前段时间,碰到对于PPT中控制一些命令的问题,也是很是查找了不少的资料,最后使用的是RibbonX的形式解决的,发现RibbonX也是如此的高效. 文章来自:<细品RibbonX(9):层次分明 ...

  6. 解读eXtremeComponents代码结构--转载

    原文地址:http://blog.csdn.net/lark3/article/details/1937466 大致整理了去年写的东西,罗列如下: ec是一系列提供高级显示的开源JSP定制标签,当前的 ...

  7. storm源码之storm代码结构【译】

    说明:本文翻译自Storm在GitHub上的官方Wiki中提供的Storm代码结构描述一节Structure of the codebase,希望对正在基于Storm进行源码级学习和研究的朋友有所帮助 ...

  8. c++服务器开发学习--02--MySQL,Redis,ASIO,iocp,TrinityCore代码结构,c++对象模型

    c++服务器开发学习--02--MySQL,Redis,ASIO,iocp,TrinityCore代码结构,c++对象模型 MySQL 问题 Redis Asio iocp TrinityCore代码 ...

  9. spring cloud云服务架构 - particle云架构代码结构讲解

    上一篇我们介绍了spring cloud云服务架构 - particle云架构代码结构,简单的按照几个大的部分去构建代码模块,让我们来回顾一下: 第一部分: 针对于普通服务的基础框架封装(entity ...

  10. python对话框代码_Python、tkinter、复杂对话框和代码结构

    当实现复杂的对话框(即,具有大约10个或更多窗口小部件的对话框,尤其是在多个框架中排列时),创建需要许多tkinter调用,当代码保持在单个方法中时,代码可能会变得越来越复杂(难以读取和维护).一般来 ...

最新文章

  1. mysql limit不要1_切记!MySQL中ORDER BY与LIMIT 不要一起用,有大坑
  2. Adobe Premiere Pro CC 2018下载安装方法讲解
  3. HDOJ-3785 寻找大富翁(优先队列)
  4. 不得不存!UI设计新手不可错过的7条实用法则
  5. java调用C++ DLL库方法
  6. 深入理解 ajax_xhr 对象
  7. 如何排查 .NET 内存泄漏
  8. php显示前60个字,DEDECMS中怎么让文章标题栏突破60个字符
  9. 20180917 - 机器学习与线性回归
  10. ASP.NET MVC Controller Overview摘录
  11. 清华大学 TUNA 协会
  12. 一起谈.NET技术,走向ASP.NET架构设计——第二章:设计/ 测试/代码
  13. 职位搜索引擎职友集开放招聘信息协议
  14. Oracle11g64位安装教程
  15. .NET和Java发展前景哪个好?
  16. 一线之间两重天--网络打印VS.共享打印 [转]
  17. BZOJ 1101([POI2007]Zap-满足x=ay=bgcd(x,y)=d的数对个数)
  18. 区块链与制造业【中美】发展报告
  19. 高数 | 一阶可导 一阶连续可导 二阶可导 二阶连续可导 为什么函数二阶可导却不能用两次洛必达法则?
  20. win10系统rar文件的正确打开方式

热门文章

  1. 微信小程序之图片上传 demo
  2. mysql单价乘以数量_数据库字段中存储的数据数量乘以不同单价的和的算法示例...
  3. 一篇文章了解LSTM
  4. 批量爬取巨潮资讯网中“贵州茅台”相关公告的PDF文件。
  5. Android游戏: 连连看
  6. 验证身份证号的工具类
  7. 程序员推荐的最简单有效的科学健脑…
  8. 店盈通:2021年巨头押注末端,同城即配提速
  9. ubuntu环境下制作win10启动盘,ubuntu安装图形化磁盘分区工具
  10. 如何通过日志恢复被删除的数据