Android Virtualization Framework (AVF) bietet sichere und private Ausführungsumgebungen zum Ausführen von Code. AVF ist ideal für sicherheitsorientierte Anwendungsfälle, die stärkere, sogar formal verifizierte Isolationsgarantien erfordern als die App-Sandbox von Android. Android bietet eine Referenzimplementierung aller Komponenten, die zur Implementierung von AVF erforderlich sind. Derzeit wird AVF nur auf ARM64-Geräten unterstützt. Abbildung 1 zeigt die Architektur von AVF:
Hier die Definitionen der wichtigsten Begriffe aus Abbildung 1:
- Apexd und Zipfuse
- Mountet APEXes und APKs, die vom Host importiert wurden, sicher.
- authfs
- Ein Sicherungsdateisystem für die sichere gemeinsame Nutzung mehrerer Dateien zwischen Android und pVM (Host und Gast).
- Bindemittel
- Primäres Mittel zur Kommunikation zwischen VMs.
- crosvm
- Ein in Rost geschriebener virtueller Maschinenmonitor. crosvm weist VM-Speicher zu, erstellt virtuelle CPU-Threads und implementiert die Back-Ends des virtuellen Geräts.
- Generisches Kernel-Image (GKI)
- Ein von Google zertifiziertes Boot-Image, das einen GKI-Kernel enthält, der aus einem Android Common Kernel (ACK)-Quellbaum erstellt wurde und zum Flashen auf die Boot-Partition eines Android-Geräts geeignet ist. Weitere Informationen finden Sie in der Kernel-Übersicht .
- Hypervisor
- Die von AVF verwendete Virtualisierungstechnologie, auch bekannt als pKVM . Der Hypervisor wahrt die Integrität des ausgeführten Codes und die Vertraulichkeit der pVM-Assets, selbst wenn das Android oder eine der anderen pVMs gefährdet ist.
- Java-API
- Die VirtualizationService-Java-APIs, die nur auf Geräten mit AVF-Unterstützung vorhanden sind. Diese APIs sind optional und nicht Teil des
thebootclasspath
. - Mikrodroid
- Ein von Google bereitgestelltes Mini-Android-Betriebssystem, das in einer pVM ausgeführt wird.
- Microdroid-Manager
- Verwaltet den pVM-Lebenszyklus innerhalb der pVM und der Instanzfestplatte.
- Native API
- Eine Teilmenge des Android Native Developers Kit (NDK).
- Geschützte Kernel-basierte virtuelle Maschine (pKVM)
- Siehe Hypervisor .
- pVM-Firmware (
pvmfw
) -
pvmfw
, der erste Code, der auf einer pVM ausgeführt wird, überprüft die Nutzlast und leitet das Geheimnis pro VM ab. - Geschützte virtuelle Maschine (pVM)
Eine gegenseitig misstrauische isolierte Ausführungsumgebung („Gäste“), die neben dem Haupt-Android-Betriebssystem („Host“) läuft. pVMs werden vom pKVM verwaltet.
Im Vergleich zu bestehenden Trusted Execution Environments (TEEs) bieten pVMs eine umfangreichere Umgebung, einschließlich einer Mini-Android-Distribution namens Microdroid . pVMs können dynamisch verwendet werden und bieten einen Standardsatz an APIs, der auf allen Geräten verfügbar ist, die sie unterstützen.
- VirtualizationService
Der Android-Dienst, der den Lebenszyklus von pVMs verwaltet.
Was kommt als nächstes?
- Wenn Sie die Notwendigkeit von AVF besser verstehen möchten, lesen Sie Warum AVF? .
- Informationen dazu, wie AVF für die isolierte Kompilierung verwendet werden kann, finden Sie unter Anwendungsfälle .
- Wenn Sie eine ausführlichere Erläuterung der Architektur der AVF-Referenzimplementierung wünschen, lesen Sie AVF-Architektur .
- Wenn Sie mehr über Microdroid erfahren möchten, lesen Sie Microdroid .
- Wenn Sie daran interessiert sind, wie AVF mit Sicherheit umgeht, lesen Sie Sicherheit .
- Informationen zur Rolle des Virtualisierungsdienstes finden Sie unter VirtualizationService .
- Den Quellcode von AVF oder ausführliche Erläuterungen zu einzelnen Komponenten finden Sie im AOSP-Repository
Android Virtualization Framework (AVF) bietet sichere und private Ausführungsumgebungen zum Ausführen von Code. AVF ist ideal für sicherheitsorientierte Anwendungsfälle, die stärkere, sogar formal verifizierte Isolationsgarantien erfordern als die App-Sandbox von Android. Android bietet eine Referenzimplementierung aller Komponenten, die zur Implementierung von AVF erforderlich sind. Derzeit wird AVF nur auf ARM64-Geräten unterstützt. Abbildung 1 zeigt die Architektur von AVF:
Hier die Definitionen der wichtigsten Begriffe aus Abbildung 1:
- Apexd und Zipfuse
- Mountet APEXes und APKs, die vom Host importiert wurden, sicher.
- authfs
- Ein Sicherungsdateisystem für die sichere gemeinsame Nutzung mehrerer Dateien zwischen Android und pVM (Host und Gast).
- Bindemittel
- Primäres Mittel zur Kommunikation zwischen VMs.
- crosvm
- Ein in Rost geschriebener virtueller Maschinenmonitor. crosvm weist VM-Speicher zu, erstellt virtuelle CPU-Threads und implementiert die Back-Ends des virtuellen Geräts.
- Generisches Kernel-Image (GKI)
- Ein von Google zertifiziertes Boot-Image, das einen GKI-Kernel enthält, der aus einem Android Common Kernel (ACK)-Quellbaum erstellt wurde und zum Flashen auf die Boot-Partition eines Android-Geräts geeignet ist. Weitere Informationen finden Sie in der Kernel-Übersicht .
- Hypervisor
- Die von AVF verwendete Virtualisierungstechnologie, auch bekannt als pKVM . Der Hypervisor wahrt die Integrität des ausgeführten Codes und die Vertraulichkeit der pVM-Assets, selbst wenn das Android oder eine der anderen pVMs gefährdet ist.
- Java-API
- Die VirtualizationService-Java-APIs, die nur auf Geräten mit AVF-Unterstützung vorhanden sind. Diese APIs sind optional und nicht Teil des
thebootclasspath
. - Mikrodroid
- Ein von Google bereitgestelltes Mini-Android-Betriebssystem, das in einer pVM ausgeführt wird.
- Microdroid-Manager
- Verwaltet den pVM-Lebenszyklus innerhalb der pVM und der Instanzfestplatte.
- Native API
- Eine Teilmenge des Android Native Developers Kit (NDK).
- geschützte Kernel-basierte virtuelle Maschine (pKVM)
- Siehe Hypervisor .
- pVM-Firmware (
pvmfw
) -
pvmfw
, der erste Code, der auf einer pVM ausgeführt wird, überprüft die Nutzlast und leitet das Geheimnis pro VM ab. - Geschützte virtuelle Maschine (pVM)
Eine gegenseitig misstrauische isolierte Ausführungsumgebung („Gäste“), die neben dem Haupt-Android-Betriebssystem („Host“) läuft. pVMs werden vom pKVM verwaltet.
Im Vergleich zu bestehenden Trusted Execution Environments (TEEs) bieten pVMs eine umfangreichere Umgebung, einschließlich einer Mini-Android-Distribution namens Microdroid . pVMs können dynamisch verwendet werden und bieten einen Standardsatz an APIs, der auf allen Geräten verfügbar ist, die sie unterstützen.
- VirtualizationService
Der Android-Dienst, der den Lebenszyklus von pVMs verwaltet.
Was kommt als nächstes?
- Wenn Sie die Notwendigkeit von AVF besser verstehen möchten, lesen Sie Warum AVF? .
- Informationen dazu, wie AVF für die isolierte Kompilierung verwendet werden kann, finden Sie unter Anwendungsfälle .
- Wenn Sie eine ausführlichere Erläuterung der Architektur der AVF-Referenzimplementierung wünschen, lesen Sie AVF-Architektur .
- Wenn Sie mehr über Microdroid erfahren möchten, lesen Sie Microdroid .
- Wenn Sie daran interessiert sind, wie AVF mit Sicherheit umgeht, lesen Sie Sicherheit .
- Informationen zur Rolle des Virtualisierungsdienstes finden Sie unter VirtualizationService .
- Den Quellcode von AVF oder ausführliche Erläuterungen zu einzelnen Komponenten finden Sie im AOSP-Repository