Implementierung
Android-Geräte mit Android 9 und niedriger, die A/B-Partitionen haben, können die inaktive system_other-Partition (z. B. system_b, wenn slot_a aktiv ist) verwenden, um voroptimierte VDEX/ODEX-Dateien zu speichern. Wenn system_other verwendet wird,
ro.cp_system_other_odex wird auf 1 gesetzt, damit der Paketmanager
Dienst sys.cppreopt=requested für cppreopts.rc
festlegt, um darauf zu reagieren.
In Android 10 wird libfs_avb
eingeführt, um die eigenständige AVB-Überprüfung für die
system_other Partition zu unterstützen. Die VBMeta-Struktur einer solchen Partition wird an das Ende der Partition angehängt, um mit einem erwarteten öffentlichen Schlüssel aus dem Dateisystem überprüft zu werden. Das Android-Build-System unterstützt das Signieren von system_other.img und schließt den entsprechenden Signaturschlüssel unter /product/etc/security/avb/system_other.avbpubkey ein. Das Release-Tool sign_target_files_apks.py unterstützt auch das Ersetzen des Signaturschlüssels durch eine Release-Version.
A/B-Geräte, die vor Android 10 auf den Markt kamen, haben eine physische system_other-Partition, auch wenn sie mit PRODUCT_RETROFIT_DYNAMIC_PARTITIONS auf true auf Android 10 aktualisiert werden.
A/B-Geräte, die mit Android 10 auf den Markt kamen, müssen eine logische system_other-Partition haben. Das folgende Beispiel zeigt eine typische fstab.postinstall-Datei, die AVB auf system_other aktiviert.
#<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
Auf Geräten, auf denen AVB auf der system_other-Partition
aktiviert werden muss, sollte die fstab-Datei in der Produktpartition platziert und die
Eigenschaft ro.postinstall.fstab.prefix auf /product gesetzt werden.
# 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