Verificar a partição system_other

Implementação

Dispositivos com Android 9 e versões anteriores que têm partições A/B podem usar a partição system_other inativa (por exemplo, system_b quando slot_a está ativa) para armazenar arquivos VDEX/ODEX pré-otimizados. Quando system_other é usada, ro.cp_system_other_odex é definida como 1 para que o serviço do gerenciador de pacotes defina sys.cppreopt=requested para que cppreopts.rc atue nela.

No Android 10, libfs_avb é introduzida para oferecer suporte à verificação AVB independente da system_other partição. A struct VBMeta dessa partição é anexada ao final dela para ser verificada por uma chave pública esperada do sistema de arquivos. O sistema de build do Android oferece suporte à assinatura de system_other.img, incluindo a chave de assinatura correspondente em /product/etc/security/avb/system_other.avbpubkey. A ferramenta de lançamento sign_target_files_apks.py também oferece suporte à substituição da chave de assinatura por uma versão de lançamento.

Os dispositivos A/B lançados antes do Android 10 têm uma partição system_other física, mesmo que ela seja atualizada para o Android 10 com PRODUCT_RETROFIT_DYNAMIC_PARTITIONS definida como true.

Os dispositivos A/B lançados com o Android 10 precisam ter uma partição system_other lógica. O exemplo a seguir mostra um arquivo fstab.postinstall típico que ativa o AVB em 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

Os dispositivos que precisam ativar o AVB na partição system_other precisam colocar o arquivo fstab na partição do produto e definir a propriedade ro.postinstall.fstab.prefix como /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