Mise en œuvre
Les appareils fonctionnant sous Android avec Android 9 et versions antérieures dotés de partitions A/B peuvent utiliser la partition system_other
inactive (par exemple, system_b
lorsque slot_a
est actif) pour stocker les 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 gestion de packages définisse sys.cppreopt=requested
pour que cppreopts.rc
agisse en conséquence.
Dans Android 10,libfs_avb
est introduit pour prendre en charge la vérification AVB autonome pour la partition system_other
. La structure VBMeta d'une telle partition est ajoutée à la fin de la partition, pour être vérifiée par une clé publique attendue du système de fichiers. Le système de build 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
prend également en charge le remplacement de la clé de signature par une version commerciale.
Les appareils A/B lancés avant Android 10 ont une partition physique system_other
, 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 avoir une partition logique system_other
. L'exemple suivant montre un fichier fstab.postinstall
typique 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 périphériques qui doivent activer AVB sur la partition system_other
doivent placer le fichier fstab
dans la partition du 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