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