Android 10 sürümünden itibaren
Çalıştırmak için kullanılan Genel Sistem Görüntüsü (GSI)
CTS-on-GSI/VTS uygunluk testi değiştirildi
kullanıcı hata ayıklama işleminden kullanıcı derleme türüne geçirmeye yarar. Bu,
VTS, VTS testi için yeterli olduğundan, VTS testiyle ilgili bir sorun
Çalışmak için adb root
, ancak
adb root
, kullanıcı tarafından geliştirilen bir cihazda kullanılamıyor.
Biradb root
Bootloader'ı yükleyen kullanıcı tarafından oluşturulmuş cihaz
kilidi açıldı. Bu, test sürecini basitleştirir
CTS-on-GSI için aynı kullanıcı derlemesini (system.img
) kullanarak
VTS-on-GSI. STS kurulumu için başka bir kullanıcı hata ayıklama OEM'si (system.img
) hâlâ kullanılıyor
gereklidir.
Aşağıdaki tabloda, Android 10.
Test paketi | Şununla test et: | Topluluk | RAM diskinde hata ayıkla | adb kökü nedir? | Android 9 -> 10 derleme varyantı değişikliği |
---|---|---|---|---|---|
CTS | OEM'in sistemi | kullanıcı | H | H | Değiştirmedi |
GSI'de CTS | GSI | kullanıcı | H | H | kullanıcıdebug -> kullanıcı GSI yayın imzalandı |
STS | OEM'in sistemi | kullanıcı hata ayıklama | H | Y | Q'daki yenilikler |
GD | GSI | kullanıcı | Y | Y | kullanıcıdebug -> kullanıcı GSI yayın imzalandı |
Genel Bakış
Bu ek görüntü dosyaları, derleme klasörü altında oluşturulur
(${ANDROID_PRODUCT_OUT}
):
boot-debug.img
vendor_boot-debug.img
boot-debug.img
, cihazın boot
bölümüne yanıp söndüğünde
sistem sepolicy dosyasının kullanıcı hata ayıklama sürümü ve ek bir özellik dosyası,
adb_debug.prop
yüklendi. Bu, adb root
için kullanıcı derlemesine olanak tanır
system.img
(GSI veya OEM’ler).
Örneğin,
Genel Kernel Görüntüsü (GKI)
vendor_boot
bölümü olan cihazlar kullanıldığında boot-debug.img
,
yanıp söner. boot
bölümünün onaylı bir GKI görüntüsü ile güncellenmesi gerekir.
Bunun yerine vendor_boot-debug.img
, vendor_boot
üzerine gelmelidir.
bölümlendirmek (hata ayıklama karmasını kolaylaştırmak)
Hata ayıklama RAM'i kullanmanın ön koşulları
Hata ayıklama RAM'i, uygunluk testlerini çalıştıran OEM tarafından sağlanır. Google İmzalı verilmemelidir ve yalnızca cihazın kilidi açıkken kullanılabilir.
Hata ayıklama RAM diski oluşturulmaz veya aşağıdaki türde cihazları yeni sürüme geçirmek için kullanılmaz:
BOARD_BUILD_SYSTEM_ROOT_IMAGE
doğru- Çekirdek komut satırında
skip_initramfs
Android 12 GSI
Hata ayıklama RAM'ini Android 12 GSI ile kullanmak için ek talimat gerekmez.
29.09.2021 tarihinden itibaren, hata ayıklama RAM'lerini
repack_bootimg
aracı. Android 12 GSI
SGR1.210929.001 (7777720)
, en son sürüme sahip güncellemeden sonra
system.img
içinde userdebug_plat_sepolicy.cil
dosyayı yok sayıyor
Hata ayıklama RAM diskinden userdebug_plat_sepolicy.cil
. Bkz.
Şu alan için CLs:
bolca fırsat sunuyor.
Android 11 GSI
boot-debug.img
veya vendor_boot-debug.img
kullanıldığında sistem
sepolicy, hata ayıklamadaki userdebug_plat_sepolicy.cil
dosyasından yüklenir
boot-debug.img
veya vendor_boot-debug.img
klasörünün ramdisk'i. GSI'yı başlatmak için
lütfen
android11-gsi
dalını kullanarak boot-debug.img
veya vendor_boot-debug.img
öğenizi yeniden oluşturabilirsiniz.
Alternatif olarak, repack_bootimg
aracı bir
Güncellenen GSI politikası ile boot-debug.img
veya vendor_boot-debug.img
.
Hata ayıklama RAM diskini yeniden paketleme
boot-debug.img
ürününü yeniden oluşturmak için sepolitika değişikliklerini uygulamak yerine iş ortakları
GSI sepolicy dosyasını boot-debug.img
olarak güncellemek için repack_bootimg
kullanabilir
(veya cihazda GKI kullanılıyorsa vendor_boot-debug.img
).
İlgili adımlar aşağıda verilmiştir:
otatools.zip
uygulamasını şuradan indir: https://ci.android.com adresine gidin.aosp_arm64-userdebug
derleme yapılarından indirmenizi öneririzaosp-main
tarihinde.repack_bootimg
için yürütme ortamını ayarlayın:unzip otatools.zip -d otatools
export PATH="${PWD}/otatools/bin:${PATH}"
repack_bootimg --help
userdebug_plat_sepolicy.cil
dosyasını indirin veya Kullandığınız GSI derlemesindenboot-with-debug-ramdisk-${KERNEL_VERSION}.img
yardımcı oluyorum. Örneğin,RJR1.211020.001 (7840830)
, ardından şuradan indirin: https://ci.android.com/builds/submitted/7840830/aosp_arm64-user/engel.boot-debug.img
veyavendor_boot-debug.img
adlı cihazı şu uygulamayla güncelleyin:userdebug_plat_sepolicy.cil
:repack_bootimg --local --dst_bootimg boot-debug.img \ --ramdisk_add userdebug_plat_sepolicy.cil:userdebug_plat_sepolicy.cil \ --ramdisk_add userdebug_plat_sepolicy.cil:first_stage_ramdisk/userdebug_plat_sepolicy.cil
# If using GKI
repack_bootimg --local --dst_bootimg vendor_boot-debug.img \ --ramdisk_add userdebug_plat_sepolicy.cil:userdebug_plat_sepolicy.cil \ --ramdisk_add userdebug_plat_sepolicy.cil:first_stage_ramdisk/userdebug_plat_sepolicy.cil
boot-with-debug-ramdisk-${KERNEL_VERSION}.img
ile:repack_bootimg --src_bootimg boot-with-debug-ramdisk-5.4.img \ --dst_bootimg boot-debug.img \ --ramdisk_add first_stage_ramdisk/userdebug_plat_sepolicy.cil:userdebug_plat_sepolicy.cil \ --ramdisk_add first_stage_ramdisk/userdebug_plat_sepolicy.cil:first_stage_ramdisk/userdebug_plat_sepolicy.cil
# If using GKI
repack_bootimg --src_bootimg boot-with-debug-ramdisk-5.4.img \ --dst_bootimg vendor_boot-debug.img \ --ramdisk_add first_stage_ramdisk/userdebug_plat_sepolicy.cil:userdebug_plat_sepolicy.cil \ --ramdisk_add first_stage_ramdisk/userdebug_plat_sepolicy.cil:first_stage_ramdisk/userdebug_plat_sepolicy.cil
--ramdisk_add
işlevinin bağımsız değişkenleri cihaza göre ayarlanabilir yapılandırmanın üç yolu vardır. Ayrıntılı bilgi için sonraki bölüme açıklama.
Kullanıcı hata ayıklama iş politikası yolu
Yukarıdaki repack_bootimg
, userdebug_plat_sepolicy.cil
dosyasını
--src_bootimg
ramdisk'i --dst_bootimg
ramdisk'ine çıkar. Ancak, kullandığınız yol
içindeki hatalar farklı Android sürümlerinde farklı olabilir. İçinde
Android 10 ve 11'de ise
Şuna sahip cihazlar için first_stage_ramdisk/userdebug_plat_sepolicy.cil
:
androidboot.force_normal_boot=1
değerini ekleyin. Aksi halde,
yol userdebug_plat_sepolicy.cil
.
androidboot.force_normal_boot
olup olmadığını kontrol etmek için aşağıdaki komutu çalıştırın
ifadesini girin:
adb root
adb shell cat /proc/cmdline | grep force_normal_boot
Android 12'den itibaren hata ayıklama içindeki yol
ramdisk, varlığından bağımsız olarak her zaman userdebug_plat_sepolicy.cil
olur
androidboot.force_normal_boot=1
değerini ekleyin. Aşağıdakiler
tablosu, farklı Android sürümlerindeki hata ayıklama RAM'inde bulunan yolları gösterir.
Resimde hata ayıkla | Android 10 | Android 11 | Android 12 |
---|---|---|---|
hata ayıklama-ramdisk-${KERNEL_VERSION} ile GKI önyüklemesi | Yok | first_stage_ramdisk/userdebug_plat_sepolicy.cil |
userdebug_plat_sepolicy.cil |
Cihaza özgü boot-debug.img | force_normal_boot'a bağlıdır | force_normal_boot'a bağlıdır | userdebug_plat_sepolicy.cil |
Cihaza özgü tedarikçi_boot-debug.img | Yok | force_normal_boot'a bağlıdır | userdebug_plat_sepolicy.cil |
Dosyaları bir--ramdisk_add
src_path:dst_path
çiftli liste. Örneğin, aşağıdaki komut kopyalanır
Android 11 boot-with-debug-ramdisk-5.4.img
sürümünden first_stage_ramdisk/userdebug_plat_sepolicy.cil
dosyası
Android 11 vendor_boot-debug.img
içinde first_stage_ramdisk/userdebug_plat_sepolicy.cil
.
repack_bootimg \
--src_bootimg boot-with-debug-ramdisk-5.4.img \
--dst_bootimg vendor_boot-debug.img \
--ramdisk_add first_stage_ramdisk/userdebug_plat_sepolicy.cil:first_stage_ramdisk/userdebug_plat_sepolicy.cil
Çekirdek komut satırında androidboot.force_normal_boot=1
yoksa
komutun, hedef yolu
userdebug_plat_sepolicy.cil
.
repack_bootimg \
--src_bootimg boot-with-debug-ramdisk-5.4.img \
--dst_bootimg vendor_boot-debug.img \
--ramdisk_add first_stage_ramdisk/userdebug_plat_sepolicy.cil:userdebug_plat_sepolicy.cil
AVB altbilgisi ekleme
--dst_bootimg
hizmetine iletilen resim
AVB zincirli
bölümünde, repack_bootimg
çalıştırıldıktan sonra bir AVB altbilgisinin eklenmesi gerekir.
komutuna ekleyin.
Örneğin, repack_bootimg
çalıştırmadan önce aşağıdaki komutu çalıştırarak
vendor_boot-debug.img
cihazında zincirli AVB altbilgisi olup olmadığını kontrol edin.
avbtool info_image --image vendor_boot-debug.img
Orijinal olarak zincirli bir AVB altbilgisi varsa AVB altbilgisi eklenmelidir
repack_bootimg
komutunu çalıştırdıktan sonra.
vendor_boot-debug.img
, hata ayıklama belleği yalnızca bir
boot
veya
vendor_boot
bölümü.
avbtool add_hash_footer --partition_name vendor_boot \
--partition_size 100663296 \
--algorithm SHA256_RSA4096 \
--key otatools/external/avb/test/data/testkey_rsa4096.pem \
--image vendor_boot-debug.img