供應商 API 級別

供應商 API 級別是指 供應商分區。這是雙向介面;這個 Vertex AI 會說明 廠商分區提供給系統分區 (即硬體環境) 抽象層或 HAL 介面),以及供應商分區的 API 所需的系統分區 (即低階原生開發人員套件或 LLNDK 介面)。

供應商 API 級別也會用來確定「供應商軟體要求」 (VSR),則包含一系列功能性和非功能性需求 廠商分區中的軟體必須滿足

本頁其餘部分將說明系統 屬性 (視您的 Android 版本而定) 來判斷供應商 API 級別。

供應商凍結

Android 可讓廠商凍結特定版本的供應商分區 與 VSR 合作組合 Android 會根據供應商分區設定的功能 供應商 API 級別。在執行階段中 系統分區中執行的軟體會配合調整 供應商分區的供應商 API 級別。舉例來說, 如果不受 供應商分區的 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 提供的供應商 API 級別 YYYYMM。LLNDK 具有回溯相容性,因此小於或等於此 API 級別的任何供應商映像檔都可以以此系統映像檔刷新。 這個屬性是由系統分區設定。

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() 方法會判斷相應的 供應商 API 級別例如: AVendorSupport_getVendorApiLevelOf(35),其中 35 是 2024 年的主要 Android 版本會傳回 202404,這是 Android 14-QPR3 目前的 Vendor API 級別為 設定。

決定供應商 API 級別 (Android 13)

供應商 API 級別與 SDK API 級別相同,後者適用於 app-OS 介面,並且會在每年在新 Android 平台推出時更新一次 向 Android 開放原始碼計畫提出上訴

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 版本。 這個屬性是由系統分區設定。
ro.vendor.build.version.sdk 整數 建構供應商分區的來源樹狀結構 SDK API 級別。
ro.vendor.build.version.release 整數 建構供應商分區的來源樹狀結構平台版本。
ro.vendor.build.version.release_or_codename 整數 建構供應商分區的來源樹狀結構代碼名稱。

ro.vendor.api_level 屬性會自動設為最小值 ro.board.api_level (如未定義 ro.board.api_level,則為 ro.board.first_api_level)。 ro.product.first_api_level