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:
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
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:
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