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ù forti, anche formalmente verificate, rispetto a quelle offerte dalla sandbox delle app 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 condivisione sicura di più file tra Android e pVM (host e guest).
- raccoglitore
- Mezzi primari di comunicazione tra VM.
- crosvm
- Un monitor di macchina virtuale scritto in ruggine. crosvm alloca la memoria della VM, crea thread della CPU virtuale 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 sorgente Android Common Kernel (ACK) ed è adatta per essere flashata nella partizione di avvio di un dispositivo Android. Per ulteriori informazioni, vedere la Panoramica del kernel .
- ipervisore
- 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 uno qualsiasi degli altri pVM sono compromessi.
- API Java
- Le API Java VirtualizationService, 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 un pVM.
- Gestore del microdroide
- Gestisce il ciclo di vita di pVM, all'interno di pVM e del disco dell'istanza.
- API nativa
- Un sottoinsieme dell'Android Native Developers Kit (NDK).
- macchina virtuale protetta basata su kernel (pKVM)
- Vedi Hypervisor .
- Firmware pVM (
pvmfw
) - Il primo codice eseguito su una pVM,
pvmfw
verifica il payload e deriva il segreto per VM. - macchina virtuale protetta (pVM)
Un ambiente di esecuzione isolato ("guest") diffidato reciprocamente che funziona insieme al sistema operativo Android principale ("host"). I pVM sono gestiti da pKVM.
Rispetto agli ambienti di esecuzione fidati (TEE) esistenti, i 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 comprendere meglio la necessità dell'AVF, fai riferimento a Perché AVF? .
- Per informazioni su come utilizzare AVF per la compilazione isolata, fare riferimento a Casi d'uso .
- Se desideri una spiegazione più approfondita dell'architettura dell'implementazione di riferimento AVF, fai riferimento ad 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 .
- Per il codice sorgente di AVF o una spiegazione approfondita sui singoli componenti, fare riferimento al repository AOSP
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ù forti, anche formalmente verificate, rispetto a quelle offerte dalla sandbox delle app 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 condivisione sicura di più file tra Android e pVM (host e guest).
- raccoglitore
- Mezzi primari di comunicazione tra VM.
- crosvm
- Un monitor di macchina virtuale scritto in ruggine. crosvm alloca la memoria della VM, crea thread della CPU virtuale 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 sorgente Android Common Kernel (ACK) ed è adatta per essere flashata nella partizione di avvio di un dispositivo Android. Per ulteriori informazioni, vedere la Panoramica del kernel .
- ipervisore
- 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 uno qualsiasi degli altri pVM sono compromessi.
- API Java
- Le API Java VirtualizationService, 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 un pVM.
- Gestore del microdroide
- Gestisce il ciclo di vita di pVM, all'interno di pVM e del disco dell'istanza.
- API nativa
- Un sottoinsieme dell'Android Native Developers Kit (NDK).
- macchina virtuale protetta basata su kernel (pKVM)
- Vedi Hypervisor .
- Firmware pVM (
pvmfw
) - Il primo codice eseguito su una pVM,
pvmfw
verifica il payload e deriva il segreto per VM. - macchina virtuale protetta (pVM)
Un ambiente di esecuzione isolato ("guest") diffidato reciprocamente che funziona insieme al sistema operativo Android principale ("host"). I pVM sono gestiti da pKVM.
Rispetto agli ambienti di esecuzione fidati (TEE) esistenti, i 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 comprendere meglio la necessità dell'AVF, fai riferimento a Perché AVF? .
- Per informazioni su come utilizzare AVF per la compilazione isolata, fare riferimento a Casi d'uso .
- Se desideri una spiegazione più approfondita dell'architettura dell'implementazione di riferimento AVF, fai riferimento ad 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 .
- Per il codice sorgente di AVF o una spiegazione approfondita sui singoli componenti, fare riferimento al repository AOSP