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:
- Tiz. GSI, AIDL/HIDL tabanlı mimari değişiklikler (Treble olarak da bilinir) AIDL arayüzleri ve HIDL arayüzleri. GSI'yı şuralarda kullanabilirsiniz: AIDL/HIDL sağlayıcı arayüzlerini kullanan tüm Android cihazlar. (Daha fazla bilgi için bkz. Mimari kaynakları.)
- Dosya sistemi. GSI, ext4 dosya sistemini kullanır.
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 GSIaosp_$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 özelvendor_boot-debug.img
veyaboot-debug.img
,/system/bin/init
yüklenecek GSI'danuserdebug_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ştirirsystem/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çinimg2simg
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 GSIaosp_$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
veaosp_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:
- 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.)
- Mevcut sistem bölümünü silin, ardından GSI'yı sisteme yanıp sönün bölüm.
- Kullanıcı verilerini silin ve diğer gerekli bölümlerdeki verileri temizleyin ( (ör. kullanıcı verileri ve sistem bölümleri).
- Cihazı yeniden başlatın.
Örneğin, bir GSI cihazını herhangi bir Pixel cihaza yüklemek için:
- Başlatma yeri:
fastboot
modu ve bootloader'ı tıklayın. - Desteklenen cihazlar
fastbootd
ayrıcafastbootd
ürününe şu şekilde başlatılması gerekir:$ fastboot reboot fastboot
- GSI'yı silin ve sistem bölümüne yükleyin:
$ fastboot erase system $ fastboot flash system system.img
- 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
- Yeniden başlatma:
$ fastboot reboot
Resizing 'system_a' FAILED (remote: 'Not enough space to resize partition') fastboot: error: Command failed
$ 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:- Yamayı
AOSP
main
dalı. DESSERT-gsi
için yamayı şifreleme.- Cherrypick'in incelenmesi için hata bildiriminde bulunun.
- Yamayı
AOSP
- 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.