Implementasi
Perangkat yang didukung Android dengan Android 9 dan yang lebih lama 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 sebelumnya. Jika system_other
digunakan,
ro.cp_system_other_odex
ditetapkan ke 1 untuk layanan pengelola
paket guna menetapkan sys.cppreopt=requested
agar cppreopts.rc
dapat ditindaklanjuti.
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
sekaligus menyertakan kunci penandatanganan yang sesuai
di bagian /product/etc/security/avb/system_other.avbpubkey
. Alat
rilis sign_target_files_apks.py
juga mendukung penggantian kunci
tanda tangan ke versi rilis.
Perangkat A/B yang diluncurkan sebelum Android 10 memiliki partisi
system_other
fisik, meskipun 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
umum yang mengaktifkan AVB di
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 di partisi system_other
harus menempatkan file fstab
di partisi produk dan menetapkan
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