- 博客(16)
- 资源 (8)
- 收藏
- 关注
原创 ATF学习 - BL31
主要是bl31_early_platform_setup2和bl31_plat_arch_setup。这2个函数可以在各个平台下进行配置。在各个平台下需要配置的函数有bl31_platform_setup,bl31_plat_runtime_setup。代码中可以看到,有2处C代码的实现,具体实现都在bl31/bl31_main.c中。下面看一下bl31_setup。这里先简单记录一下BL31在启动的时候的函数调用关系。用于BL31的移植。下面看一下bl31_main。
2023-11-16 15:41:26 192 1
原创 OPTEE学习笔记 - AArch64 RPC(二)
在前面的文章OPTEE学习笔记 - AArch64 RPC(一)中我们分析了fast call的AArch64 RPC。本文基于前文,分析一下std call的实现。我们以
2021-06-01 15:40:49 811
原创 OPTEE学习笔记 - AArch64 RPC(一)
https://cloud.tencent.com/developer/article/1611280https://blog.csdn.net/magicse7en/article/details/115104303https://chromium.googlesource.com/chromiumos/third_party/arm-trusted-firmware/+/v1.2/docs/interrupt-framework-design.md
2021-05-24 17:34:20 2659
原创 OPTEE学习笔记 - 驱动初始化
与前面的OPTEE学习笔记 - 驱动分享不同,本次基于kernel-5.12版本和aarch64来记录OPTEE在REE侧驱动的初始化过程。根据前文的描述,tee驱动初始化的起始处仍是subsys_initcall和module_init,只不过在kernel 5.12中,用module_platform_driver替换了module_init,但是效果是一样的。subsys_initcall的优先级要高于module_platform_driver,因此subsys_initcall注册的函数优先执
2021-05-08 16:24:50 1185
原创 OPTEE学习笔记 - 启动流程(二)
OPTEE学习笔记 - 启动流程(二)接上一篇OPTEE启动流程,本篇主要描述OPTEE被启动以后自己初始化的过程。由上篇文章可知,OPTEE第一个被执行的函数是__start
2021-02-15 00:42:43 659
原创 OPTEE学习笔记 - 启动流程(一)
根据最近的学习心得,准备记录一下optee的启动流程分析。在第一部分里,我着重介绍BL31启动optee(BL32)的过程,以及主核从核的启动流程。下一部分,我着重介绍optee的启动流程。我所参考的代码是optee-3.11.0,ATF-2.4,主要关注aarch64平台的启动流程。ATF启动流程大部分aarch64平台都会使用ATF(arm trusted firmware)固件进行启动,optee的启动属于框架中的BL32部分,是由BL31启动。ATF的启动流程可参考下图:上图可以
2020-12-29 10:20:20 4387 3
原创 ATF学习 - BL2
今天开始学习ARM Trusted Firmware相关的知识,继续学习BL2部分。BL1的学习在https://blog.csdn.net/orlando19860122/article/details/93327289。有了BL1部分的学习,BL2部分就轻松很多。#include <arch.h>#include <asm_macros.S>#include...
2019-09-19 23:00:46 1180
原创 ATF学习 - BL1
今天开始学习ARM Trusted Firmware相关的知识。参考https://blog.csdn.net/puyoupuyou/article/details/85046951atf的下载地址是https://github.com/ARM-software/arm-trusted-firmware,里面有一些介绍。今天的目的是学习其中BL1部分的代码,使用树莓派3b作为参考板,很多解释都...
2019-06-23 02:37:08 13289
原创 OPTEE学习笔记 - IPC
本文学习tee_supplicant的相关内容。以下是杂记,仅用做学习记录。学习代码均取自github和《手机安全和可信应用开发指南》(帅峰云,黄腾,宋洋)进程间通信,是系统中进程或线程之间的通信机制,本文介绍OPTEE系统中的IPC机制OPTEE的IPC机制主要满足OPTEE用户空间运行的线程调用其它线程,静态TA,安全驱动的需求。其核心原理是利用系统调用来访问其他线程或者安全驱动。当线...
2019-05-26 15:39:56 1266
原创 OPTEE学习笔记 - 线程管理
本文学习OPTEE侧线程管理的相关内容。以下是杂记,仅用做学习记录。学习代码均取自github和《手机安全和可信应用开发指南》(帅峰云,黄腾,宋洋)OPTEE中使用线程的方式来管理当前系统中需要运行的任务,当CA调用TA时,会通过调用thread_alloc_and_run函数来分配一个可用的线程来执行CA请求。根据OPTEE学习笔记 - REE与TEE通信一文中,在REE侧调用TEE侧进行初...
2019-04-27 22:14:21 1151
原创 OPTEE学习笔记 - tee_supplicant
本文学习tee_supplicant的相关内容。以下是杂记,仅用做学习记录。学习代码均取自github和《手机安全和可信应用开发指南》(帅峰云,黄腾,宋洋)tee-supplicant的入口Main函数为int main(int argc, char *argv[]){ struct thread_arg arg = { .fd = -1 }; int e; e = pthre...
2019-04-21 10:47:56 1157
原创 OPTEE学习笔记 - TEEC_RegisterSharedMemory
今天我们来看看TEEC_RegisterSharedMemory去注册一个共享内存的实现原理。TEEC_RegisterSharedMemory函数运行在libteec中,是为了注册一块在CA端的内存作为CA与TA之间的共享内存TEEC_Result TEEC_RegisterSharedMemory(TEEC_Context *ctx, TEEC_SharedMemory *shm){...
2019-03-19 22:35:34 1391
原创 OPTEE学习笔记 - CA调用TA流程
今天开始学习optee相关的代码,目的是弄清optee的执行逻辑,学习optee。以下是杂记,仅用做学习记录。学习代码均取自github和《手机安全和可信应用开发指南》(帅峰云,黄腾,宋洋)学习代码示例:void g_CryptoVerifyCa_Helloworld(void){ TEEC_Session l_session; /* Define the sessi...
2019-03-16 12:45:43 4727
原创 OPTEE学习笔记 - REE与TEE通信
本文以REE驱动的加载为例,描述REE侧驱动与TEE侧驱动通信的过程驱动的加载和初始化可以参考https://blog.csdn.net/shuaifengyun/article/details/72934531。已经做出较为详细的说明,这里对于其中一些更细节的内容做出一些记录,仅供学习参考。文中提到了optee_probe是建立optee驱动的最后一步,其中前半部分的操作大多数型如下:...
2019-03-15 21:56:01 6884 1
原创 OPTEE学习笔记 - 驱动
以optee在REE侧的驱动为例,学习LINUX驱动。可以参考https://blog.csdn.net/shuaifengyun/article/details/72934531OP-TEE驱动通过subsys_initcall和module_init宏来告知系统在初始化的什么时候去加载OP-TEE驱动,subsys_initcall定义在linux/include/init.h文件中。使用...
2019-03-12 22:38:21 1857
原创 【原创】Android5.1 Art Hook 技术分享
Hi,大家好,很多次的在各种技术论坛上看到大牛的分享,学到了很多。本着共建社区,共享知识的目的,在这里我和大家分享一下我最近研究到的关于Android5.1的ART HOOK方案。还是demo阶段,请大家多多指正。可以加我QQ 313199058一起探讨。
2015-09-16 22:32:34 2672 2
经典C51子程序,包括多种实用程序
2009-12-13
传感器大礼包,内含多种传感器应用方法
2009-07-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人