Verifica la partición system_other

Implementación

Los dispositivos con Android 9 y versiones anteriores que tienen particiones A/B pueden usar la partición system_other inactiva (por ejemplo, system_b cuando slot_a está activa) para almacenar archivos VDEX/ODEX preoptimizados. Cuando se usa system_other, ro.cp_system_other_odex se establece en 1 para que el servicio del administrador de paquetes establezca sys.cppreopt=requested para que cppreopts.rc actúe en consecuencia.

En Android 10, se introduce libfs_avb para admitir la verificación AVB independiente para la partición system_other. La estructura VBMeta de esa partición se agrega al final de la partición para que la verifique una clave pública esperada del sistema de archivos. El sistema de compilación de Android admite la firma de system_other.img y, al mismo tiempo, incluye la clave de firma correspondiente en /product/etc/security/avb/system_other.avbpubkey. La herramienta de lanzamiento sign_target_files_apks.py también admite el reemplazo de la clave de firma por una clave de versión de lanzamiento.

Los dispositivos A/B lanzados antes de Android 10 tienen una partición system_other física, incluso si se actualizan a Android 10 con PRODUCT_RETROFIT_DYNAMIC_PARTITIONS configurado como true.

Los dispositivos A/B lanzados con Android 10 deben tener una partición system_other lógica. En el siguiente ejemplo, se muestra un archivo fstab.postinstall típico que habilita AVB en 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

Los dispositivos que necesitan habilitar AVB en la partición system_other deben colocar el archivo fstab en la partición del producto y establecer la propiedad ro.postinstall.fstab.prefix en /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