Panoramica del Framework di virtualizzazione di Android (AVF)

Il Framework di virtualizzazione di Android (AVF) fornisce ambienti di esecuzione sicuri e privati per l'esecuzione del codice. AVF è ideale per i casi d'uso orientati alla sicurezza che richiedono garanzie di isolamento più solide, persino verificate formalmente, rispetto a quelle offerte dalla sandbox delle app di Android. Android fornisce un'implementazione di riferimento di tutti i componenti necessari per implementare AVF. AVF è supportato solo sui dispositivi ARM64. La figura 1 mostra l'architettura di AVF:

Architettura AVF

Figura 1. Architettura AVF.

Di seguito sono riportate le definizioni dei termini più importanti della figura 1:

apexd e zipfuse
Monta in modo sicuro APEX e APK importati dall'host.
authfs
Un file system FUSE per condividere in modo sicuro più file tra Android e pVM (host e guest).
binder
Mezzo principale di comunicazione tra le VM.
crosvm
Un monitor delle macchine virtuali scritto in Rust. crosvm alloca la memoria della VM, crea thread CPU virtuali e implementa i backend del dispositivo virtuale.
Generic Kernel Image (GKI)
Un'immagine di avvio certificata da Google che contiene un kernel GKI creato da un albero di origine del kernel comune Android (ACK) ed è adatta per essere flashata nella partizione di avvio di un dispositivo Android. Per ulteriori informazioni, consulta la panoramica del kernel.
hypervisor
La tecnologia di virtualizzazione utilizzata da AVF, nota anche come pKVM. L'hypervisor mantiene l'integrità del codice eseguito e la riservatezza degli asset della pVM, anche se Android host o una delle altre pVM sono compromesse.
API Java
Le API Java VirtualizationService, presenti solo sui dispositivi con supporto AVF. Queste API sono facoltative e non fanno parte di thebootclasspath.
Microdroid
Una versione ridotta del sistema operativo Android fornita da Google che viene eseguita in una pVM.
Microdroid Manager
Gestisce il ciclo di vita della pVM, all'interno della pVM e del disco dell'istanza.
API nativa
Un sottoinsieme dell'Android Native Developers Kit (NDK).
macchina virtuale basata sul kernel protetto (pKVM)
Vedi Hypervisor.
Firmware pVM (pvmfw)
Il primo codice eseguito su una pVM, pvmfw verifica il payload e deriva il secret per VM.
macchina virtuale protetta (pVM)
Una VM gestita da un hypervisor, in esecuzione nel mondo non sicuro o realm ed è isolata dal sistema operativo host Android, in modo che l'accesso sia impedito anche in caso di host Android compromesso.

Le pVM supportano ambienti avanzati, incluse le distribuzioni basate su Linux. Il concetto di pVM non è esclusivo di Google. Anche le VM definite dal partner (SoC/OEM) che soddisfano le limitazioni di isolamento / accesso alla memoria sono pVM.

VirtualizationService
Il servizio Android che gestisce il ciclo di vita delle pVM.

Passaggi successivi

  • Se vuoi comprendere meglio la necessità di AVF, consulta la sezione Perché AVF?.
  • Per informazioni su come AVF può essere utilizzato per la compilazione isolata, consulta la sezione Casi d'uso.
  • Se vuoi una spiegazione più approfondita dell'architettura dell'implementazione di riferimento di AVF, consulta Architettura di AVF.
  • Se vuoi saperne di più su Microdroid, consulta Microdroid.
  • Se ti interessa sapere come AVF gestisce la sicurezza, consulta la sezione Sicurezza.
  • Per comprendere il ruolo del servizio di virtualizzazione, consulta VirtualizationService.
  • Per il codice sorgente di AVF o una spiegazione dettagliata dei singoli componenti, consulta il repository AOSP.