Visão geral do Android Virtualization Framework (AVF)

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

Arquitetura AVF

Figura 1. Arquitetura AVF

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

apexd e zipfuse
Monta com segurança APEXes e APKs importados do host.
autenticação
Um sistema de arquivos fusível para compartilhamento seguro 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. crosvm aloca memória VM, cria threads de CPU virtuais e implementa 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 utilizada pela AVF, também conhecida como pKVM . O hipervisor mantém a integridade do código executado e a confidencialidade dos ativos do pVM, mesmo se o Android ou qualquer outro pVM estiver comprometido.
API Java
As APIs Java VirtualizationService, que estão presentes apenas em dispositivos com suporte AVF. Essas APIs são opcionais e não fazem parte de thebootclasspath .
Microdróide
Um sistema operacional mini-Android fornecido pelo Google que é executado em um pVM.
Gerenciador de Microdroid
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 um 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 fornecer 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 da FAV, consulte Por que FAV? .
  • Para ler sobre como o AVF pode ser usado para compilação isolada, consulte Casos de uso .
  • Se você quiser uma explicação mais detalhada da arquitetura de implementação de referência do AVF, consulte Arquitetura 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 .
  • Para obter o código-fonte do AVF ou explicações detalhadas sobre componentes individuais, consulte o repositório AOSP