Genel sistem görüntüleri

Genel sistem görüntüsü (GSI), ayarlanmış yapılandırmalara sahip bir sistem görüntüsüdür yeniden hedefleme kampanyaları için kullanılabilir. Sadece Android uygulaması olarak kabul edilir Android Açık Kaynak Projesi (AOSP) koduyla Android 9 veya sonraki sürümlere sahip cihazlar başarıyla çalıştırılabilir.

GSI'lar, VTS ve CTS-on-GSI testlerini çalıştırmak için kullanılır. Bir Android cihaz bir GSI ile değiştirilir ve daha sonra Tedarikçi Firma Test Paketi (VTS) ve Uyumluluk Test Paketi (CTS) Cihazın en son sürümle satıcı arayüzlerini doğru şekilde uyguladığından ve kullanıma sunuyoruz.

GSI'ları kullanmaya başlamak için aşağıdaki bölümleri inceleyerek GSI yapılandırmaları (ve izin verilir) sapmalar) ve türler için de geçerlidir. GSI kullanmaya hazır olduğunuzda Cihazınıza ait GSI'yı indirin ve derleyin sonra Android'e GSI'yı yükleyin olanak tanır.

GSI yapılandırması ve varyansları

Geçerli Android GSI'nın yapılandırması aşağıdaki gibidir:

Geçerli Android GSI'da aşağıdaki önemli farklar bulunur:

  • CPU mimarisi. Farklı CPU talimatları için destek (ARM, x86 vb.) ve CPU bit hızı (32 bit veya 64 bit).

Treble uyumluluk testleri için GSI hedefleri

Uygunluk testi için kullanılan GSI, ile başlar.

Cihaz türü Hedef oluştur
Android 14 ile kullanıma sunulan cihazlar gsi_$arch-user (İmzalı)
Android 13 ile kullanıma sunulan cihazlar gsi_$arch-user (İmzalı)
Android 12L ile kullanıma sunulan cihazlar gsi_$arch-user (İmzalı)
Android 12 ile kullanıma sunulan cihazlar gsi_$arch-user (İmzalı)
Android 11 ile kullanıma sunulan cihazlar gsi_$arch-user (İmzalı)

Tüm GSI'lar Android 12 kod tabanından üretilir ve her CPU mimarisinin karşılık gelen bir GSI ikili programı vardır ( GSI Oluşturma'daki hedef).

Android 12 GSI değişiklikleri

Android 12 ile kullanıma sunulan veya bu sürüme güncellenen cihazlarda Android kullanılmalıdır. 12 GSI kullanılmaktadır. Bu, aşağıdaki önemli değişiklikleri yaptık:

  • Hedef ad. Uygunluk için GSI hedef adı testler gsi_$arch olarak değiştirildi. Hedef ada sahip GSI aosp_$arch, Android uygulama geliştiriciler için saklanır. Test planı CTS-on-GSI, test tedarikçi firması arayüzü için de azaltıldı.
  • Eski GSI kullanımdan kaldırılmıştır. GSI 12 Android 8.0 veya 8.1 yüklü cihazlarda bulunan geçici çözümleri kaldırır: emin olun.
  • Userdebug SEPolicy. GSI gsi_$arch userdebug_plat_sepolicy.cil değerini içerir. Yanıp sönerken OEM'e özel vendor_boot-debug.img veya boot-debug.img, /system/bin/init yüklenecek GSI'dan userdebug_plat_sepolicy.cil system.img. Referans Kaynakları VTS Testine benzer Ayrıntılar için Ramdisk'te hata ayıklayın.

Android 11 GSI değişiklikleri

Android 11 ile kullanıma sunulan veya bu sürüme güncellenen cihazlar Android kullanmalıdır 11 GSI kullanılmaktadır. Bu, aşağıdaki önemli değişiklikleri yaptık:

  • system_ext içeriklerine bakın. Android 11, yeni bir system_ext bölümünü tanımlar. GSI, sistem uzantısı içeriğini klasörün altına yerleştirir system/system_ext
  • APEX'ler. GSI, hem düzleştirilmiş hem de sıkıştırılmış APEX'ler içerir. Hangisinin kullanılacağı ro.apex.updatable sistem özelliği tarafından belirlenir onay kutusunu işaretleyin. Referans Kaynakları Sistemi APEX güncellemelerini destekleyecek şekilde yapılandırma hakkında ayrıntılı bilgi edinin.

Android 10 GSI değişiklikleri

Android 10 ile kullanıma sunulan veya bu sürüme güncellenen cihazlar Android kullanmalıdır Uygunluk testi için 10 GSI. Bu, aşağıdaki önemli değişiklikleri yaptık:

  • Kullanıcı derlemesi. GSI, Android'den bir kullanıcı derlemesine sahiptir 10. Android 10'da kullanıcı derlemesi GSI, CTS-on-GSI/VTS uyumluluk testlerinde kullanılabilir. Referans Kaynakları Hata Ayıklama Ramdisk ile VTS Testi inceleyebilirsiniz.
  • Ayrıştırılmamış biçim. Hedefli GSI aosp_$arch, ayrılmamış bir biçimde oluşturulur. Tekliflerinizi otomatikleştirmek ve optimize etmek için Aşağıdaki durumda ayrıştırılmamış GSI'yı seyrek biçime dönüştürmek için img2simg gerekir.
  • Kök olarak sistem. adlı eski GSI derleme hedefi aosp_$arch_a kullanımdan kaldırıldı. Yeni sürüme geçirilen cihazlar için 8 veya 8.1'den Android 10'a ramdisk ve kök olarak olmayan sistem için eski GSI aosp_$arch_ab'yi kullanın. Ramdisk'teki yükseltilmiş init, OEM sistemini destekliyor.img kök olarak sistem yaptık.
  • Başlatmayı doğrulayın. GSI'yı kullanıyorsanız yalnızca cihazın kilidini açmanız gerekir. Doğrulama işleminin devre dışı bırakılmasına gerek yoktur.

Android 9 GSI değişiklikleri

Android 9 ile kullanıma sunulan veya bu sürüme güncellenen cihazlarda Android kullanılmalıdır. Uygunluk testi için 9 GSI. Bu, aşağıdaki önemli değişiklikleri yaptık:

  • GSI ve emülatörü birleştirir. GSI'lar sistemden oluşturulur. emülatör ürünlerinin resimleri (örneğin, aosp_arm64 ve aosp_x86.
  • Kök olarak sistem. Android'in önceki sürümlerinde, cihazlar A/B güncellemelerini desteklemeyenler, sistem görüntüsünü /system dizini. Android 9'da sistem görüntüsünün kökü, cihazın kökü olarak eklenir.
  • 64 bit bağlayıcı arayüzü. Android 8.x, 32 bit GSI'lerde kullandım. Android 9 32 bit bağlayıcı arayüzünü desteklemediğinden hem 32 bit GSI hem de 64 bit GSI'ler, 64 bit bağlayıcı arayüzünü kullanır.
  • VNDK yaptırımı. Android 8.1'de VNDK isteğe bağlıydı. Android 9'dan itibaren VNDK zorunludur. BOARD_VNDK_VERSION ayarlanmalıdır.
  • Uyumlu sistem özelliği. Android 9, uyumlu bir cihaz için erişim kontrolünü etkinleştirir. sistem özelliğine (PRODUCT_COMPATIBLE_PROPERTY_OVERRIDE := true) gidin.

Android 9 Keymaster değişiklikleri

Android'in önceki sürümlerinde Keymaster 3 veya daha düşük bir sürüm kullanan cihazlar sürüm bilgisinin sürüm bilgilerinin (ro.build.version.release ve ro.build.version.security_patch), çalışan sistem tarafından bildirildi bootloader tarafından bildirilen sürüm bilgileriyle eşleşti. Bu tür bilgiler, önyükleme görüntüsü başlığından alınır.

Android 9 ve sonraki sürümlerde, GSI'yı başlatması gerekir. Özellikle, Keymaster doğrulama işlemi gerçekleştirmemelidir. GSI tarafından bildirilen sürüm bilgisi ile sürüm bilgisi eşleşmeyebileceği için bunu bildirir. Keymaster 3 veya daha düşük ise, tedarikçilerin doğrulamayı atlamak için Keymaster uygulamasını değiştirmesi gerekir (veya Keymaster 4'e yükseltin). Keymaster hakkında ayrıntılı bilgi için Donanım Destekli Anahtar Deposu.

GSI'ları indirin

Önceden oluşturulmuş GSI'ları AOSP sürekli entegrasyonundan (CI) indirebilirsiniz adresindeki web sitesi ci.android.com adresine gidin. Donanımınızın GSI türü platform indirilemiyor. için GSI'lar oluşturmaya ilişkin ayrıntılar içerir.

GSI'lar oluşturma

Android 9'dan itibaren her Android sürümünde bir AOSP'de DESSERT-gsi adlı GSI dalı (örneğin, android12-gsi, Android'deki GSI dalıdır 12). GSI dalları, Tüm güvenlik yamalarını ve GSI yamaları uygulandı.

GSI oluşturmak için Android kaynak ağacını bir GSI şubesinden indirerek GSI derlemesi seçme hedefi belirleyin. Doğru GSI'yı belirlemek için aşağıdaki derleme hedefi tablolarını kullanın sürümü yüklü olmalıdır. Derleme tamamlandıktan sonra sistem GSI olarak görüntüsü (yani system.img) olur ve çıkış klasöründe görünür out/target/product/generic_arm64.

Örneğin, GSI derleme hedefi oluşturmak için android12-gsi GSI dalında gsi_arm64-userdebug, aşağıdaki komutları çalıştırın.

$ repo init -u https://android.googlesource.com/platform/manifest -b android12-gsi
$ repo sync -cq
$ source build/envsetup.sh
$ lunch gsi_arm64-userdebug
$ make -j4

Android GSI derleme hedefleri

Aşağıdaki GSI derleme hedefleri, Android'de kullanıma sunulan cihazlar içindir 9 veya sonraki sürümler.

GSI adı CPU yapısı Bağlayıcı arayüzü bit hızı Kök olarak sistem Hedef oluştur
gsi_arm ALARMI ETKİNLEŞTİR 32 Y gsi_arm-user
gsi_arm-userdebug
gsi_arm64 94,99 64) Y gsi_arm64-user
gsi_arm64-userdebug
gsi_x86 x86 32 Y gsi_x86-user
gsi_x86-userdebug
gsi_x86_64 x86-64 64) Y gsi_x86_64-user
gsi_x86_64-userdebug

Yanıp sönen GSI'lar için gereksinimler

Android cihazların farklı tasarımları olabilir. Dolayısıyla, Android için tüm cihazlara uygulanacak GSI'nın yanıp sönmesine yönelik talimatlar içerir. Şununla kontrol et: adresini ziyaret edin. Genel bir kılavuz olarak aşağıdaki adımları uygulayın:

  1. Cihazda aşağıdakilerin bulunduğundan emin olun:
    • Treblize
    • Cihazların kilidini açmak için bir yöntem (böylece bunlar, fastboot) olarak değiştirildi
    • fastboot üzerinden yanıp sönebilir hale getirmek için kilitsiz durumda (fastboot uygulamasının en son sürümüne sahip olduğunuzdan emin olmak için bakın.)
  2. Mevcut sistem bölümünü silin, ardından GSI'yı sisteme yanıp sönün bölüm.
  3. Kullanıcı verilerini silin ve diğer gerekli bölümlerdeki verileri temizleyin ( (ör. kullanıcı verileri ve sistem bölümleri).
  4. Cihazı yeniden başlatın.

Örneğin, bir GSI cihazını herhangi bir Pixel cihaza yüklemek için:

  1. Başlatma yeri: fastboot modu ve bootloader'ı tıklayın.
  2. Desteklenen cihazlar fastbootd ayrıca fastbootd ürününe şu şekilde başlatılması gerekir:
    $ fastboot reboot fastboot
  3. GSI'yı silin ve sistem bölümüne yükleyin:
    $ fastboot erase system
    $ fastboot flash system system.img
    
  4. Kullanıcı verilerini silin ve diğer gerekli bölümlerdeki verileri temizleyin ( örneğin, kullanıcı verileri ve sistem bölümleri):
    $ fastboot -w
  5. Yeniden başlatma:
    $ fastboot reboot
ziyaret edin. Daha küçük sistem bölümlerine sahip Android 10 veya daha yeni cihazlarda GSI değeri yanıp sönerken aşağıdaki hata mesajı görünebilir:
    Resizing 'system_a'    FAILED (remote: 'Not enough space to resize partition')
    fastboot: error: Command failed
Şu komutu kullanarak ürün bölümünü silip olabilir. Bu, GSI'nin yüklenmesi için fazladan alan sağlar:
$ fastboot delete-logical-partition product_a
_a sonrası ek, sistem bölümünün alan kimliğiyle eşleşmelidir. Örneğin system_a gibi.

GSI'lara katkıda bulunun

Android, GSI geliştirmeye olan katkılarınızı memnuniyetle karşılar. Siz de katılabilirsiniz. ve GSI'nın iyileştirilmesine yardımcı olmak için:

  • GSI yaması oluşturma. DESSERT-gsi. bir geliştirme dalı değildir ve yalnızca bu nedenle, GSI yaması göndermek için şunları yapmanız gerekir:
    1. Yamayı AOSP main dalı.
    2. DESSERT-gsi için yamayı şifreleme.
    3. Cherrypick'in incelenmesi için hata bildiriminde bulunun.
  • GSI hatalarını bildirme veya başka önerilerde bulunma. İnceleyin buradaki talimatlar Hataları bildirme, ardından göz atın veya dosya oluşturun GSI hata.

İpuçları

Adb'yi kullanarak gezinme çubuğu modunu değiştirin

GSI ile başlatma sırasında gezinme çubuğu modu, satıcı tarafından geçersiz kılınarak yapılandırılır. Şunları yapabilirsiniz: çalışma zamanında aşağıdaki adb komutunu çalıştırarak gezinme çubuğu modunu değiştirin.

adb exec-out cmd overlay enable-exclusive com.android.internal.systemui.navbar.mode

Burada mode; threebutton, twobutton, gestural vb.