Panoramica di Android Virtualization Framework (AVF).

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

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

Architettura AVF

Figura 1. Architettura AVF

Ecco le definizioni per i termini più importanti dalla figura 1:

apexd e zipfuse
Monta in modo sicuro APEX e APK importati dall'host.
aut
Un file system fusibile per la sicurezza della condivisione di più file tra Android e pVM (host e guest).
raccoglitore
Mezzi primari di comunicazione tra macchine virtuali.
crossvm
Un monitor di macchina virtuale scritto in ruggine. crossvm alloca la memoria della macchina virtuale, crea thread di CPU virtuali e implementa i back-end del dispositivo virtuale.
Immagine kernel generica (GKI)
Un'immagine di avvio certificata da Google che contiene un kernel GKI creato da un albero di origine del kernel comune (ACK) di Android ed è adatta per il flashing nella partizione di avvio di un dispositivo Android. Per ulteriori informazioni, vedere 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 delle risorse del pVM, anche se l'Android o uno qualsiasi degli altri pVM sono compromessi.
API Java
Le API Java di VirtualizationService, che sono presenti solo sui dispositivi con supporto AVF. Queste API sono facoltative e non fanno parte di thebootclasspath .
Microdroide
Un mini-sistema operativo Android fornito da Google che viene eseguito in un pVM.
Gestore di microdroidi
Gestisce il ciclo di vita della pVM, all'interno della pVM e il disco di istanza.
API nativa
Un sottoinsieme di Android Native Developers Kit (NDK).
macchina virtuale basata su kernel protetta (pKVM)
Vedi Hypervisor .
Firmware pVM ( pvmfw )
Il primo codice che viene eseguito su una pVM, pvmfw verifica il payload e deriva il segreto per ogni macchina virtuale.
macchina virtuale protetta (pVM)

Un ambiente di esecuzione isolato ("guest") di cui non si fidano reciprocamente che viene eseguito insieme al sistema operativo Android principale ("host"). Le pVM sono gestite dal pKVM.

Rispetto agli ambienti di esecuzione attendibili (TEE) esistenti, le pVM forniscono un ambiente più ricco, inclusa una distribuzione mini-Android chiamata Microdroid . Le pVM possono essere utilizzate dinamicamente e forniscono un set standard di API disponibili su tutti i dispositivi che le supportano.

Servizio di virtualizzazione

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

Qual è il prossimo?

  • Se vuoi capire meglio la necessità di AVF, fai riferimento a Perché AVF? .
  • Per informazioni su come utilizzare AVF per la compilazione isolata, fare riferimento a Casi d'uso .
  • Se si desidera una spiegazione più approfondita dell'architettura dell'implementazione di riferimento AVF, fare riferimento a Architettura AVF .
  • Se vuoi saperne di più su Microdroid, fai riferimento a Microdroid .
  • Se sei interessato a come AVF gestisce la sicurezza, fai riferimento a Sicurezza .
  • Per comprendere il ruolo del servizio di virtualizzazione, fare riferimento a VirtualizationService .