Uygulama
Android 9 ve önceki sürümleri çalıştıran, A/B bölümlerine sahip Android tabanlı cihazlar, önceden optimize edilmiş VDEX/ODEX dosyalarını depolamak için etkin olmayan system_other
bölümünü kullanabilir (örneğin, slot_a
etkinken system_b
). system_other
kullanıldığında, paket yöneticisi hizmetinin cppreopts.rc
'ın işlem yapması için sys.cppreopt=requested
'yi ayarlaması amacıyla ro.cp_system_other_odex
1 olarak ayarlanır.
Android 10'da, system_other
bölümü için bağımsız AVB doğrulamasını desteklemek üzere libfs_avb
tanıtıldı. Bu tür bir bölümün VBMeta yapısı, dosya sistemindeki beklenen ortak anahtar tarafından doğrulanması için bölümün sonuna eklenir. Android derleme sistemi, /product/etc/security/avb/system_other.avbpubkey
altında ilgili imzalama anahtarını ekleyerek system_other.img
imzalamayı destekler. Sürüm aracı sign_target_files_apks.py
, imzalama anahtarının sürüm sürümüyle değiştirilmesini de destekler.
Android 10'dan önce kullanıma sunulan A/B cihazlarda, PRODUCT_RETROFIT_DYNAMIC_PARTITIONS
true
olarak ayarlanmış olsa bile Android 10'a yükseltilmiş olsa bile fiziksel bir system_other
bölümü bulunur.
Android 10 ile kullanıma sunulan A/B cihazlarda mantıksal bir system_other
bölümü olmalıdır. Aşağıdaki örnekte, system_other
üzerinde AVB'yi etkinleştiren tipik bir fstab.postinstall
dosyası gösterilmektedir.
#<dev> <mnt_point> <type> <mnt_flags options> <fs_mgr_flags> system /postinstall ext4 ro,nosuid,nodev,noexec slotselect_other,logical,avb_keys=/product/etc/security/avb/system_other.avbpubkey
system_other
bölümünde AVB'nin etkinleştirilmesi gereken cihazlar, fstab
dosyasını ürün bölümüne yerleştirmeli ve ro.postinstall.fstab.prefix
mülkünü /product
olarak ayarlamalıdır.
# Use /product/etc/fstab.postinstall to mount system_other. PRODUCT_PRODUCT_PROPERTIES += \ ro.postinstall.fstab.prefix=/product PRODUCT_COPY_FILES += \ $(LOCAL_PATH)/fstab.postinstall:$(TARGET_COPY_OUT_PRODUCT)/etc/fstab.postinstall