Uygulama
A/B bölümleri olan Android 9 ve önceki sürümlere sahip Android destekli cihazlar, önceden optimize edilmiş VDEX/ODEX dosyalarını depolamak için etkin olmayan system_other bölümünü (örneğin, slot_a etkin olduğunda) kullanabilir.system_b system_other kullanıldığında, paket yöneticisi hizmetinin cppreopts.rc için sys.cppreopt=requested değerini ayarlayıp üzerinde işlem yapabilmesi için ro.cp_system_other_odex değeri 1 olarak ayarlanır.
Android 10'da, libfs_avb
bölümü için bağımsız AVB doğrulaması desteği sunulur.
system_other Böyle bir bölümün VBMeta yapısı, dosya sisteminden beklenen bir ortak anahtarla doğrulanmak üzere bölümün sonuna eklenir. Android derleme sistemi, system_other.img altında ilgili imzalama anahtarını eklerken imzalama işlemini destekler./product/etc/security/avb/system_other.avbpubkey Yayınlama aracı sign_target_files_apks.py, imzalama anahtarının yayın sürümünde değiştirilmesini de destekler.
Android 10'dan önce piyasaya sürülen A/B cihazlar, true olarak ayarlanmış PRODUCT_RETROFIT_DYNAMIC_PARTITIONS ile Android 10'a yükseltilmiş olsa bile fiziksel bir system_other bölümüne sahiptir.
Android 10 ile kullanıma sunulan A/B cihazlarda mantıksal 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 özelliğini /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