Android AVB 分析专栏文章导读
如果你希望从较高层次快速了解 Android AVB 原理,网上任何一篇介绍 AVB 的文章都可以满足。
本《Android AVB 分析》专栏以实战+原理的方式,展示 Android AVB 的实现和工作方式,中间通过多个实验手动验证数据,以实战的方式展示包括 hash 计算, hashtree 计算, FEC 计算,镜像格式和签名验证, dm-verity 设备的创建,使用 FEC 纠错等操作,让你对 Android AVB 有一个较为深入和全面的把握,适合一线工作的工程师,以及希望学习 AVB 原理的学生。
整个专栏前面 10 篇免费公开,10 篇后较为深入的介绍 dm-verity 的原理和 FEC 功能,如果您需要深入 dm-verity 以及 FEC 纠错等,可以考虑订阅本专栏付费部分。
不论有没有订阅付费专栏,都欢迎加我微信拉你进 AVB 讨论群和大家一起讨论,一群人讨论学习远比一个人闷头研究轻松很多,详细练习方式见文末。
1. 快速入口
-
- https://blog.csdn.net/guyongqiangx/article/details/146452369
-
- https://blog.csdn.net/guyongqiangx/article/details/146457755
-
Android AVB 分析(二)AVB 2.0 自述文档(注释提问版)
- https://blog.csdn.net/guyongqiangx/article/details/146997926
-
Android AVB 分析(三)boot.img 到底包含了哪些数据?
- https://blog.csdn.net/guyongqiangx/article/details/144479713
-
Android AVB 分析(四)system.img 到底包含了哪些数据?
- https://blog.csdn.net/guyongqiangx/article/details/144486051
-
- https://blog.csdn.net/guyongqiangx/article/details/144479669
-
Android AVB 分析(六)FEC 数据到底是如何生成的?
- https://blog.csdn.net/guyongqiangx/article/details/144487615
-
Android AVB 分析(七)VBMeta 数据是如何生成的?
- https://blog.csdn.net/guyongqiangx/article/details/144655275
-
Android AVB 分析(八)VBMeta 数据解析和签名验证实战
- https://blog.csdn.net/guyongqiangx/article/details/144655337
-
Android AVB 分析(九)Auxiliary Data 包含了哪些描述符和公钥?
- https://blog.csdn.net/guyongqiangx/article/details/144753748
-
Android AVB 分析(十)AVB 有哪些相关的源码?
- https://blog.csdn.net/guyongqiangx/article/details/144936814
-
Android AVB 分析(十一)bootloader 是如何进行 verify boot 检查的?
- https://blog.csdn.net/guyongqiangx/article/details/144995975
-
Android AVB 分析(十二)嵌入式设备安全中的 dm-verity 简介
- https://blog.csdn.net/guyongqiangx/article/details/145042060
-
Android AVB 分析(十三)dm-verity 设备是如何映射的?
- https://blog.csdn.net/guyongqiangx/article/details/145211172
-
Android AVB 分析(十四)fs_libavb 是做什么用的?
- https://blog.csdn.net/guyongqiangx/article/details/147189681
-
Android AVB 分析(十五)system 分区是如何挂载为 dm-verity 设备的?
- https://blog.csdn.net/guyongqiangx/article/details/147189715
-
Android AVB 分析(十六)5 个例子彻底理解 FEC(Reed-Solomon) 的工作原理
- https://blog.csdn.net/guyongqiangx/article/details/145865175
-
Android AVB 分析(十七)程序员的FEC(Reed-Solomon)编码实战
- https://blog.csdn.net/guyongqiangx/article/details/145865276
-
Android AVB 分析(十八)Android 镜像中的 FEC 数据是如何计算出来的?
- https://blog.csdn.net/guyongqiangx/article/details/145962808
-
Android AVB 分析(十九)Android 镜像中的 FEC 到底能纠正多少错误?
- https://blog.csdn.net/guyongqiangx/article/details/145972996
-
Android AVB 分析(二十)Android 官方 FEC 文档解读
- https://blog.csdn.net/guyongqiangx/article/details/145973033
2. 简要介绍
- Android AVB 挑战,100 个问题你能回答几个?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/146452369
- 内容:基于 AVB 基础原理,源码相关,镜像布局,相关工具,镜像数据的签名和验证,dm-verity 的底层机制, FEC 纠错原理和能力,AVB 的打开和关闭,Rollback 原理,数据存储位置等 10 个方面提出了 100 道题,用来检验对 AVB 的熟悉程度。
- Android AVB 分析(一)AVB 到底该如何学习?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/146457755
- 内容:
- AVB 是什么?
- AVB 包含了哪些东西?
- AVB 该怎么学?
- AVB 学习参考资料推荐
- Android AVB 分析(二)AVB 2.0 自述文档(注释提问版)
- https://blog.csdn.net/guyongqiangx/article/details/146997926
- 内容:
- Android AVB 自带的 README.md 文档中文翻译
- 基于 README.md 文档的解释,强哥的注释和提出的问题
- Android AVB 分析(三)boot.img 到底包含了哪些数据?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/144479713
- 内容:
- 如何编译 AOSP 参考平台的源码,以及收集 avbtool 日志
- 分析 Android 编译中 avbtool 对 boot.img 所做的操作
- 使用 avbtool 查看 boot.img 信息
- 详细分析 boot.img 的镜像文件结构
- 手动查看 boot.img 的 AVB Footer 和 VBMeta 数据
- 手动验证 boot.img 带 Salt 的哈希值(Digest)
- Android AVB 分析(四)system.img 到底包含了哪些数据?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/144486051
- 内容:
- 分析 Android 编译中 avbtool 对 system.img 所做的操作
- 使用 avbtool 查看 system.img 信息
- 详细分析 system.img 的镜像文件结构
- 手动查看 system.img 的 AVB Footer
- 手动验证 system.img 带 Salt 的 hashtree 数据生成
- 手动查看 system.img 的 FEC 数据
- 手动查看 system.img 的 VBMeta 数据
- Android AVB 分析(五)哈希树到底是如何生成的?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/144479669
- 内容:
- 使用 avbtool 给 system.img 添加 hashtree 数据
- 使用 avbtool 查看 system.img 信息
- system.img 的 hashtree 数据生成过程分析
- system.img 的 hashtree 数据布局计算
- 手动验证 system.img 的 hashtree 数据
- Android AVB 分析(六)FEC 数据到底是如何生成的?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/144487615
- 内容:
- 使用 fec 工具预估 system.img 的 FEC 数据大小
- 使用 fec 工具生成 system.img 的 FEC 数据
- 使用 avbtool 解析 FEC 数据信息
- 手动验证 system.img 镜像的 FEC 数据
- 手动解析 FEC Footer
- Android AVB 分析(七)VBMeta 数据是如何生成的?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/144655275
- 内容:
- boot.img 镜像中的 VBMeta 数据生成过程分析
- system.img 镜像中的 VBMeta 数据生成过程分析
- vbmeta.img 镜像中的 VBMeta 数据生成过程分析
- AvbVBMetaHeader 数据解析和布局总结
- Android AVB 分析(八)VBMeta 数据解析和签名验证实战
- 链接:https://blog.csdn.net/guyongqiangx/article/details/144655337
- 内容:
- 手动解析查看 boot.img 的 AVB Footer
- 手动标注 boot.img 的 VBMeta 数据
- 手动验证 boot.img 的 VBMeta 数据
- 手动提取 vbmeta 中的公钥数据
- 使用手动提取的公钥数据验证 vbmeta 签名
- Android AVB 分析(九)Auxiliary Data 包含了哪些描述符和公钥?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/144753748
- 内容:
- 介绍 Auxiliary Data Block 构成
- VBMeta 中的 5 种描述符总结
- AvbHashDescriptor
- AvbHashtreeDescriptor
- AvbChainPartitionDescriptor
- AvbPropertyDescriptor
- AvbKernelCmdlineDescriptor
- 公钥数据分析
- AvbRSAPublicKeyHeader
- Android AVB 分析(十)AVB 有哪些相关的源码?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/144936814
- 内容:
- libavb 目录结构
- 关于 AFTL的解释
- Makefile 分析
- libavb 库各文件功能和用途分析
- libavb_user 库文件功能和用途
- libavb 和 libavb_user 库的引用
- libfs_avb 源码
- AVB 其它相关代码
- Android AVB 分析(十一)bootloader 是如何进行 verify boot 检查的?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/144995975
- 内容:
- u-boot 中 AVB 相关的 verify boot 命令
- avb_slot_verify 函数分析
- load_and_verify_vbmeta 函数分析
- libavb 中其它重要的函数分析
- 特别说明
- vbmeta 分区和 vbmeta 数据
- 为什么要使用 validate_vbmeta_public_key() 验证公钥?
- 为什么要用 rollback index 去防止回滚?
- Android AVB 分析(十二)嵌入式设备安全中的 dm-verity 简介
- 链接:https://blog.csdn.net/guyongqiangx/article/details/145042060
- 内容:
- 关于 dm-verity
- dm-verity 是如何工作的?
- 一个简单演示 dm-verity 工作原理的例子
- hashtree 是如何工作的?
- dm-verity 中数据损坏
- 为什么不使用 dm-verity?
- dm-verity 的替代方案
- Dm-crypt
- IMA/EVM
- Fs-verity
- 补充阅读
- Android AVB 分析(十三)dm-verity 设备是如何映射的?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/145211172
- 内容:
- 生成并验证 system.img 的 hashtree 和 FEC 数据
- 基本的 dm-verity 映射实战
- 破坏后的 dm-verity 映射实战
- 带 FEC 的 dm-verity 映射实战
- Android 的 system 分区 dm-verity 映射实战
- Android AVB 分析(十四)fs_libavb 是做什么用的?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/147189681
- 内容:
- 计划基于 fs_libavb 代码进行详细分析,内容待完成
- Android AVB 分析(十五)system 分区是如何挂载为 dm-verity 设备的?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/147189715
- 内容:
- 计划跟踪 Android 启动时 system 分区的挂载过程,内容待完成
- Android AVB 分析(十六)5 个例子彻底理解 FEC(Reed-Solomon) 的工作原理
- 链接:https://blog.csdn.net/guyongqiangx/article/details/145865175
- 内容:
- FEC 的原理
- 一个 FEC 前向纠错的简单例子
- FEC 前向纠错算法
- 里德所罗门编码(RS)重要数据解释
- 几种常见的 RS 编码
- 基于 RS 编码的 4 个实战
- RS(255, 223) 编码实验
- RS(255, 253) 编码实验
- RS(255, 253) 纠错 1 字节成功实验
- RS(255, 253) 纠错 2 字节失败实验
- RS(255, 253) 纠错 2 字节成功实验
- Android AVB 分析(十七)程序员的FEC(Reed-Solomon)编码实战
- 链接:https://blog.csdn.net/guyongqiangx/article/details/145865276
- 内容:
- 里德所罗门编码实践
- 里德所罗门编码参数
- 使用 Reed-Solomon 编码实践
- 擦除编码(Erasure coding)
- 关于填充的一些话
- 里德所罗门编码总结
- 里德所罗门编码的进一步补充阅读材料
- Android AVB 分析(十八)Android 镜像中的 FEC 数据是如何计算出来的?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/145962808
- 内容:
- Android fec 工具源码
- Android fec 工具功能
- Android fec 工具参数
- Android 中的 FEC 交织编码解释
- 手动验证 Android 中的 FEC 交织编码实战
- 手动验证 fec 工具纠错
- Android AVB 分析(十九)Android 镜像中的 FEC 到底能纠正多少错误?
- 链接:https://blog.csdn.net/guyongqiangx/article/details/145972996
- 内容:
- Android 镜像的理论纠错能力
- 实验 1. 破坏 3396K 字节, fec 工具纠错实战
- 实验 2. 破坏 3396K 字节, dm-verity 纠错实战
- 实验 3. 破坏 4000K 字节, fec 工具纠错实战
- 实验 4. 破坏 6792K 字节, dm-verity 纠错实战
- Android 镜像纠错能力总结
- Android AVB 分析(二十)Android 官方 FEC 文档解读
- 链接:https://blog.csdn.net/guyongqiangx/article/details/145973033
- 内容:
- Android AVB 纠错概览
- 前向纠错码和里德所罗门编码介绍
- Android 从连续损坏的块中恢复
- 严格强制执行的启动时验证与纠错结论
其它计划中的文章:
-
Android AVB 分析 (二一) 关于 Android AVB 配置
-
Android AVB 分析 (二二) LOCKED 状态数据保存在哪里?
-
Android AVB 分析 (二三) Rollback Index 是如何起作用的?
-
Android AVB 分析 (二四) 如何关闭 AVB 功能?
-
Android AVB 分析 (二五) remount 操作到底发生了什么?
3. 其它
我创建了一个 Android AVB 讨论群,主要讨论 Android 设备的 AVB 验证问题。
我还几个 Android OTA 升级讨论群,主要讨论 Android 设备的 OTA 升级话题。
欢迎您加群和我们一起交流,请在加我微信时注明“Android AVB 交流”或“Android OTA 交流”。
仅限 Android 相关的开发者参与~
公众号“洛奇看世界”后台回复“wx”获取个人微信。
2万+

被折叠的 条评论
为什么被折叠?



