Panoramica di Android Virtualization Framework (AVF).

Android Virtualization Framework (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, anche formalmente verificate, rispetto a quelle offerte dalla sandbox dell'app di Android. Android fornisce un'implementazione di riferimento di tutti i componenti necessari per implementare AVF. Attualmente, AVF è supportato solo sui dispositivi ARM64. La Figura 1 mostra l'architettura di AVF:

Architettura AVF

Figura 1. Architettura AVF

Ecco le definizioni dei termini più importanti della figura 1:

apexd e zipfuse
Monta in modo sicuro APEX e APK importati dall'host.
authfs
Un filesystem fusibile per la sicurezza che condivide più file tra Android e pVM (host e guest).
raccoglitore
Mezzo principale di comunicazione tra VM.
crosvm
Un monitor di macchina virtuale scritto in ruggine. crosvm alloca la memoria della macchina virtuale, crea thread della CPU virtuale e implementa i back-end del dispositivo virtuale.
Immagine generica del kernel (GKI)
Un'immagine di avvio certificata da Google che contiene un kernel GKI creato da un albero dei sorgenti Android Common Kernel (ACK) ed è adatta per essere visualizzata 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 Android o qualsiasi altro pVM è compromesso.
API Java
Le API Java VirtualizationService, che sono presenti solo sui dispositivi con supporto AVF. Queste API sono facoltative e non fanno parte di thebootclasspath .
Microdroide
Un sistema operativo mini-Android fornito da Google che viene eseguito in una pVM.
Gestore di microdroidi
Gestisce il ciclo di vita della pVM, all'interno della pVM e il disco dell'istanza.
API nativa
Un sottoinsieme dell'Android Native Developers Kit (NDK).
macchina virtuale protetta basata su kernel (pKVM)
Vedere Hypervisor .
firmware pVM ( pvmfw )
Il primo codice eseguito su una pVM, pvmfw verifica il payload e ricava il segreto per ogni VM.
macchina virtuale protetta (pVM)

Ambienti di esecuzione isolati reciprocamente diffidati ("guest") che vengono eseguiti insieme al sistema operativo Android principale ("host"). i pVM sono gestiti dal pKVM.

Rispetto agli ambienti di esecuzione fidati (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 all'architettura AVF .
  • Se vuoi conoscere 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 .