Descripción general del marco de virtualización de Android (AVF)

Android Virtualization Framework (AVF) proporciona entornos de ejecución seguros y privados para ejecutar código. AVF es ideal para casos de uso orientados a la seguridad que requieren garantías de aislamiento más sólidas, incluso verificadas formalmente, que las que ofrece el entorno limitado de aplicaciones de Android. Android proporciona una implementación de referencia de todos los componentes necesarios para implementar AVF. Actualmente, AVF solo es compatible con dispositivos ARM64. La Figura 1 muestra la arquitectura de AVF:

arquitectura AVF

Figura 1. Arquitectura AVF

Aquí están las definiciones de los términos más importantes de la figura 1:

ápice y zipfuse
Monta de forma segura APEX y APK importados desde el host.
authfs
Un sistema de archivos fusionado para seguridad que comparte múltiples archivos entre Android y pVM (host e invitado).
aglutinante
Medio principal de comunicación entre máquinas virtuales.
crovm
Un monitor de máquina virtual escrito en óxido. crosvm asigna memoria de VM, crea subprocesos de CPU virtuales e implementa los back-ends del dispositivo virtual.
Imagen de kernel genérica (GKI)
Una imagen de inicio certificada por Google que contiene un kernel GKI creado a partir de un árbol de fuentes de Android Common Kernel (ACK) y es adecuada para actualizarse en la partición de inicio de un dispositivo Android. Para obtener más información, consulte la descripción general del kernel .
hipervisor
La tecnología de virtualización utilizada por AVF, también conocida como pKVM . El hipervisor mantiene la integridad del código ejecutado y la confidencialidad de los activos del pVM, incluso si Android o cualquiera de los otros pVM están comprometidos.
API de Java
Las API de Java de VirtualizationService, que están presentes solo en dispositivos compatibles con AVF. Estas API son opcionales y no forman parte de thebootclasspath .
microdroide
Un sistema operativo mini-Android proporcionado por Google que se ejecuta en un pVM.
Administrador de microdroides
Gestiona el ciclo de vida de pVM, dentro de pVM y el disco de instancia.
API nativa
Un subconjunto del kit de desarrolladores nativos de Android (NDK).
máquina virtual protegida basada en kernel (pKVM)
Consulte Hipervisor .
Firmware pVM ( pvmfw )
El primer código que se ejecuta en una pVM, pvmfw verifica la carga útil y deriva el secreto por VM.
máquina virtual protegida (pVM)

Un entorno de ejecución aislado de desconfianza mutua ("invitados") que se ejecuta junto con el sistema operativo principal Android ("host"). Los pVM son administrados por pKVM.

En comparación con los entornos de ejecución confiables (TEE) existentes, los pVM proporcionan un entorno más rico, que incluye una distribución mini-Android llamada Microdroid . Los pVM se pueden utilizar dinámicamente y proporcionan un conjunto estándar de API disponibles en todos los dispositivos que los admiten.

Servicio de virutalización

El servicio de Android que gestiona el ciclo de vida de las pVM.

¿Que sigue?

  • Si desea comprender mejor la necesidad de la FAV, consulte ¿Por qué la FAV? .
  • Para leer acerca de cómo se puede utilizar AVF para la compilación aislada, consulte Casos de uso .
  • Si desea una explicación más detallada de la arquitectura de implementación de referencia de AVF, consulte Arquitectura AVF .
  • Si desea obtener información sobre Microdroid, consulte Microdroid .
  • Si está interesado en cómo AVF maneja la seguridad, consulte Seguridad .
  • Para comprender la función del servicio de virtualización, consulte VirtualizationService .
  • Para obtener el código fuente de AVF o una explicación detallada sobre los componentes individuales, consulte el repositorio de AOSP.