Verifica system_other partizione

Implementazione

I dispositivi basati su Android con Android 9 e versioni precedenti che dispongono di partizioni A/B possono utilizzare la partizione system_other inattiva (ad esempio, system_b quando slot_a è attivo) per archiviare file VDEX/ODEX preottimizzati. Quando viene utilizzato system_other , ro.cp_system_other_odex è impostato su 1 affinché il servizio di gestione pacchetti imposti sys.cppreopt=requested affinché cppreopts.rc agisca su di esso.

In Android 10, viene introdottolibfs_avb per supportare la verifica AVB autonoma per la partizione system_other . La struttura VBMeta di tale partizione viene aggiunta alla fine della partizione, per essere verificata da una chiave pubblica prevista dal file system. Il sistema di build Android supporta la firma di system_other.img includendo la chiave di firma corrispondente in /product/etc/security/avb/system_other.avbpubkey . Lo strumento di rilascio sign_target_files_apks.py supporta anche la sostituzione della chiave di firma con una versione di rilascio.

I dispositivi A/B avviati prima di Android 10 hanno una partizione fisica system_other , anche se è stato aggiornato ad Android 10 con PRODUCT_RETROFIT_DYNAMIC_PARTITIONS impostato su true .

I dispositivi A/B avviati con Android 10 devono avere una partizione logica system_other . L'esempio seguente mostra un tipico file fstab.postinstall che abilita AVB su 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

I dispositivi che devono abilitare AVB sulla partizione system_other devono inserire il file fstab nella partizione del prodotto e impostare la proprietà ro.postinstall.fstab.prefix su /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