Tedarikçi Firma API düzeyi

Satıcı API düzeyi, satıcı bölümü tarafından desteklenen arayüz sürümünü ifade eder. Arayüz çift yönlüdür. Tedarikçi firma bölümünün sistem bölümüne (donanım soyutlama katmanı veya HAL arayüzü) sağladığı API'yi ve ayrıca, tedarikçi firma bölümünün sistem bölümünde (alt seviye yerel geliştirici kiti veya LLNDK arayüzü) gerektirdiği API'yi açıklar.

Tedarikçi API düzeyi, tedarikçi bölümündeki yazılımın karşılaması gereken işlevsel ve işlevsel olmayan koşullardan oluşan tedarikçi yazılım şartlarını (VSR'ler) belirlemek için de kullanılır.

Bu sayfanın geri kalanında, tedarikçi firma API'si düzeyini belirlemek için Android sürümünüze bağlı olarak sistem özelliklerinin nasıl kullanıldığı açıklanmaktadır.

Tedarikçi firma dondurma

Android, tedarikçi firmanın tedarikçi firma bölümünü VSR'nin belirli bir sürümünde dondurmasına olanak tanır. Android'in tedarikçi bölümünden beklediği özellik grubu, tedarikçi bölümüyle ilişkili tedarikçi API düzeyine göre belirlenir. Çalışma zamanında, sistem bölümünde çalışan yazılımın davranışı, tedarikçi bölümünün tedarikçi API düzeyine uyacak şekilde ayarlanır. Örneğin, sistem bölümündeki yazılım, tedarikçi bölümünün API düzeyi tarafından desteklenmeyen yeni özellikleri kullanamayabilir.

Satıcı dondurma özelliği yalnızca Android uyumlu bir cihaz oluşturuyorsanız kullanılabilir.

Tedarikçi firma API düzeyini belirleme (Android 14-QPR3 ve sonraki sürümler)

Android 14-QPR3 ve sonraki sürümlerde tedarikçi API düzeyi ayrı olarak yayınlanır. Bu, SDK API düzeyi ile tedarikçi API düzeyinin senkronize olmadığı anlamına gelir.

Ayrı sürüm programları nedeniyle, Android 14-QPR3 ve sonraki sürümlerde tedarikçi API düzeyi, SDK API düzeyinden tamamen ayrılmıştır. Bu ayırmanın net olması için tedarikçi API düzeyinin biçimi YYYYAA (yıl ve ay) olarak biçimlendirilmiş bir tarihtir. SDK düzeyi ise tam sayıdır.

Android 14-QPR3 ve sonraki sürümler, tedarikçi API düzeyiyle (ro.vendor.api_level) ilgili aşağıdaki sistem özelliklerini içerir:

Sistem mülkü Biçim Açıklama İlk ayar
ro.board.api_level YYYYAA Bir yonga setinin yazılımının desteklediği tedarikçi API düzeyi. Bu özellik tüm yonga setleri için ayarlanmıştır. Bu, derleme sistemi tarafından otomatik olarak ayarlanır.
ro.board.first_api_level YYYYAA Bir yonga setinin yazılımının ilk kez kullanıma sunulduğu tedarikçi API düzeyi. Bu özellik yalnızca yonga setinin bir işlevidir ve SoC yonga seti tedarikçi dondurma için uygunsa SoC tedarikçileri tarafından ayarlanır. İlk ayardan sonra değiştirilmemelidir. SoC tedarikçileri bu ayarı BOARD_SHIPPING_API_LEVEL kullanarak belirler.
ro.product.first_api_level Tam sayı Cihazın ilk başlatıldığı SDK API düzeyi. Bu özellik OEM tarafından ayarlanır ve OS yükseltmelerinden sonra bile hiçbir zaman güncellenmez.
ro.vendor.api_level YYYYAA Cihazın bir bütün olarak uyması gereken tedarikçi API düzeyi. Bu tablonun altında açıklanmaktadır.
ro.board.api_frozen boole ro.board.api_level'un temsil ettiği tedarikçi API düzeyi kesinleştiyse bu mülk true olarak ayarlanır. Bu özellik ayarlanmazsa varsayılan olarak false olur.
ro.llndk.api_level YYYYAA Sistem bölümündeki mevcut LLNDK'nın sağladığı YYYYAA biçimindeki tedarikçi API düzeyi. LLNDK geriye dönük uyumludur. Bu nedenle, bu API düzeyinden daha düşük veya bu düzeye eşit olan tüm tedarikçi firma resimleri bu sistem resmiyle yanıp söndürülebilir. Bu özellik, sistem bölümü tarafından ayarlanır.

ro.vendor.api_level mülkü aşağıdaki iki yöntemden biriyle türetilir:

  • Yonga seti tedarikçi firma dondurmaya uygunsa:

    ro.vendor.api_level = min(
      ro.board.api_level,
      AVendorSupport_getVendorApiLevelOf(ro.product.first_api_level))
    
  • Yonga seti, satıcı dondur ayarı kapsamında değilse:

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

AVendorSupport_getVendorApiLevelOf() yöntemi, SDK API düzeyinden ilgili tedarikçi firma API düzeyini belirler. Örneğin AVendorSupport_getVendorApiLevelOf(35); burada 35, 2024'teki ana Android sürümünün SDK API düzeyidir 202404. Bu, mevcut Vendor API düzeyi belirlendiğinde Android 14-QPR3 için tahmini tarihtir.

Tedarikçi API düzeyini belirleme (Android 13)

Tedarikçi API düzeyi, uygulama-OS arayüzü için olan ve yeni Android platformu AOSP'ye yayınlandığında yılda bir kez güncellenen SDK API düzeyini takip eder.

Android 13, tedarikçi API düzeyiyle (ro.vendor.api_level) ilgili aşağıdaki sistem özelliklerini içerir:

Sistem mülkü Biçim Açıklama İlk ayar
ro.board.first_api_level Tam sayı Bir yonga setinin yazılımının ilk kez kullanıma sunulduğu tedarikçi API düzeyi. Bu, yalnızca yonga setinin bir işlevidir ve SoC tedarikçileri veya OEM'ler tarafından değiştirilemez. Bu özellik yalnızca tedarikçi dondurma işlemine uygun çipsetlerde ayarlanır. Değer, device.mk dosyasında BOARD_SHIPPING_API_LEVEL ayarlanarak belirlenir.
ro.board.api_level Tam sayı Bir yonga setinin yazılımının desteklediği tedarikçi API düzeyi. Bu özellik yalnızca tedarikçi dondurma için uygun olan yonga setleri için ayarlanır. Bu özellik tüm yonga setleri için ayarlanmıştır. Bu mülkün değeri başlangıçta derleme sistemi tarafından ro.board.first_api_level ile aynı değere ayarlanır ancak tedarikçi bölümü yükseltilirse güncellenebilir.
ro.product.first_api_level Tam sayı Cihazın ilk başlatıldığı SDK API düzeyi. Bu özellik, OEM tarafından ayarlanır ve işletim sistemi yükseltmelerinden sonra bile hiçbir zaman güncellenmez.
ro.vendor.api_level Tam sayı Cihazın bir bütün olarak uyması gereken tedarikçi API düzeyi. Bu tablonun altında açıklanmaktadır.
ro.vndk.version Tam sayı Tedarikçi firma bölümünün derlendiği VNDK sürümü. Bu özellik, sistem bölümü tarafından ayarlanır.
ro.vendor.build.version.sdk Tam sayı Satıcı bölümünün oluşturulduğu kaynak ağacının SDK API düzeyi.
ro.vendor.build.version.release Tam sayı Tedarikçi bölümünün oluşturulduğu kaynak ağacın platform sürümü.
ro.vendor.build.version.release_or_codename Tam sayı Tedarikçi firma bölümünün oluşturulduğu kaynak ağacın kod adı.

ro.vendor.api_level mülkü, ro.board.api_level (veya ro.board.api_level tanımlanmamışsa ro.board.first_api_level) ve ro.product.first_api_level değerlerinin minimumuna otomatik olarak ayarlanır.