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, en comparación con 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:
Aquí están las definiciones de los términos más importantes de la figura 1:
- apexd y zipfuse
- Monta de forma segura APEX y APK importados desde el host.
- authfs
- Un sistema de archivos de fusibles para compartir varios archivos de seguridad entre Android y pVM (host e invitado).
- aglutinante
- Medio principal de comunicación entre máquinas virtuales.
- crosvm
- Un monitor de máquina virtual escrito en óxido. crosvm asigna memoria de VM, crea subprocesos de CPU virtuales e implementa los back-end del dispositivo virtual.
- Imagen genérica del kernel (GKI)
- Una imagen de arranque certificada por Google que contiene un kernel GKI creado a partir de un árbol fuente de Android Common Kernel (ACK) y es adecuada para actualizarse en la partición de arranque de un dispositivo Android. Para obtener más información, consulte la descripción general del núcleo .
- 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 de la pVM, incluso si Android o cualquiera de las otras pVM se ven comprometidas.
- API de Java
- Las API 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 una pVM.
- Administrador de microdroides
- Administra el ciclo de vida de la pVM, dentro de la pVM y el disco de la 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 obtiene 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 Android principal ("host"). Los pVM son administrados por el pKVM.
En comparación con los entornos de ejecución confiables (TEE) existentes, los pVM brindan un entorno más rico, que incluye una distribución mini-Android llamada Microdroid . Los pVM se pueden usar dinámicamente y proporcionan un conjunto estándar de API disponibles en todos los dispositivos que los admiten.
- Servicio de virtualización
El servicio de Android que gestiona el ciclo de vida de las pVM.
¿Que sigue?
- Si desea comprender mejor la necesidad de AVF, consulte ¿Por qué AVF? .
- Para leer acerca de cómo se puede usar AVF para la compilación aislada, consulte Casos de uso .
- Si desea una explicación más detallada de la arquitectura de la 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 .