供应商 API 级别

供应商 API 级别是指 vendor 分区。该接口是双向接口它描述了 供应商分区提供给系统分区(硬件 抽象层或 HAL 接口),以及由供应商分区的 API (低级别原生开发者套件或 LLNDK 接口)。

供应商 API 级别也用于确定供应商软件要求 (VSR) 是一系列功能性和非功能性要求, vendor 分区中的软件必须满足的要求。

本页的其余部分将介绍 属性来确定供应商(具体视您的 Android 版本而定) API 级别。

供应商冻结

Android 允许供应商冻结特定版本的 。集 Android 预期从供应商分区中获取的功能由 与 vendor 分区关联的 vendor API 级别。在运行时 在系统分区中运行的软件会根据 vendor 分区的 vendor API 级别。例如,Google Analytics 中的 如果系统分区不支持新功能,则系统分区可能不会使用新功能 vendor 分区的 API 级别。

只有在创建 Android 兼容设备

确定供应商 API 级别(Android 14-QPR3 及更高版本)

对于 Android 14-QPR3 及更高版本,供应商 API 级别为 单独发布,表示 SDK API 级别和供应商 API 级别未同步。

由于面向 Android 设备有单独的发布时间表,因此 14-QPR3 及更新版本,则供应商 API 级别 与 SDK API 级别分离。为了确保这种分离清晰, 供应商 API 级别的格式为日期,格式为 YYYYMM(年和月) “SDK 级别”是一个整数

Android 14-QPR3 及更高版本包含以下系统 与供应商 API 级别 (ro.vendor.api_level) 相关的属性:

系统属性 格式 说明 初始设置
ro.board.api_level YYYYMM 芯片组的软件支持的供应商 API 级别。此属性是针对所有芯片组设置的。 这是由构建系统自动设置的。
ro.board.first_api_level YYYYMM 芯片组软件首次发布时采用的供应商 API 级别。此属性仅适用于芯片组,如果 SoC 芯片组符合供应商冻结条件,则由 SoC 供应商设置。完成初始设置后,就不能再修改。 SoC 供应商使用 BOARD_SHIPPING_API_LEVEL 来设置此设置。
ro.product.first_api_level 整数 设备最初发布时所采用的 SDK API 级别。 此属性由 OEM 设置,从未更新过,即使在操作系统升级后也是如此。
ro.vendor.api_level YYYYMM 整个设备必须遵守的供应商 API 级别。 此表后面将会介绍。
ro.board.api_frozen 布尔值 如果 ro.board.api_level 代表的供应商 API 级别已最终确定,则此属性会设置为 true 如果未设置此属性,则默认为 false
ro.llndk.api_level YYYYMM 系统分区中当前 LLNDK 提供的 YYYYMM 格式的供应商 API 级别。LLNDK 可向后兼容,因此任何不高于此 API 级别的供应商映像都可使用该系统映像进行刷写。 此属性由 system 分区设置。

ro.vendor.api_level 属性是通过以下两种方式之一派生的:

  • 如果芯片组符合供应商冻结条件,则:

    ro.vendor.api_level = min(
      ro.board.api_level,
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level))
    
  • 如果芯片组未处于供应商冻结状态:

    ro.vendor.api_level =
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level)
    

AVendorSupport_getVendorApiLevelOf() 方法用于确定 从 SDK API 级别指定供应商 API 级别。例如 AVendorSupport_getVendorApiLevelOf(35),其中 35 是 SDK 的 SDK API 级别, 2024 年的主要 Android 版本返回 202404,这是 Android 14-QPR3(当前供应商 API 级别为 。

确定供应商 API 级别 (Android 13)

供应商 API 级别遵循针对应用操作系统的 SDK API 级别 接口,并且会在新的 Android 平台发布时每年更新一次 AOSP

Android 13 包含以下系统 与供应商 API 级别 (ro.vendor.api_level) 相关的属性:

系统属性 格式 说明 初始设置
ro.board.first_api_level 整数 芯片组软件首次发布时采用的供应商 API 级别。此功能仅适用于芯片组,且不能由 SoC 供应商或 OEM 修改。此属性仅适用于符合供应商冻结条件的芯片组 该值通过在 device.mk 文件中设置 BOARD_SHIPPING_API_LEVEL 确定。
ro.board.api_level 整数 芯片组的软件支持的供应商 API 级别。仅为符合供应商冻结条件的芯片组设置此属性。此属性是针对所有芯片组设置的。 最初,此属性的值由构建系统设置为与 ro.board.first_api_level 相同的值,但可以在供应商分区升级时对其进行更新。
ro.product.first_api_level 整数 设备最初发布时所采用的 SDK API 级别。 此属性由 OEM 设置,从未更新过,即使在操作系统升级后也是如此。
ro.vendor.api_level 整数 整个设备必须遵守的供应商 API 级别。 此表后面将会介绍。
ro.vndk.version 整数 构建供应商分区时所参照的 VNDK 的版本。 此属性由 system 分区设置。
ro.vendor.build.version.sdk 整数 构建 vendor 分区的源代码树的 SDK API 级别。
ro.vendor.build.version.release 整数 构建 vendor 分区的源代码树的平台版本。
ro.vendor.build.version.release_or_codename 整数 构建 vendor 分区的源代码树的代号。

ro.vendor.api_level 属性会自动设置为 ro.board.api_level(或 ro.board.first_api_level,如果未定义 ro.board.api_level)中的最小值,并且 ro.product.first_api_level