Implementação
Dispositivos Android 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_bquando slot_a está ativa) para armazenar arquivos
VDEX/ODEX pré-otimizados. Quando system_other é usado, ro.cp_system_other_odex é definido como 1 para que o serviço do gerenciador de pacotes defina sys.cppreopt=requested para cppreopts.rc agir nele.
No Android 10, o libfs_avb
foi introduzido para oferecer suporte à verificação AVB independente da partição
system_other. A struct VBMeta de uma partição desse tipo é
adicionada ao final da partição para ser verificada por uma chave pública esperada
do sistema de arquivos. O sistema de build do Android permite assinar
system_other.img e incluir 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 permite substituir a chave
de assinatura por uma versão de lançamento.
Dispositivos A/B lançados antes do Android 10 têm uma partição system_other física, mesmo que sejam atualizados para o Android 10 com PRODUCT_RETROFIT_DYNAMIC_PARTITIONS definido como true.
Os dispositivos A/B lançados com o Android 10 precisam ter uma partição lógica
system_other. 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
devem 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