- 博客(32)
- 资源 (21)
- 问答 (1)
- 收藏
- 关注
原创 [How TO]-virtualbox下安装ubuntu14.04超详细
点击新建点击下一步注意,内存一定不要太大,点击下一步点击创建下一步下一步创建点击设置找到ubuntu14的镜像点击启动勾选第一行,这里不会清除你的磁盘,放心好了
2020-08-25 17:06:19 4166 2
原创 博客笔记导读目录-temp
1、理论基础篇typetitlereservedcore1、optee栈的介绍2、optee中断的介绍3、optee同步机制的介绍4、optee中smc的介绍5、optee中MMU介绍6、optee中的页面管理7、optee中的share-memoryreservedcryptoreservedreservedDevice TreereservedreservedFile StructurereservedreservedGP API
2020-08-20 00:37:23 1192
原创 [optee]-optee的加解密接口的介绍
目录1、算法的注册2、算法的实现 --- 举例(1)、aes(2)、hash3、在TA中使用这些算法(1)、rsa-encrypt/rsa-decrypt(2)、rsa-sign\rsa-verify(3)、hash★★★ 友情链接 : 个人博客导读首页—点击此处 ★★★1、算法的注册再service_init阶段,调用了tee_ltc_reg_algs()注册系统的各类算法.(ltc是libtomcrypt的缩写)service_init(tee_cryp_init) --> tee_cr
2020-08-18 14:31:16 2140
原创 [ATF]-ATF启动--BL31跳转到optee和uboot
1、bl31_main在有些厂商的设计中,ATF并不是BOOTROM加载的第一个启动镜像,可能是这样的:BOOTROM—>PL---->ATF—>optee—>uboot…, 在PL阶段就已经了ATF/OPTEE/UBOOT镜像的load.所以我们的ATF在BL31阶段就不负责oad BL32/BL33镜像到内存了,在我们的ATF的BL31阶段,找到BL32/BL33镜像地址,然后跳转即可.bl31_main调用bl31_prepare_next_image_entry()找
2020-08-18 13:17:47 6643
原创 linux kernel内存管理学习篇
目录1、DDR的注册(1)、在dts中定义了DDR(memory)的范围(2)、将DDR地址范围注册到linux kernel2、reserved-memory的注册(1)、在dts中定义了reserved-memory的范围(2)、将reserved memory信息告知给linux kernel1、DDR的注册(1)、在dts中定义了DDR(memory)的范围memory@0 { device_type = "memory"; reg = <0x0 0x80
2020-08-17 14:09:43 3262
原创 [toolchains]-ARM ToolChains介绍
目录1、toolchains版本的介绍2、toolchains中的命令介绍3、objdump的详细使用1、toolchains版本的介绍在linaro官网有众多toolchains的版本,目前比较常用的是4.9-2016.02Parent Directoryfolder 4.9-2016.02 - folder 4.9-2017.01 - folder 5.1-2015.08 - folder 5.2-2015.11 - folder 5.2-2015.11-1 - folder
2020-08-17 12:07:11 4343 1
原创 [ATF]-TEE/REE系统切换时ATF的寄存器的保存和恢复
ATF点滴1、设置运行时栈SP2、寄存器的保存和恢复的实现3、寄存器的保存和恢复的使用场景1、设置运行时栈SPbl31_entrypoint—>el3_entrypoint_common---->plat_set_my_stack—>platform_set_stack—>platform_get_stack动态找到该cpufunc platform_set_stackmov x9, x30 // lrbl platform_get_stackmov sp, x0r
2020-08-13 20:43:21 1158
原创 [optee]-TA的签名和验签
TA签名验签1、TA的签名2、TA的验签1、TA的签名在optee或sdk的目录下,有一个default_ta.pem(RSA2048 priv key)和sign.py签名脚本. 在编译TA结束后,会使用这个脚本和key对TA进行签名…export-ta_arm64/keys/default_ta.pemexport-ta_arm64/scripts/sign.py在编译TA时,会调用到TA中的link.mk, 在该文件文件中可以看到rsakey和签名脚本sign.py的引用和makefil
2020-08-12 19:52:50 14458
原创 [optee]-opteeTA启动的过程(open_ta的过程)
open TA1、open TA的两种方式2、TA的分类 & 查询TA的顺序(1)、Look for already loaded TA(2)、Look for pseudo TA(3)、Look for user TA1、open TA的两种方式在CA中TEEC_OpenSession()打开一个TA在TA中TEE_OpenSession()打开一个TA如下图所示,是打开一个user_ta的过程,最终都是调用了rpc_load,然后再调用shdr_verify_signature()验
2020-08-12 18:18:51 3602
原创 linux kernel中__setup()函数介绍
setup1、__setup使用示例2、__setup宏原理3、__setup链接函数的调用1、__setup使用示例我们先看一个例子,在driver中,定义下面这一段函数,并加上__setup注册static int __init skip_initramfs_param(char *str){ if (*str) return 0; do_skip_initramfs = 1; return 1;}__setup("skip_initramfs", skip_initramfs_p
2020-08-12 15:24:49 5831
原创 linux kernel中的cmdline的详细介绍
cmdline1、跳转linux kernel之前-准备cmdline2、kernel启动-解析cmdline1、跳转linux kernel之前-准备cmdline在跳转linux kernel之前(如uboot中),将cmdline数据放到了FDT中,然后将FDT的地址写入到了X0中。然后再跳转linux kernel.别问我怎么知道的,请看kernel-4.14/Documentation/arm64/booting.txtBefore jumping into the kernel, the
2020-08-12 15:02:07 17411 2
原创 [optee]-optee中的异常向量表的实现
Optee异常向量表ARMV8-aarch641、optee中定义的异常向量表2、optee中设置向量表基地址VBAR_EL1ARMV8-aarch32、ARMV7-aarch32分析optee中的向量表,我们注意看两件事:软件中定义的向量表,是否和ARM文档中的向量offset一致向量表的基地址是否写入到了VBAR寄存器ARMV8-aarch641、optee中定义的异常向量表(core/arch/arm/kernel/thread_a64.S) .section .text.threa
2020-08-12 11:54:32 2820
原创 [trustzone]-ARM Core的扩展和ELx级别的切换过程
目录1、ARM Core的扩展 : 增加SCR.NS bit位2、ELx级别的切换过程1、ARM Core的扩展 : 增加SCR.NS bit位在ARMv8中,增加了SCR_EL3寄存器只有SCR_EL3,没有SCR_EL1和SCR_EL2只有EL3等级下才能读写此寄存器.NS 标记processor element的secure/non-secure的安全位IRQ、FIQ标志中断是routing到EL3是routing到ELx. 如果为1则routing到EL3ARM Core扩展后的软件
2020-08-11 20:16:52 2730 1
原创 [trustzone]-ARM trustzone技术下常见的软件框图
常用软件框图1、常用的系统软件框图2、指纹软件框图3、Gatekeeper的软件框图1、常用的系统软件框图2、指纹软件框图3、Gatekeeper的软件框图
2020-08-11 20:06:57 2831 1
原创 [trustzone]-ARM Trustzone架构下的软件框图
官方框图1、ARMv72、ARMv8(1)、aarch32(2)、aarch64(3)、arch32和aarch64总结3、Cortex-A9 architecture1、ARMv72、ARMv8(1)、aarch32(2)、aarch64(3)、arch32和aarch64总结有关armv7下aarch32和aarch64的理解:如果secureos和monitor都是64位,secureos跑在el1, monitor跑在el3;如果secureos和monitor都是32位,s
2020-08-11 19:58:30 1790 1
原创 linux kernel中的中断处理流程
目录1、linux kernel arm32的中断函数处理流程(1)、irq_handler宏(2)、arch_irq_handler_default 宏(3)、调用了asm_do_IRQ2、linux kernel arm64的中断函数处理流程(1)、irq_handler宏 调用handle_arch_irq(2)、handle_arch_irq(3)、gic_handle_irq()(4)、handle_domain_irq()---->__handle_domain_irq()---->
2020-08-11 12:15:29 3168
原创 linux kernel中的栈的介绍
目录1、linux kernel中的中断irq的栈stack(1)、arm32体系的irq的栈(2)、arm64体系的irq的栈2、linux kernel中的进程栈stack(1)、概念介绍:内核栈、内核空间进程栈、用户空间进程栈(2)、内核栈 的实现(2)、内核进程栈、用户进程栈 的实现1、linux kernel中的中断irq的栈stack(1)、arm32体系的irq的栈如下结构体描述了IRQ mode的栈,很小,只有12bytes。那是因为在linux kernel arm32体系中,真正的
2020-08-11 11:27:56 3059 1
原创 [ARM异常]-ARM Core中与中断相关的寄存器
目录1、PSTATE中的DAIF中的I和F2、SCR_EL3, Secure Configuration Register1、PSTATE中的DAIF中的I和Fstatic inline void arch_local_irq_enable(void){ asm volatile( "msr daifclr, #2 // arch_local_irq_enable" : : : "memory");}static inline void arch_local_irq_dis
2020-08-10 17:19:45 3548 1
原创 [gic]-ARM gicv3/gicv4的详细介绍-2020/08
gic,gicv2,gicv3,中断控制器,IRQ,FIQ,Serror, 中断,同步异常,异步异常,TF-A,TF-M,ATF,TrustedFirmware,trustzone,TEE,optee,trusty,tlk,lk,armv8,armv9,arm,secureboot,BL31,BL32,BL1,BL2,hypervisor,终端安全,secureboot,security,virtulization
2020-08-10 16:58:51 7369 1
原创 linux kernel中设置向量表基地址
这目录1、linux kernel的arm32下设置向量表基地址VBAR2、linux kernel的arm64下设置向量表基地址VBAR在linux kernel中,是如何设置向量表基地址的(如何设置VBAR的)?1、linux kernel的arm32下设置向量表基地址VBAR(1)、在entry-armv.S中,软件中定义了向量表__vectors_start是向量表基地址,vector_irq/vector_fiq是向量表中的offset需要将__vectors_start基地址写入到VB
2020-08-10 14:45:30 2375 1
原创 Android Security视频学习合集
目录1、Android Gatekeeper精讲![在这里插入图片描述](https://img-blog.csdnimg.cn/20200808145510609.JPG?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3dlaXhpbl80MjEzNTA4Nw==,size_16,color_FFFFFF,t_70)请扫码到哔哩哔哩看视频1、Andro
2020-08-08 14:55:33 1086
原创 在linux、optee、ATF中的中断异常向量表
目录1、在linux中的异常向量表(1)、arm64的异常向量表-(irq,fiq,svc......)(2)、arm32的异常向量表-(irq,fiq,swi......)2、在optee中的异常向量表3、在ATF中的异常向量表(1)、同步异常向量表-(smc)handle_sync_exception调用smc_handler64处理同步异常(2)、异类步异常向量表-(irq,fiq...)get_interrupt_type_handler获取ATF注册的中断处理函数handle_interrupt_
2020-08-08 14:25:41 2514
原创 [ARM异常]-ARM Core如何响应中断的
目录1、51单片机的中断响应模型2、ARM的异常有哪?3、ARM的异常向量表基地址4、ARM的向量表offset1、51单片机的中断响应模型我们先回忆一下在单片机上的中断的使用。如下图所示,左边是51单片机的管脚图,P3.0-P3.5是单片机对应的中断管教,当该管教电平发生变化时,触发cpu异常。当cpu来了一个异常时(中断),cpu跳转到异常向量地址处,执行handler函数,执行完毕后再回来那么cpu异常时,跳转的是哪个地址呢,其实这都是cpu出厂时设计好的。如下图所示,左边是cpu设计好的
2020-08-08 14:15:53 4057 1
原创 TEE Internal core API介绍(globalplatform)
目录一、TEE的API介绍1、Cryptographic Operations API 加解密函数介绍(1)、Generic Operation FunctionsTEE_AllocateOperationTEE_FreeOperationTEE_SetOperationKeyTEE_SetOperationKey2(2)、Message Digest Functions 消息摘要TEE_DigestUpdateTEE_DigestDoFinal(3)、Symmetric Cipher Functions
2020-08-07 18:12:54 2466 1
原创 android密码解锁/指纹解锁返回的authToken深度解剖
目录1、authToken是什么2、authToken代码精读(1)、AddAuthenticationToken(2)、FindAuthorization(3)、AddAuthenticationToken1、authToken是什么在android中authToken是一串标致调用者身份的数据,是一个结构体.在gatekeeper和fingerprint的鉴权成功后(verify成功后),都会返回一个authToken给android,然后加入到auth_token_table表中, 该表最大存储
2020-08-07 14:13:32 4758
原创 Android Gatekeeper流程深度解剖
1、先来张整体的软件框图2、enroll和verify的调用流程4、关键函数的介绍(1)、writeCredentialHash //将enroll_handle保存到文件如果是password,保存到passwordFilename, patterFilename写入空如果是patter,保存到patterFilename, passwordFilename写入空frameworks/base/services/core/java/com/android/server/locksettin
2020-08-06 21:12:16 4634 16
原创 详解android gatekeeper/fingerprint中的authToken
文章目录1、authToken是什么?2、authToken的填充3、authToken的保存1、authToken是什么?在密码或指纹验证通过后(verify通过后),需返回一个authToken值,然后交由keystore保持起来. 以下是gatekeeper的verify产生authToken和调用keystore保存authToken的流程图:2、authToken的填充在gatekeeper TA的verify()通过后,对填充authToken结构体,然后再返回。(hardware/l
2020-08-06 15:46:25 3031 1
原创 Android keystore/Keymaster的代码导读
1、先上架构图:2、keyMaster Hal接口(system/keymaster/include/keymaster/android_keymaster.h)class AndroidKeymaster { public: AndroidKeymaster(KeymasterContext* context, size_t operation_table_size); virtual ~AndroidKeymaster(); AndroidKeymaster(Andr
2020-08-05 13:48:29 6307
原创 linux kernel中的module_init/initcall代码导读
在kernel/include/linux/module.h中#define module_init(x) __initcall(x);在kernel/include/linux/init.h中,定义了一堆宏#define pure_initcall(fn) __define_initcall(fn, 0)#define core_initcall(fn) __define_initcall(fn, 1)#define core_initcall_sync(fn) __define_ini
2020-08-04 19:56:14 2296
原创 [专栏目录]-Android专栏目录
英文缩写简写全称reservedSPISerial Peripheral interfacereservedAIArtificial Intelligence人工智能NB-IOTNarrow Band-Internet of Thingsreservedreservedreservedreservedreservedreservedreservedreservedreservedreservedreservedreserv
2020-08-04 15:02:57 1235
嵌入式Linux C语言初学者项目实践:火车票订票系统
2023-04-12
GPD_TEE_TUI_Extn_Biometrics_API_v1.0_PublicRelease_2018_04_03.pdf
2021-08-05
GPD_TEE_Internal_Core_API_Specification_v1.3_PublicRelease.pdf
2021-08-05
ARM-gic官方文档资料打包下载-gicv2v3-gic500等.rar
2020-07-12
armv8指令详细介绍-官方pdf文件112页.rar
2020-07-12
基于英飞凌产品的汽车EPS方案介绍
2023-06-23
面向安全要求严苛的应用的飞思卡尔双核控制器系列
2023-06-23
汽车电动助力转向系统的研究与方案-英飞凌
2023-06-23
支持ASIL D 应用的安全集成硬件解决方案
2023-06-23
论文:函数信号发生器制作
2023-06-23
论文:单相电参数测量仪
2023-06-23
基于51单片机循迹智能小车
2023-06-23
C8051F005小车自动控制
2023-06-23
AT89C51红外避障小车
2023-06-23
电动车跷跷板-全国大学生电子设计竞赛
2023-06-23
电动智能小车(完整论文)
2023-06-23
python英文批量翻译成中文?
2021-08-23
TA创建的收藏夹 TA关注的收藏夹
TA关注的人