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:
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 .