AVB(二):DTO 支持

简介: AVB(二):DTO 支持

设备树叠加层 (DTO) 扩展了现有的扁平化设备树 (FDT) 实现,让用户空间可以通过加载用于修改原始数据的额外叠加层 FDT,在运行时修改内核中的初始设备树数据。

Android 不要求在运行时从用户空间更新 DT blob,而是建议供应商借助 libfdt 或 libufdt 在引导加载程序中添加设备树补丁程序。

1、Android DTO 支持

Android 对 DTO 的支持因 Android 版本而异:

  • 1、Android 7.x 及更低版本不要求提供设备树支持,也没有针对供应商如何将 DT blob 传递给内核或在何处存储这些 blob 提供建议。
  • 2、Android 8.x 建议提供设备树支持,以将内核的板专属部分和仅限 SoC 访问的部分区分开来。
  • 3、Android 9 及更高版本要求必须存在设备树 blob 叠加层 (DTBO) 分区并且至少应用一个 DTO

2、DTO 分区要求

大多数 Android 设备都会在构建时将 DT blob 附加到内核,而引导加载程序会从内核加载 blob

不过,由于 DT blob 被视为系统芯片 (SoC) 内核的一部分,因此 Android 对如何构建或存储 DT blob 没有特定要求。

设备可以将 DT blob 附加到内核,也可以将 blob 存储在单独的分区中;唯一的要求是引导加载程序应该知道如何加载以及从何处加载 DT blob。

如需支持 DTO,设备应具备以下条件:

  • 1、每个内核映像都应具有一个适用于板专属 DT 叠加层的 DTBO 分区,并且引导加载程序必须知道从何处以及如何加载 SoC 专属 DTB。分区大小取决于编译 SoC 内核所需的更改量;选择分区大小时需要为未来更新留出空间,通常,8 MB 大小的分区已绰绰有余。
  • 2、针对 A/B 设备更新了 DTO 分区。恢复内核与 Android 内核相同,但分区必须针对 A/B 设备设置,因为这样才可以通过无线下载 (GOTA) 更新进行更新。分区大小取决于设备以及主 SoC 内核 DT Blob 上所需的更改数量。

3、DTO 引导加载程序要求

要支持 DTO,引导加载程序应具备以下条件:

  • 1、知道如何以及从何处(考虑使用 A/B 设备的启动槽)以供应商独有的方式加载 SoC 专属 DT blob(通常是从内核映像的末端提取,因为 blob 会附加到内核)。
  • 2、知道如何以及从何处以供应商独有的方式加载叠加层 DT Blob。
  • 3、将组合设备树传递给内核之前,使用叠加层修补主 DT blob。
目录
相关文章
|
1月前
|
安全 Linux Android开发
AVB源码学习(七):AVB2.0-Super动态分区介绍
AVB源码学习(七):AVB2.0-Super动态分区介绍
228 0
|
7月前
|
设计模式 开发框架 前端开发
项目开发中,真的有必要定义VO,BO,PO,DO,DTO这些吗?
存在即是合理的,业务复杂,人员协同性要求高的场景下,这些规范性的东西不按着来虽然不会出错,程序照样跑,但是遵守规范会让程序更具扩展性和可读性,都是前辈血淋淋的宝贵经验,为什么不用?
|
存储 前端开发 Java
一文理解什么是DTO、VO、BO、PO、DO,并推荐一款IDEA转换插件
一文理解什么是DTO、VO、BO、PO、DO,并推荐一款IDEA转换插件
544 0
一文理解什么是DTO、VO、BO、PO、DO,并推荐一款IDEA转换插件
|
Java 数据库
POJO、PO、DTO、DAO、BO、VO需要搞清楚的概念
POJO 全称为:Plain Ordinary Java Object,即简单普通的java对象。一般用在数据层映射到数据库表的类,类的属性与表字段一一对应。 PO 全称为:Persistant Object,即持久化对象。
30841 1
|
7月前
|
Java 数据库
详述 PO VO BO DTO DAO 和 POJO 的概念及区别
详述 PO VO BO DTO DAO 和 POJO 的概念及区别
138 0
|
10月前
|
前端开发 Java API
深度解读JAVA中的DO、BO、VO、DTO、AO、PO、DO、AO各自的含义
在刚接触一些比较规范代码的时候就遇到了这些,用于描述对象的不同类型,每个模块都是相互依赖的,所以在这里进行一个详细系统的总结。
435 0
|
10月前
|
设计模式 前端开发 Java
Java开发中PO、VO、DAO、BO、DTO、POJO 含义
可以看成是与数据库中的表相映射的java对象。使用 Mybatis 来生成 PO 是不错的选择。
222 0
|
11月前
|
SQL 前端开发 Java
领域驱动系列-浅析VO、DTO、DO、PO
领域驱动系列-浅析VO、DTO、DO、PO
396 0
|
存储 前端开发 NoSQL
项目中的 DO、DTO、BO、VO、POJO的区别是什么
项目中的 DO、DTO、BO、VO、POJO的区别是什么?
|
前端开发 JavaScript Java
【领域驱动系列2】浅析VO、DTO、DO、PO
之前给自己立了一个Flag,也就是在12月底学完领域驱动设计,目前基础的知识都基本学完了,就差一个完整的Demo,打算还是通过两篇文章完善DDD的基础知识,等DDD的Demo写完后,在出1-2篇文章去讲解这个Demo,这个系列就结束了。 上一篇DDD的文章《一文带你学习DDD,全是干货!》,里面包含了DDD的重要基本概念,想学习DDD的同学,可以先看看这篇文章。
1215 0
【领域驱动系列2】浅析VO、DTO、DO、PO