Cihaz manifesti geliştirme

Tedarikçiler yeni cihazlar geliştirirken ve piyasaya sürerken cihazların kullanımıyla ilgili olarak, cihaz manifestinde (DM) hedef FCM sürümünü kullanın. Tedarikçi firma görüntüsünü yükseltirken tedarikçiler, eski cihazlarda yeni HAL sürümlerini uygulamayı ve hedef FCM sürümü.

Yeni cihazlar geliştirme

Yeni cihazlar için cihaz hedefi FCM sürümünü tanımlarken:

  1. DEVICE_MANIFEST_FILE adlı gruptan ayrıl ve PRODUCT_ENFORCE_VINTF_MANIFEST tanımsız.
  2. Hedef FCM sürümü için HAL'leri uygulayın.
  3. Doğru cihaz manifest dosyasını yazın.
  4. Cihaz manifest dosyasına hedef FCM sürümünü yazın.
  5. DEVICE_MANIFEST_FILE ayarla.
  6. PRODUCT_ENFORCE_VINTF_MANIFEST değerini true olarak ayarlayın.

Yeni cihazlar yayınlayın

Yeni bir cihaz kullanıma sunulduğunda cihazın ilk hedef FCM sürümü şu olmalıdır: Cihaz manifest dosyasında, "target-level" özelliğini kullanarak <manifest> öğesi.

Örneğin, Android 9 ile kullanıma sunulan cihazlar 3'e (şu anda mevcut olan daha yüksek sürüm) eşit hedef FCM sürümüne sahip. Cihaz manifest dosyasında bunu beyan etmek için:

<manifest version="1.0" type="device" target-level="3">
    <!-- ... -->
</manifest>

Tedarikçi firma görüntüsünü yeni sürüme geçir

Tedarikçiler eski bir cihazın tedarikçi firma görüntüsünü yükseltirken yeni HAL sürümlerini uygulamalı ve hedef FCM sürümünü artırmalıdır.

HAL'leri yükseltme

Tedarikçi firma görüntüsünü yükseltme işlemi sırasında tedarikçiler yeni HAL sürümlerini uygulayabilir Ancak HAL adı, arayüz adı ve örnek adının aynı olması gerekir. Örneğin, örnek:

  • Google Pixel 2 ve Pixel 2 XL cihazlar hedef FCM sürümüyle yayınlandı 2.0, gerekli ses 2.0 HAL'yi uygulayan android.hardware.audio@2.0::IDeviceFactory/default
  • Android ile yayınlanan Audio 4.0 HAL için 9, Google Pixel 2 ve Pixel 2 XL cihazlar bir tam OTA'yı kullanarak 4.0 HAL'ye yükseltin. android.hardware.audio@4.0::IDeviceFactory/default
  • compatibility_matrix.2.xml ses 2.0'ı belirtmesine rağmen yalnızca, hedef FCM sürüm 2'ye sahip bir tedarikçi firma görüntüsü Android 9 çerçevesi (FCM sürümü) nedeniyle gevşetildi 3) işlevsellik açısından ses 4.0'ı, ses 2.0 HAL'nin yerine geçirmektedir.

Özetlemek gerekirse, compatibility_matrix.2.xml için ses 2.0 ve compatibility_matrix.3.xml ses 4.0 gerektirir. aşağıdaki gibidir:

FCM sürümü (sistem) Hedef FCM sürümü (sağlayıcı) Gereksinimler
2 (8,1) 2 (8,1) Ses 2.0
3 (9) 2 (8,1) Ses 2.0 veya 4.0
3 (9) 3 (9) Ses 4.0

Hedef FCM sürümünü yükseltin

Tedarikçi firma görüntüsünü yeni sürüme geçirme işlemi sırasında tedarikçiler hedef FCM'yi de artırabilir yeni sürüme geçirilen tedarikçi firma görüntüsünün çalışabileceği hedeflenen FCM sürümünü belirtmek için sürümü ekleyebilirsiniz. Bir cihazın hedef FCM sürümünü yükseltmek için tedarikçi firmaların şunları yapması gerekir:

  1. Hedef FCM sürümü için gerekli tüm yeni HAL Sürümlerini uygulayın.
  2. Cihazın manifest dosyasında HAL sürümlerini değiştirin.
  3. Cihaz manifest dosyasında hedef FCM sürümünü değiştirin.
  4. Kullanımdan kaldırılan HAL sürümlerini kaldırın.

Örneğin, Android 7.0 yüklü Google Pixel ve Pixel XL cihazlar bu nedenle hedef FCM sürümü en azından eski olmalıdır. Ancak, cihaz manifest dosyasında hedef FCM sürüm 2'yi tanımlar. Bunun nedeni, tedarikçi firma görüntüsünün compatibility_matrix.2.xml ile uyumlu olacak şekilde güncellendi:

<manifest version="1.0" type="device" target-level="2">

Tedarikçi firmalar gerekli tüm yeni HAL sürümlerini uygulamıyorsa veya HAL'leri desteği sonlandırıldığı için hedef FCM sürümü yükseltilemez.

Örneğin, Google Pixel 2 ve Pixel 2 XL cihazlar FCM sürüm 2'yi hedefler. Ancak, Google Ads'in gerektirdiği bazı HAL'leri compatibility_matrix.3.xml (ör.ses 4.0, sağlık 2.0), android.hardware.radio.deprecated@1.0 URL'sini kaldırmazlar. FCM sürüm 3'te (Android 9) kullanımdan kaldırıldı. Dolayısıyla bu cihazlar, hedef FCM sürümünü 3'e yükseltemez.

OTA sırasında çekirdek gereksinimlerini zorunlu kılma

Android 9 veya önceki sürümlere sahip cihazları güncelleme

Android 9 veya önceki sürümleri çalıştıran cihazlarda aşağıdaki CL'lerin geçerli olduğundan emin olun: özenle seçilmiş:

Bu değişiklikler, derleme işaretini PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS ve ayrılın Android 9 ile başlatılan cihazlar için işareti kaldırıldı veya daha düşük.

  • Android 10'a güncelleme yaparken Android 9 çalıştıran cihazlardaki OTA istemcileri OTA paketindeki çekirdek gereksinimlerini doğru şekilde kontrol etmeyin. Bu değişiklikler, oluşturulan OTA'dan çekirdek şartlarını kaldırmak için gereklidir paketinden yararlanın.
  • Android 11'e güncelleme yaparken isteğe bağlı olarak VINTF'yi kontrol etmek için PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS derleme işareti oluşturulduğunda uyumlu olmasını sağlayın.

Bu derleme işareti hakkında daha fazla bilgi için bkz. Android cihazlardan cihaz güncelleme 10.

Android 10'dan sonraki cihazları güncelleme

Android 10'da yeni bir derleme işareti kullanıma sunuluyor. PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS Cihazlar için bu bayrak otomatik olarak true değerine ayarlanır. İşaret şuna ayarlandığında: true, bir komut dosyası çekirdek sürümünü ve çekirdeği çıkarır yapılandırma ayarlarını kullanır.

  • Android 10'a güncelleme yaparken OTA güncelleme paketinde çekirdek sürümü ve yapılandırması. Android çalıştıran cihazlardaki OTA istemcileri Kontrol etmek için 10 bu bilgiyi okuyun uyumluluk.
  • Android 11'e güncelleme yaparken OTA paketinin türü , uyumluluğu kontrol etmek için çekirdek sürümünü ve yapılandırmayı okur.

Komut dosyası çıkarılamazsa bu bilgilerden birini gerçekleştirin şu:

  • Komut dosyasını, çekirdek biçiminizi destekleyecek ve AOSP'ye katkıda bulunacak şekilde düzenleyin.
  • BOARD_KERNEL_VERSION öğesini çekirdek sürümüne ayarlayın ve derlenen çekirdeğe giden BOARD_KERNEL_CONFIG_FILE .config yapılandırma dosyası. Her iki değişken de güncellenmelidir güncellendiğinden emin olun.
  • Alternatif olarak, PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS - Çekirdek gereksinimlerini kontrol etme adımını atlamak için false. Bu önerilmez çünkü tüm uyumsuzluklar gizlenir ve yalnızca güncellemeden sonra VTS testleri çalıştırılırken fark edilir.

Çekirdek bilgilerini ayıklama komut dosyasının kaynak kodunu görüntüleyebilirsiniz. extract_kernel.py.