AVB专栏
文章平均质量分 76
AVB相关技术总结
楼中望月
这个作者很懒,什么都没留下…
展开
-
android AVB2.0(七)AVB移植经验
文章目录前言一、移植需求二、分解需求三、详细设计1. RSA密钥生成2. 镜像签名和生成vbmeta镜像3. VeritySetup程序设计3.1 主程序设计3.1 公钥比对接口设计3.2 读取vbmeta分区设计3.3 DM verity设计3.4 分区挂载校验总结前言本篇应该是AVB系列的最后一篇博客了,前面的六篇博客基本上把AVB涉及到的技术点都过了一遍,因为平时要开发项目比较忙 所以有点时间就上来写写,文笔不是很好 大家将就着看看了~~感兴趣的朋友可以从这里开始android AVB2.0原创 2021-12-24 11:19:35 · 5639 阅读 · 6 评论 -
android AVB2.0(六)Super动态分区介绍
文章目录一、Super分区是什么?二、Super分区工作原理三、Super分区的配置和编译1.分区表的配置2. Super镜像的编译2.1 Super镜像的编译日志2.2 Super镜像的生成过程四、Super分区在AVB中的校验一、Super分区是什么?Super分区,也叫dynamic动态分区,动态分区是 Android 的用户空间分区系统,在Android R版本开始引入。android引入了super动态分区的设计,目的是为了解决像system,vendor等分区size大小不能动态调整的问题原创 2021-12-23 21:03:56 · 16347 阅读 · 4 评论 -
android AVB2.0(五)Device Mapper和Dm verity详解
文章目录一、Device Mapper1. Device Mapper概述2. Device Mapper的使用二、Dm Verity1. Dm Verity验证思想2. Hashtree脚本处理2.1 镜像编译2.2 创建verity tree2.3 创建metadata3. Dm verity设备的创建3.1 SetUpDmVerity函数3.2 hash table处理一、Device Mapper1. Device Mapper概述Device mapper是LINUX提供的一种逻辑设备到物理原创 2021-12-23 20:41:29 · 7347 阅读 · 1 评论 -
AVB之镜像的签名及验证签名详解
文章目录1.签名流程1.1 镜像的签名1.2 镜像的内容2.验证镜像的hash和signature签名2.1 计算hash2.2 验证签名1.签名流程我们以一下空的dtbo.img镜像为例,进行说明1.1 镜像的签名调用external/avb/avbtool.py脚本的add_hash_footer 函数@build/core/Makefile# dtbo imageINSTALLED_DTBOIMAGE_TARGET := $(PRODUCT_OUT)/dtbo.img$(INSTALL原创 2021-12-23 17:03:48 · 6091 阅读 · 1 评论 -
android AVB2.0(四)libavb库介绍
本篇android AVB2.0学习总结系统的第四篇,接上篇[android AVB2.0(三)Init阶段安全启动流程], 这里介绍一下libavb库的详细实现。(https://blog.csdn.net/jackone12347/article/details/120088394)首先要介绍一下本篇文章的两个目标,带着这两个目标我们来分析一下libavb库的实现。1、android AVB是如何完成verify校验这项任务的?2、采用了什么样的设计来完成verify校验任务?上篇内容之一:“I原创 2021-12-02 17:23:48 · 5696 阅读 · 7 评论 -
android AVB2.0(三)Init阶段安全启动流程
文章目录概要一、Init中哪个阶段校验及校验哪些分区?二、Init代码分析FirstStageMount流程FirstStageMountVBootV2校验流程概要前提:本篇android AVB2.0学习总结系统的第三篇,前面两篇分别介绍了AVB2.0的配置,和Uboot中的AVB校验流程。本篇将介绍Android Init阶段如何校验,以及相关会涉及的技术知识点。本篇文档是基于android R版本代码。============原创不易,转载就注明出处:https://editor.c.原创 2021-09-03 21:12:02 · 6308 阅读 · 1 评论 -
AVB Digest转换成ASCII码
有AVB验证过程中,有时候要计算最后计算出来的digest,是否和calculate_vbmeta_digest命令计算的值相等,需要将十六进制的数据转换成ascii码转换的方法如下 char Digest[32] = {0xa,0xb,0xc,0xd,0x1,0x2,0x3,0x4,0x1,0x2,0x3,0x4,0x1,0x2,0x3,0x4,0x1,0x2,0x3,0x4,0x1,0x2,0x3,0x4,0x1,0x2,0x3,0x4,0x1,0x2,0x3,0x4}; char HexDi原创 2021-09-03 14:59:12 · 387 阅读 · 0 评论 -
AVB2 avbtool.py脚本常用命令
AVB2 avbtool.py脚本提供了一些非常实用的命令,便于编译完版本后可以查看镜像的一些信息,便于调试的时候使用。1. info_image在源码根目录下执行如下info_image就可以查看vbmeta.img镜像中的情况了./android/external/avb/avbtool.py info_image --image android/out/target/product/xxx/vbmeta.img显示类似如下内容:Minimum libavb version: 1.0H原创 2021-09-01 14:33:22 · 3064 阅读 · 1 评论 -
AVB中将公钥转换成字符数组头文件的实现
之前有同事问到如何将一个公钥,转换成与之对应的.h头文件,然后头文件中是公钥的字符数组。实现其实也比较简单,主要有如下几个步骤,跟着我的步骤就可以实现:1、先生成一个私钥这部分就自己openssl自己生成一个就可以了。2、抽出私钥对应的public key直接调用android提供的avbtool.py脚本就可以实现./avbtool.py extract_public_key --key yourprivate.key --output mypublickey.bin3、生成.h头文件.原创 2021-08-16 17:18:22 · 1969 阅读 · 5 评论 -
android AVB2.0(二)Uboot阶段AVB2.0校验流程
android AVB2.0学习总结传送门本篇属于android AVB2.0学习总结系列的第二篇文章,本篇主要介绍一下UBOOT或者UEFI阶段AVB2.0的介绍。因为google对UBOOT或者UEFI阶段的AVB校验是没有标准的,各厂家都可以进行定制。虽然没有标准,但是google给出了建议的启动流程,各芯片厂家一般都会向这个靠齐。google建议的启动流程图如下:没怎么搞过AVB的同学,看到这张图,估计也不大清楚google想表示啥。我琢磨过一阵子,撸过相关的code,这里就给大家讲一下原创 2021-08-14 18:53:39 · 8560 阅读 · 1 评论 -
android AVB2.0(一)工作原理及编译配置
android AVB2.0学习总结(一)原创 2021-07-23 19:50:35 · 21775 阅读 · 14 评论 -
android AVB2.0学习总结
看了一阵子android AVB2.0相关的内容,准备梳理一下相关知识点。平时一般都用word整理,现在想想感觉还是用CSDN来整理看着直观些,方便自己查看的同时,也把自己学到的知识与其他人分享,共勉!因为AVB相关的内容比较多,一篇博客可能写不清楚里面的实现细节,所以准备分如下几个部分来介绍,得抽出总够的时间来码字和做图。一、AVB2.0介绍AVB2.0的工作原理vbmeta镜像介绍二、AVB2.0的配置和编译AVB的配置开关AVB key配置介绍AVB编译镜像三、Uboot阶段安全启动原创 2021-04-28 19:51:33 · 9585 阅读 · 7 评论