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

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

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