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:
DEVICE_MANIFEST_FILE
adlı gruptan ayrıl vePRODUCT_ENFORCE_VINTF_MANIFEST
tanımsız.- Hedef FCM sürümü için HAL'leri uygulayın.
- Doğru cihaz manifest dosyasını yazın.
- Cihaz manifest dosyasına hedef FCM sürümünü yazın.
DEVICE_MANIFEST_FILE
ayarla.PRODUCT_ENFORCE_VINTF_MANIFEST
değerinitrue
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:
- Hedef FCM sürümü için gerekli tüm yeni HAL Sürümlerini uygulayın.
- Cihazın manifest dosyasında HAL sürümlerini değiştirin.
- Cihaz manifest dosyasında hedef FCM sürümünü değiştirin.
- 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 gidenBOARD_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çinfalse
. 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
.