Visão geral do Android Virtualization Framework (AVF)

O Android Virtualization Framework (AVF) fornece ambientes de execução seguros e privados para a execução de código. O AVF é ideal para casos de uso orientados à segurança que exigem garantias de isolamento mais fortes, até mesmo verificadas formalmente, em relação às oferecidas pela sandbox de aplicativos do Android. O Android fornece uma implementação de referência de todos os componentes necessários para implementar o AVF. Atualmente, o AVF é suportado apenas em dispositivos ARM64. A Figura 1 mostra a arquitetura do AVF:

arquitetura AVF

Figura 1. Arquitetura AVF

Aqui estão as definições para os termos mais importantes da figura 1:

apexd e zipfuse
Monta com segurança APEXes e APKs importados do host.
authfs
Um sistema de arquivos fuse para segurança de compartilhamento de vários arquivos entre Android e pVM (host e convidado).
encadernador
Meio principal de comunicação entre VMs.
crosvm
Um monitor de máquina virtual escrito em ferrugem. O crosvm aloca memória da VM, cria threads de CPU virtuais e implementa os back-ends do dispositivo virtual.
Imagem Genérica do Kernel (GKI)
Uma imagem de inicialização certificada pelo Google que contém um kernel GKI criado a partir de uma árvore de origem Android Common Kernel (ACK) e é adequada para ser atualizada na partição de inicialização de um dispositivo Android. Para obter mais informações, consulte a visão geral do Kernel .
hipervisor
A tecnologia de virtualização usada pelo AVF, também conhecida como pKVM . O hipervisor mantém a integridade do código executado e a confidencialidade dos ativos do pVM, mesmo que o Android ou qualquer outro pVM seja comprometido.
API Java
As APIs Java do VirtualizationService, que estão presentes apenas em dispositivos com suporte a AVF. Essas APIs são opcionais e não fazem parte do thebootclasspath .
Microdroide
Um mini-sistema operacional Android fornecido pelo Google que é executado em um pVM.
Microdroid Manager
Gerencia o ciclo de vida do pVM, dentro do pVM e do disco da instância.
API nativa
Um subconjunto do Android Native Developers Kit (NDK).
máquina virtual baseada em kernel protegida (pKVM)
Consulte Hipervisor .
firmware pVM ( pvmfw )
O primeiro código executado em uma pVM, pvmfw verifica a carga útil e deriva o segredo por VM.
máquina virtual protegida (pVM)

Ambientes de execução isolados mutuamente desconfiados ("convidados") que são executados junto com o sistema operacional Android principal ("host"). pVMs são gerenciados pelo pKVM.

Em comparação com os ambientes de execução confiáveis ​​(TEEs) existentes, os pVMs fornecem um ambiente mais rico, incluindo uma distribuição mini-Android chamada Microdroid . Os pVMs podem ser usados ​​dinamicamente e fornecem um conjunto padrão de APIs disponíveis em todos os dispositivos que os suportam.

Serviço de Virtualização

O serviço Android que gerencia o ciclo de vida dos pVMs.

Qual é o próximo?

  • Se você quiser entender melhor a necessidade de FAV, consulte Por que FAV? .
  • Para ler sobre como o AVF pode ser usado para compilação isolada, consulte Casos de uso .
  • Se desejar uma explicação mais detalhada da arquitetura de implementação de referência do AVF, consulte Arquitetura do AVF .
  • Se você quiser aprender sobre o Microdroid, consulte Microdroid .
  • Se você estiver interessado em saber como o AVF lida com a segurança, consulte Segurança .
  • Para entender a função do serviço de virtualização, consulte VirtualizationService .