Android 10 支持使用 Android 构建系统构建 /odm 分区。
ODM 分区简介
原始设计制造商 (ODM) 能够为其特定设备(开发板)自定义系统芯片 (SoC) 供应商板级支持包 (BSP)。这样,他们就可以为板级组件、板级守护进程或者其基于硬件抽象层 (HAL) 的自有功能实现内核模块。他们可能还需要替换或自定义 SoC 组件。
在之前的 Android 版本中,对于使用相同 SoC(或使用同一系列中的不同 SoC)的设备,此类自定义会阻止使用单个供应商映像。在 Android 10 中,您可以为自定义使用单独的 /odm 分区,因而能够针对多个硬件 SKU 使用单个供应商映像。
使用产品分区和 ODM 分区
Android 9 添加了对构建 /product 分区的支持,让您可以针对由不同 product.img 映像提供的多个软件 SKU 使用单个系统映像。/product 分区适用于软件 SKU,而 /odm 分区适用于硬件 SKU。
有了专用的产品分区和 ODM 分区,您可以使用 /system 分区来托管通用代码(这类代码在许多软件 SKU 之间共享),以及使用 /vendor 分区来托管 SoC 专属 BSP 代码(这类代码基于指定 SoC 在多台设备之间共享)。
使用单独的分区存在一些弊端,例如,难以管理磁盘空间(您必须预留一定的空间满足未来增长的空间需求)。但是,Android 10 对动态分区的支持解决了磁盘空间问题,并且让您可以在无线下载 (OTA) 更新期间对设备进行重新分区。
/odm 组件
/odm 分区包含以下 ODM 专用组件(类似于 /vendor 分区),如下表所示。
ODM 专用组件
位置
可加载内核模块 (LKM)
/