Memverifikasi partisi sistem_lainnya

Penerapan

Perangkat yang didukung Android dengan Android 9 dan lebih rendah yang memiliki partisi A/B dapat menggunakan partisi system_other yang tidak aktif (misalnya, system_b saat slot_a aktif) untuk menyimpan file VDEX/ODEX yang telah dioptimalkan. Ketika system_other digunakan, ro.cp_system_other_odex disetel ke 1 agar layanan manajer paket menyetel sys.cppreopt=requested agar cppreopts.rc dapat menindaklanjutinya.

Di Android 10,libfs_avb diperkenalkan untuk mendukung verifikasi AVB mandiri untuk partisi system_other . Struktur VBMeta dari partisi tersebut ditambahkan ke akhir partisi, untuk diverifikasi oleh kunci publik yang diharapkan dari sistem file. Sistem build Android mendukung penandatanganan system_other.img sambil menyertakan kunci penandatanganan yang sesuai di bawah /product/etc/security/avb/system_other.avbpubkey . Alat rilis sign_target_files_apks.py juga mendukung penggantian kunci penandatanganan ke versi rilis.

Perangkat A/B yang diluncurkan sebelum Android 10 memiliki partisi system_other fisik, meskipun perangkat tersebut diupgrade ke Android 10 dengan PRODUCT_RETROFIT_DYNAMIC_PARTITIONS disetel ke true .

Perangkat A/B yang diluncurkan dengan Android 10 harus memiliki partisi system_other yang logis. Contoh berikut menunjukkan file fstab.postinstall khas yang mengaktifkan AVB pada system_other .

#<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

Perangkat yang perlu mengaktifkan AVB pada partisi system_other harus menempatkan file fstab di partisi produk dan mengatur properti ro.postinstall.fstab.prefix ke /product .

# 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