本书组织结构

本书将采取由浅入深的方式介绍TrustZone技术的原理、OP-TEE的整体架构及其主要功能模块的原理,同时介绍如何基于OP-TEE进行可信应用、客户端应用(Client Application, CA)、安全驱动等功能的开发。

本书主要分为四篇,总计25章,各篇的主要内容分别如下。

□ 第一篇,基础技术篇(第1章~第4章),包含TrustZone技术的背景和实现原理、系统基本框架以及OP-TEE环境的搭建。

□ 第二篇,系统集成篇(第5章~第9章),分析OP-TEE在REE和TEE中各个组件的作用和联系,对于有一定嵌入式以及Linux/Android开发经验的读者,该篇实质上给将OP-TEE集成到基于ARMv7/ARMv8处理器的开发平台打下基础。

□ 第三篇,OP-TEE内核篇(第10章~第17章),包含OP-TEE内核的中断处理、线程管理和通信等主要功能的实现原理,使读者对TEE OS的架构设计有进一步认识。

□ 第四篇,应用开发篇(第18章~第25章),介绍基于OP-TEE在加密、解密、安全存储等方面的实际应用,以及如何开发基于OP-TEE的可信应用程序。如果对OP-TEE有一定了解的读者希望通过实践开发来了解TEE的工作原理,可以直接从应用开发篇学习。

OP-TEE的代码量远没有Linux内核大,但其涉及的设计之复杂、模块之丰富也不是本书能完全涵盖的。我们的初衷是希望通过本书对重要模块的代码和流程进行分析,使读者对OP-TEE的架构有整体的认识,之后看到其他部分也能做到举一反三。

本书的主要代码均引用自GitHub上OP-TEE开源项目的源代码(链接:http://github.com/OP-TEE/optee_os),作者在翻译了一些代码英文注释的基础上根据自己的理解对部分代码补充了更多的注释。如果读者对书中代码的中文注释有疑问,可参考上述链接中的原始代码和注释。另外,OP-TEE也有详细的文档资料(http://github.com/OP-TEE/optee_os/tree/master/documentation),强烈建议英文基础好的读者结合本书和官方文档来学习。如发现本书有纰漏和错误,或者需要改进之处,希望读者不吝指出。