Das Android Virtualization-Framework (AVF) bietet sichere und private Ausführungsumgebungen für die Ausführung von Code. Das AVF ist ideal für sicherheitsorientierte Anwendungsfälle, die eine stärkere, sogar formal verifizierte Isolierung erfordern als die, die durch die App-Sandbox von Android geboten wird. Android bietet eine Referenzimplementierung aller Komponenten, die für die Implementierung von AVF erforderlich sind. AVF wird nur auf ARM64-Geräten unterstützt. Abbildung 1 zeigt die Architektur von AVF:
Abbildung 1: AVF-Architektur.
Hier finden Sie Definitionen für die wichtigsten Begriffe aus Abbildung 1:
- apexd und zipfuse
- Sicheres Einbinden von APEX-Dateien und APKs, die vom Host importiert wurden.
- authfs
- Ein FUSE-Dateisystem zum sicheren Freigeben mehrerer Dateien zwischen Android und pVM (Host und Gast).
- Binder
- Primäres Mittel für die Kommunikation zwischen VMs.
- crosvm
- Ein in Rust geschriebener Virtual Machine Monitor. crosvm weist VM-Speicher zu, erstellt virtuelle CPU-Threads und implementiert die Back-Ends der virtuellen Geräte.
- Generic Kernel Image (GKI)
- Ein von Google zertifiziertes Boot-Image, das einen GKI-Kernel enthält, der aus einem ACK-Quellcodebaum (Android Common Kernel) erstellt wurde und sich zum Flashen auf die Boot-Partition eines Android-Geräts eignet. Weitere Informationen finden Sie in der Kernelübersicht.
- Hypervisor
- Die von AVF verwendete Virtualisierungstechnologie, auch pKVM genannt. Der Hypervisor sorgt für die Integrität des ausgeführten Codes und die Vertraulichkeit der Assets der pVM, selbst wenn das Host-Android oder eine der anderen pVMs gehackt werden.
- Java API
- Die VirtualizationService-Java-APIs, die nur auf Geräten mit AVF-Unterstützung vorhanden sind. Diese APIs sind optional und nicht Teil von
thebootclasspath. - Microdroid
- Ein von Google bereitgestelltes Mini-Android-Betriebssystem, das in einer pVM ausgeführt wird.
- Microdroid Manager
- Verwaltet den Lebenszyklus der primären VM, der Instanz-Festplatte und der primären VM.
- Native API
- Eine Teilmenge des Android Native Developers Kit (NDK).
- Auf dem geschützten Kernel basierende virtuelle Maschine (pKVM)
- Weitere Informationen finden Sie unter Hypervisor.
- pVM-Firmware (
pvmfw) - Der erste Code, der auf einer pVM ausgeführt wird,
pvmfw, prüft die Nutzlast und leitet das VM-spezifische Secret ab. - Geschützte virtuelle Maschine (pVM)
- Eine VM, die von einem Hypervisor verwaltet wird, in der nicht sicheren oder Realm-Welt ausgeführt wird und vom Android-Hostbetriebssystem isoliert ist, sodass der Zugriff auch im Falle eines kompromittierten Android-Hosts verhindert wird.
pVMs unterstützen umfangreiche Umgebungen, einschließlich Linux-basierter Distributionen. Das Konzept der pVM ist nicht Google-exklusiv. Partnerdefinierte VMs (SoC/OEM), die die Einschränkungen für Isolation und Speicherzugriff erfüllen, sind ebenfalls pVMs.
- VirtualizationService
- Der Android-Dienst, der den Lebenszyklus von pVMs verwaltet.
Und jetzt?
- Weitere Informationen dazu, warum AVF erforderlich ist, finden Sie unter Warum AVF?.
- Informationen dazu, wie AVF für die isolierte Kompilierung verwendet werden kann, finden Sie unter Anwendungsfälle.
- Eine ausführlichere Beschreibung der Architektur der AVF-Referenzimplementierung finden Sie unter AVF-Architektur.
- Weitere Informationen zu Microdroid finden Sie unter Microdroid.
- Wenn Sie wissen möchten, wie AVF mit Sicherheit umgeht, lesen Sie den Abschnitt Sicherheit.
- Informationen zur Rolle des Virtualisierungsdienstes finden Sie unter VirtualizationService.
- Den Quellcode von AVF oder eine detaillierte Beschreibung der einzelnen Komponenten finden Sie im AOSP-Repository.