Descripción general de Android Virtualization Framework (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 de forma formal, que las que ofrece la zona de pruebas de apps 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. En la Figura 1, se muestra la arquitectura de AVF:

Arquitectura de AVF

Figura 1: Arquitectura de AVF

Estas son las definiciones de los términos más importantes de la Figura 1:

apexd y zipfuse
Ejecuta de forma segura la activación de APEX y APK importados desde el host.
authfs
Un sistema de archivos de Fuse para compartir de forma segura varios archivos entre Android y pVM (host y guest).
binder
Son los principales medios de comunicación entre VMs.
crosvm
Un monitor de máquina virtual escrito en Rust. crosvm asigna memoria a la VM, crea subprocesos de CPU virtuales y, además, implementa los extremos del dispositivo virtual.
Imagen genérica del kernel (GKI)
Es una imagen de arranque certificada por Google que contiene un kernel de GKI compilado a partir de un árbol de origen del kernel común de Android (ACK) y es adecuada para escribirse en la partición de arranque de un dispositivo Android. Para obtener más información, consulta la descripción general del kernel.
hipervisor
La tecnología de virtualización que usa AVF, también conocida como pKVM. El hipervisor mantiene la integridad del código ejecutado y la confidencialidad de los recursos de la pVM, incluso si se vulnera Android o cualquiera de las otras pVMs.
API de Java
Las APIs de Java de VirtualizationService, que solo están presentes en dispositivos con compatibilidad con AVF Estas APIs son opcionales y no forman parte de thebootclasspath.
Microdroid
Un SO mini-Android proporcionado por Google que se ejecuta en una pVM.
Microdroid Manager
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 desarrollo nativo (NDK) de Android.
máquina virtual protegida basada en el kernel (pKVM)
Consulta Hipervisor.
firmware de 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 confianza mutua ("invitado") que se ejecuta junto con el sistema operativo principal de Android ("host"). pKVM administra las pVM.

En comparación con los entornos de ejecución confiables (TEE) existentes, las pVM proporcionan un entorno más rico, incluida una distribución de mini-Android llamada Microdroid. Las pVM se pueden usar de forma dinámica y proporcionan un conjunto estándar de APIs disponibles en todos los dispositivos que las admiten.

VirtualizationService

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

¿Qué sigue?

  • Si quieres comprender mejor la necesidad de la AVF, consulta ¿Por qué AVF?.
  • Para obtener información sobre cómo se puede usar AVF para la compilación aislada, consulta Casos de uso.
  • Si deseas obtener una explicación más detallada de la arquitectura de la implementación de referencia de AVF, consulta la arquitectura de AVF.
  • Si quieres obtener información sobre Microdroid, consulta Microdroid.
  • Si te interesa saber cómo controla la seguridad AVF, consulta Seguridad.
  • Para comprender el rol del servicio de virtualización, consulta VirtualizationService.
  • Para obtener el código fuente de AVF o una explicación detallada sobre los componentes individuales, consulta el repositorio de AOSP.