Satıcılar, yeni cihazlar geliştirirken ve piyasaya sürerken, cihaz manifestosunda (DM) Hedef FCM Sürümünü tanımlayabilir ve beyan edebilir. Satıcılar, eski cihazlar için satıcı imajını yükseltirken yeni HAL sürümlerini uygulamayı ve Hedef FCM Sürümünü artırmayı seçebilir.
Yeni cihazlar geliştirmek
Yeni cihazlar için cihazın Hedef FCM Sürümünü tanımlarken:
-
DEVICE_MANIFEST_FILE
vePRODUCT_ENFORCE_VINTF_MANIFEST
tanımsız bırakın. - Hedef FCM Sürümü için HAL'leri uygulayın.
- Doğru cihaz bildirim dosyasını yazın.
- Hedef FCM Sürümünü cihazın bildirim dosyasına yazın.
-
DEVICE_MANIFEST_FILE
değerini ayarlayın. -
PRODUCT_ENFORCE_VINTF_MANIFEST
değerinitrue
olarak ayarlayın.
Yeni cihazların piyasaya sürülmesi
Yeni bir cihaz piyasaya sürüldüğünde, başlangıç Hedef FCM Sürümünün, cihaz bildiriminde üst düzey <manifest>
öğesinde " target-level
" özelliği olarak belirlenmesi ve bildirilmesi gerekir.
Örneğin, Android 9 ile başlatılan cihazların Hedef FCM Sürümü 3'e eşit olmalıdır (şu anda mevcut olan daha yüksek sürüm). Bunu cihaz bildiriminde bildirmek için:
<manifest version="1.0" type="device" target-level="3"> <!-- ... --> </manifest>
Satıcı görseli yükseltiliyor
Satıcılar, eski bir cihazın satıcı imajını yükseltirken yeni HAL sürümlerini uygulamayı ve Hedef FCM Sürümünü artırmayı seçebilir.
HAL'leri yükseltme
Satıcı imajı yükseltmesi sırasında satıcılar, HAL adının, arayüz adının ve örnek adının aynı olması koşuluyla yeni HAL sürümlerini uygulayabilir. Örneğin:
- Gerekli ses 2.0 HAL'yi uygulayan Target FCM Sürüm 2 ile piyasaya sürülen Google Pixel 2 ve Pixel 2 XL cihazları
android.hardware.audio@2.0::IDeviceFactory/default
. - Android 9 ile birlikte yayınlanan ses 4.0 HAL için Google Pixel 2 ve Pixel 2 XL cihazları
android.hardware.audio@4.0::IDeviceFactory/default
uygulayan 4.0 HAL'ye yükseltme yapmak için tam OTA kullanabilir. -
compatibility_matrix.2.xml
yalnızca ses 2.0'ı belirtse de, Android 9 çerçevesinin (FCM Sürüm 3) ses 4.0'ı işlevsellik açısından ses 2.0 HAL'nin yerine geçecek bir araç olarak görmesi nedeniyle Target FCM Sürüm 2'ye sahip bir satıcı görüntüsüne olan gereksinim gevşetilmiştir. .
Özetlemek gerekirse, compatibility_matrix.2.xml
ses 2.0 gerektirdiği ve compatibility_matrix.3.xml
ses 4.0 gerektirdiği göz önüne alındığında gereksinimler aşağıdaki gibidir:
FCM Sürümü (Sistem) | Hedef FCM Sürümü (Satı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ükseltme
Satıcı imajı yükseltmesi sırasında satıcılar, yükseltilen satıcı imajının birlikte çalışabileceği hedeflenen FCM Sürümünü belirlemek için Hedef FCM Sürümünü de artırabilir. Bir cihazın Hedef FCM Sürümünü yükseltmek için satıcıların şunları yapması gerekir:
- Hedef FCM Sürümü için gerekli tüm yeni HAL Sürümlerini uygulayın.
- Cihaz bildirim dosyasındaki HAL Sürümlerini değiştirin.
- Cihaz bildirim dosyasındaki 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 ile başlatılan Google Pixel ve Pixel XL cihazları, dolayısıyla Hedef FCM Sürümlerinin en azından eski olması gerekir. Ancak satıcı görüntüsü compatibility_matrix.2.xml
ile uyumlu olacak şekilde güncellendiğinden cihaz manifestosu Hedef FCM Sürüm 2'yi bildirir:
<manifest version="1.0" type="device" target-level="2">
Satıcılar gerekli tüm yeni HAL sürümlerini uygulamazsa veya kullanımdan kaldırılan HAL sürümlerini kaldırmazsa Hedef FCM Sürümü yükseltilemez.
Örneğin, Google Pixel 2 ve Pixel 2 XL cihazları, Target FCM Sürüm 2'ye sahiptir. compatibility_matrix.3.xml
gerektirdiği bazı HAL'leri (ses 4.0, sağlık 2.0 vb.) uygulasalar da android.hardware.radio.deprecated@1.0
kaldırmazlar. android.hardware.radio.deprecated@1.0
, FCM Sürüm 3'te (Android 9) kullanımdan kaldırılmıştır. Dolayısıyla bu cihazlar Hedef FCM Sürümünü 3'e yükseltemez.
OTA sırasında çekirdek gereksinimlerinin zorunlu kılınması
Android 9 veya daha düşük sürüme sahip cihazları güncelleme
Android 9 veya daha eski sürümlere sahip cihazlarda aşağıdaki CL'lerin özenle seçilmiş olduğundan emin olun:
Bu değişiklikler, PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS
derleme işaretini uygulamaya koyar ve Android 9 veya daha düşük sürümle başlatılan cihazlar için işareti ayarlanmamış halde bırakır.
- Android 10'a güncelleme yaparken, Android 9 veya daha eski sürümleri çalıştıran cihazlardaki OTA istemcileri, OTA paketindeki çekirdek gereksinimlerini doğru şekilde kontrol etmiyor. Bu değişiklikler, çekirdek gereksinimlerini oluşturulan OTA paketinden çıkarmak için gereklidir.
- Android 11'e güncelleme yaparken, güncelleme paketi oluşturulduğunda VINTF uyumluluğunu kontrol etmek için
PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS
derleme bayrağını ayarlamak isteğe bağlıdır.
Bu derleme bayrağı hakkında daha fazla bilgi için bkz. Android 10'dan cihazları güncelleme .
Cihazları Android 10'dan güncelleme
Android 10, yeni bir derleme bayrağı sunuyor: PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS
. Android 10 ile başlatılan cihazlarda bu işaret otomatik olarak true
değerine ayarlanır. Bayrak true
olarak ayarlandığında, bir komut dosyası çekirdek sürümünü ve çekirdek yapılandırmalarını kurulu çekirdek görüntüsünden çıkarır.
- Android 10'a güncelleme yaparken OTA güncelleme paketi çekirdek sürümünü ve yapılandırmasını içerir. Android 10 çalıştıran cihazlardaki OTA istemcileri, uyumluluğu kontrol etmek için bu bilgiyi okur.
- Android 11'e güncelleme yaparken OTA paketi oluşturma, uyumluluğu kontrol etmek için çekirdek sürümünü ve yapılandırmasını okur.
Komut dosyası, çekirdek görüntünüz için bu bilgiyi çıkaramazsa aşağıdakilerden birini yapın:
- Komut dosyasını, çekirdek formatınızı destekleyecek ve AOSP'ye katkıda bulunacak şekilde düzenleyin.
-
BOARD_KERNEL_VERSION
çekirdek sürümüne veBOARD_KERNEL_CONFIG_FILE
yerleşik çekirdek yapılandırma dosyası.config
yoluna ayarlayın. Çekirdek görüntüsü güncellendiğinde her iki değişkenin de güncellenmesi gerekir. - Alternatif olarak, çekirdek gereksinimlerini kontrol etmeyi atlamak için
PRODUCT_OTA_ENFORCE_VINTF_KERNEL_REQUIREMENTS
değerinifalse
olarak ayarlayın. Herhangi bir uyumsuzluk gizlendiğinden ve yalnızca güncellemeden sonra VTS testleri çalıştırıldığında keşfedildiğinden bu önerilmez.
Çekirdek bilgi çıkarma komut dosyası extract_kernel.py
kaynak kodunu görüntüleyebilirsiniz.