Vérifier la partition system_other

Implémentation

Les appareils Android équipés d'Android 9 ou version antérieure avec des partitions A/B peuvent utiliser la partition system_other inactive (par exemple, system_b lorsque slot_a est actif) pour stocker des fichiers VDEX/ODEX préoptimisés. Lorsque system_other est utilisé, ro.cp_system_other_odex est défini sur 1 pour que le service de gestionnaire de paquets définisse sys.cppreopt=requested pour que cppreopts.rc puisse y agir.

Dans Android 10, libfs_avb est introduit pour prendre en charge la validation AVB autonome pour la partition system_other. La struct VBMeta d'une telle partition est ajoutée à la fin de la partition, pour être validée par une clé publique attendue du système de fichiers. Le système de compilation Android prend en charge la signature system_other.img tout en incluant la clé de signature correspondante sous /product/etc/security/avb/system_other.avbpubkey. L'outil de publication sign_target_files_apks.py permet également de remplacer la clé de signature par une version de publication.

Les appareils A/B lancés avant Android 10 disposent d'une partition system_other physique, même s'ils sont mis à niveau vers Android 10 avec PRODUCT_RETROFIT_DYNAMIC_PARTITIONS défini sur true.

Les appareils A/B lancés avec Android 10 doivent disposer d'une partition system_other logique. L'exemple suivant montre un fichier fstab.postinstall standard qui active AVB sur 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

Les appareils qui doivent activer AVB sur la partition system_other doivent placer le fichier fstab dans la partition de produit et définir la propriété ro.postinstall.fstab.prefix sur /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