Level API vendor

Level API vendor mengacu pada versi antarmuka yang didukung oleh partisi vendor. Antarmukanya dua arah; Ini menjelaskan API yang disediakan partisi vendor ke partisi sistem (perangkat keras lapisan abstraksi atau antarmuka HAL), serta API yang dipartisi vendor tidak diperlukan dari partisi sistem (paket developer native tingkat rendah LLNDK).

API level Vendor juga digunakan untuk menentukan Persyaratan Perangkat Lunak Vendor (VSR), yang merupakan kumpulan persyaratan fungsional dan nonfungsional yang perangkat lunak dalam partisi vendor yang harus dipenuhi.

Bagian selanjutnya dari halaman ini menjelaskan bagaimana sistem properti digunakan, bergantung pada versi Android Anda, untuk menentukan vendor level API.

Pembekuan vendor

Android memungkinkan vendor untuk membekukan partisi vendor pada versi tertentu terhadap VSR. Set yang diharapkan Android dari partisi vendor ditentukan oleh level API vendor yang terkait dengan partisi vendor. Saat runtime, perilaku perangkat lunak yang berjalan di partisi sistem menyesuaikan untuk mengakomodasi level API vendor dari partisi vendor. Misalnya, perangkat lunak di partisi sistem mungkin tidak menggunakan fitur baru jika tidak didukung oleh level API dari partisi vendor.

Pembekuan vendor hanya tersedia jika Anda membuat Perangkat yang kompatibel dengan Android.

Menentukan level API vendor (Android 14-QPR3 dan yang lebih baru)

Untuk Android 14-QPR3 dan yang lebih baru, level API vendor dirilis secara terpisah, artinya API level SDK dan vendor Level API tidak sinkron.

Karena jadwal rilis terpisah, untuk Android 14-QPR3 dan yang lebih baru, level API vendor sepenuhnya yang dipisahkan dari level API SDK. Untuk memastikan pemisahan ini jelas, metode format API level vendor adalah tanggal dengan format YYYYMM (tahun dan bulan) sedangkan level SDK adalah bilangan bulat.

Android 14-QPR3 dan yang lebih baru berisi sistem berikut properti yang terkait dengan level API vendor (ro.vendor.api_level):

Properti sistem Format Deskripsi Setelan awal
ro.board.api_level TTTTBB Level API vendor yang didukung software chipset. Properti ini disetel untuk semua chipset. Ini disetel oleh sistem build secara otomatis.
ro.board.first_api_level TTTTBB Level API vendor yang digunakan untuk pertama kali merilis software chipset. Properti ini hanya merupakan fungsi chipset dan disetel oleh vendor SoC jika chipset SoC memenuhi syarat untuk pembekuan vendor. Setelah setelan awal, nilai tidak boleh diubah. Vendor SoC menetapkan setelan ini menggunakan BOARD_SHIPPING_API_LEVEL.
ro.product.first_api_level Bilangan Bulat Level API SDK yang pertama kali digunakan untuk meluncurkan perangkat. Properti ini ditetapkan oleh OEM, lalu tidak pernah diperbarui, bahkan setelah upgrade OS.
ro.vendor.api_level TTTTBB Level API vendor yang harus sesuai dengan perangkat secara keseluruhan. Dijelaskan setelah tabel ini.
ro.board.api_frozen boolean Properti ini disetel ke true jika level API vendor yang diwakili ro.board.api_level sudah selesai. Jika properti ini tidak disetel, nilai defaultnya adalah false.
ro.llndk.api_level TTTTBB Level API vendor dalam format YYYYMM yang disediakan oleh LLNDK saat ini di partisi sistem. LLNDK kompatibel dengan versi lama, sehingga image vendor apa pun yang kurang dari atau sama dengan level API ini dapat di-flash dengan image sistem ini. Properti ini ditetapkan oleh partisi sistem.

Properti ro.vendor.api_level diperoleh dengan salah satu dari dua cara berikut:

  • Jika chipset memenuhi syarat untuk pembekuan vendor:

    ro.vendor.api_level = min(
      ro.board.api_level,
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level))
    
  • Jika chipset tidak berada dalam pembekuan vendor:

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

Metode AVendorSupport_getVendorApiLevelOf() menentukan atribut level API vendor dari level API SDK. Misalnya AVendorSupport_getVendorApiLevelOf(35), dengan 35 adalah level API SDK rilis Android utama pada tahun 2024 menampilkan 202404, yang merupakan perkiraan tanggal untuk Android 14-QPR3 saat level API Vendor saat ini atur.

Menentukan level API vendor (Android 13)

API level vendor mengikuti level API SDK, yaitu untuk app-OS dan diupdate setahun sekali saat platform Android baru dirilis ke AOSP.

Android 13 berisi sistem berikut properti yang terkait dengan level API vendor (ro.vendor.api_level):

Properti sistem Format Deskripsi Setelan awal
ro.board.first_api_level Bilangan Bulat Level API vendor yang digunakan untuk pertama kali merilis software chipset. Ini hanya fungsi chipset dan tidak dapat dimodifikasi oleh vendor SoC atau OEM. Properti ini hanya disetel untuk chipset yang memenuhi syarat untuk pembekuan vendor Nilai ditetapkan dengan menetapkan BOARD_SHIPPING_API_LEVEL dalam file device.mk.
ro.board.api_level Bilangan Bulat Level API vendor yang didukung software chipset. Properti ini disetel hanya untuk chipset yang memenuhi syarat untuk pembekuan vendor. Properti ini disetel untuk semua chipset. Awalnya, nilai properti ini ditetapkan oleh sistem build ke nilai yang sama dengan ro.board.first_api_level, tetapi dapat diupdate jika partisi vendor diupgrade.
ro.product.first_api_level Bilangan Bulat Level API SDK yang pertama kali digunakan untuk meluncurkan perangkat. Properti ini ditetapkan oleh OEM, lalu tidak pernah diperbarui, bahkan setelah upgrade OS.
ro.vendor.api_level Bilangan Bulat Level API vendor yang harus sesuai dengan perangkat secara keseluruhan. Dijelaskan setelah tabel ini.
ro.vndk.version Bilangan Bulat Versi VNDK yang digunakan untuk membangun partisi vendor. Properti ini ditetapkan oleh partisi sistem.
ro.vendor.build.version.sdk Bilangan Bulat Level API SDK dari hierarki sumber tempat partisi vendor dibuat.
ro.vendor.build.version.release Bilangan Bulat Versi platform hierarki sumber tempat partisi vendor dibangun.
ro.vendor.build.version.release_or_codename Bilangan Bulat Nama kode hierarki sumber tempat partisi vendor dibuat.

Properti ro.vendor.api_level secara otomatis ditetapkan ke nilai minimum ro.board.api_level (atau ro.board.first_api_level jika ro.board.api_level tidak ditentukan) dan ro.product.first_api_level.