Ab dem 27. März 2025 empfehlen wir, android-latest-release
anstelle von aosp-main
zu verwenden, um AOSP zu erstellen und Beiträge dazu zu leisten. Weitere Informationen finden Sie unter Änderungen am AOSP.
Android Virtualization Framework (AVF) – Übersicht
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
Das Android Virtualization Framework (AVF) bietet sichere und private Ausführungsumgebungen für die Ausführung von Code. AVF eignet sich ideal für sicherheitsorientierte Anwendungsfälle, bei denen stärkere, sogar formell bestätigte Isolationsgarantien erforderlich sind als die, die von der App-Sandbox von Android angeboten werden. 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
- Bereitstellung von vom Host importierten APEX- und APK-Dateien.
- 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 des virtuellen Geräts.
- Generic Kernel Image (GKI)
- Ein von Google zertifiziertes Boot-Image, das einen GKI-Kernel enthält, der aus einem ACK-Quellbaum (Android Common Kernel) erstellt wurde und zum Flashen auf die Bootpartition eines Android-Geräts geeignet ist. 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, auch wenn der Android-Host oder eine der anderen pVMs manipuliert wird.
- Java API
- Die Java APIs von VirtualizationService, 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 pVM-Lebenszyklus, die pVM und das Instanzlaufwerk.
- Native API
- Ein Teil des Android Native Development Kits (NDK).
- Protected Kernel-based Virtual Machine (pKVM)
- Hypervisor
- pVM-Firmware (
pvmfw
)
- Der erste Code, der auf einer pVM ausgeführt wird,
pvmfw
überprüft die Nutzlast und leitet das VM-spezifische Geheimnis ab.
- Geschützte virtuelle Maschine (pVM)
Eine wechselseitig nicht vertrauende isolierte Ausführungsumgebung (Gast), die parallel zum Haupt-Android-Betriebssystem (Host) ausgeführt wird. Ein wichtiger Aspekt der Sicherheit von pVMs ist, dass der Host auch bei einer Manipulation keinen Zugriff auf den Speicher einer pVM hat. pKVM ist der Standard-Hypervisor für die Ausführung von pVMs.
Im Vergleich zu bestehenden vertrauenswürdigen Ausführungsumgebungen (Trusted Execution Environments, TEEs) bieten pVMs eine umfangreichere Umgebung, einschließlich der Möglichkeit, eine Mini-Android-Distribution namens Microdroid auszuführen (Microdroid kann auch auf einer ungeschützten VM ausgeführt werden). pVMs können dynamisch verwendet werden und bieten eine standardmäßige Reihe von APIs in einer vertrauenswürdigen Umgebung, die auf allen Geräten verfügbar ist, die sie unterstützen.
- VirtualizationService
Der Android-Dienst, der den Lebenszyklus von pVMs verwaltet.
Und jetzt?
- Weitere Informationen zur Notwendigkeit von AVF findest du unter Warum AVF?.
- Informationen dazu, wie AVF für die isolierte Kompilierung verwendet werden kann, finden Sie unter Anwendungsfälle.
- Eine ausführlichere Erklärung der Architektur der AVF-Referenzimplementierung findest du unter AVF-Architektur.
- Weitere Informationen zu Microdroid finden Sie unter Microdroid.
- Weitere Informationen dazu, wie AVF mit Sicherheit umgeht, finden Sie unter Sicherheit.
- Informationen zur Rolle des Virtualisierungsdiensts finden Sie unter VirtualizationService.
- Den Quellcode von AVF oder eine ausführliche Erklärung zu einzelnen Komponenten finden Sie im AOSP-Repository.
Alle Inhalte und Codebeispiele auf dieser Seite unterliegen den Lizenzen wie im Abschnitt Inhaltslizenz beschrieben. Java und OpenJDK sind Marken oder eingetragene Marken von Oracle und/oder seinen Tochtergesellschaften.
Zuletzt aktualisiert: 2025-07-27 (UTC).
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2025-07-27 (UTC)."],[],[],null,["# Android Virtualization Framework (AVF) overview\n\n*Android Virtualization Framework (AVF)* provides secure and private execution\nenvironments for executing code. AVF is ideal for security-oriented use cases\nthat require stronger, even formally verified, isolation assurances over those\noffered by Android's app sandbox. Android provides a reference implementation\nof all the components needed to implement AVF. AVF is supported only\non ARM64 devices. Figure 1 shows the architecture of AVF:\n\n**Figure 1.** AVF architecture.\n\nHere are the definitions for the most important terms from figure 1:\n\n*apexd and zipfuse*\n: Securely mounts APEXes and APKs imported from host.\n\n*authfs*\n: A fuse file system for securely sharing multiple files between Android and pVM\n (host and guest).\n\n*binder*\n: Primary means of inter-VM communication.\n\n*crosvm*\n: A virtual machine monitor written in rust. crosvm allocates VM memory,\n creates virtual CPU threads, and implements the virtual device's back-ends.\n\n*Generic Kernel Image (GKI)*\n: A boot image certified by Google that contains a GKI kernel built from an\n Android Common Kernel (ACK) source tree and is suitable to be flashed to the\n boot partition of an Android device. For further information, see the [Kernel\n overview](/docs/core/architecture/kernel).\n\n*hypervisor*\n: The virtualization technology used by AVF, also known as *pKVM*. The\n hypervisor maintains the integrity of the executed code and confidentiality of\n the pVM's assets, even if host Android or any of the other pVMs are compromised.\n\n*Java API*\n: The VirtualizationService Java APIs, which are present only on devices with\n AVF support. These APIs are optional and not part of `thebootclasspath`.\n\n*Microdroid*\n: A Google-provided mini-Android OS that runs in a pVM.\n\n*Microdroid Manager*\n: Manages the pVM lifecycle, inside the pVM, and instance disk.\n\n*Native API*\n: A subset of the Android Native Developers Kit (NDK).\n\n*protected kernel-based virtual machine (pKVM)*\n: See [Hypervisor](#hyper).\n\n*pVM firmware (`pvmfw`)*\n: The first code that runs on a pVM, `pvmfw` verifies the payload and derives\n the per-VM secret.\n\n*protected virtual machine (pVM)*\n\n: A mutually distrusted isolated execution environment (*guest* ) that runs\n alongside the main Android operating system (*host*). One important aspect of\n pVM security is even if the host is compromised, the host doesn't have access\n to a pVM's memory. pKVM is the standard hypervisor for running pVMs.\n\n Compared to existing trusted execution environments (TEEs), pVMs provide a\n richer environment, including the ability to run a mini-Android distribution\n called [Microdroid](#micro) (though Microdroid can also run on an\n unprotected VM). pVMs can be used dynamically and provide a\n standard set of APIs in a trusted environment available across all devices\n that support them.\n\n*VirtualizationService*\n\n: The Android service that manages the lifecycle of pVMs.\n\nWhat's next?\n------------\n\n- If you want to better understand the need for AVF, refer to [Why AVF?](/docs/core/virtualization/whyavf).\n- To read about how AVF can be used for isolated compilation, refer to [Use cases](/docs/core/virtualization/usecases).\n- If you want a more in-depth explanation of the AVF reference implementation's architecture, refer to [AVF architecture](/docs/core/virtualization/architecture).\n- If you want to learn about Microdroid, refer to [Microdroid](/docs/core/virtualization/microdroid).\n- If you are interested in how AVF handles security, refer to [Security](/docs/core/virtualization/security).\n- To understand the role of the virtualization service, refer to [VirtualizationService](/docs/core/virtualization/virtualization-service).\n- For source code of AVF or in-depth explanation about individual components, refer to [AOSP\n repository](https://android.googlesource.com/platform/packages/modules/Virtualization/+/refs/heads/main)"]]