Verificando a partição system_other

Implementação

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

No Android 10,libfs_avb é introduzido para oferecer suporte à verificação AVB independente para a partição system_other . A estrutura VBMeta de tal partição é anexada ao final da partição, para ser verificada por uma chave pública esperada do sistema de arquivos. O sistema de compilação do Android oferece suporte à assinatura 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 suporta a 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 física system_other , mesmo que tenham sido atualizados para o Android 10 com PRODUCT_RETROFIT_DYNAMIC_PARTITIONS definido como true .

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