Mulai 27 Maret 2025, sebaiknya gunakan android-latest-release
, bukan aosp-main
, untuk mem-build dan berkontribusi pada AOSP. Untuk mengetahui informasi selengkapnya, lihat Perubahan pada AOSP.
Ringkasan Android Virtualization Framework (AVF)
Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Framework Virtualisasi Android (AVF) menyediakan lingkungan eksekusi
yang aman dan pribadi untuk mengeksekusi kode. AVF ideal untuk kasus penggunaan yang berorientasi pada keamanan
yang memerlukan jaminan isolasi yang lebih kuat, bahkan terverifikasi secara formal, daripada
yang ditawarkan oleh sandbox aplikasi Android. Android menyediakan implementasi referensi
semua komponen yang diperlukan untuk menerapkan AVF. AVF hanya didukung
di perangkat ARM64. Gambar 1 menunjukkan arsitektur AVF:
Gambar 1. Arsitektur AVF.
Berikut adalah definisi untuk istilah paling penting dari gambar 1:
- apexd dan zipfuse
- Memasang APEX dan APK yang diimpor dari host dengan aman.
- authfs
- Sistem file fuse untuk berbagi beberapa file dengan aman antara Android dan pVM
(host dan tamu).
- binder
- Media utama komunikasi antar-VM.
- crosvm
- Pemantau virtual machine yang ditulis dalam rust. crosvm mengalokasikan memori VM,
membuat thread CPU virtual, dan menerapkan backend perangkat virtual.
- Generic Kernel Image (GKI)
- Image booting yang disertifikasi oleh Google yang berisi kernel GKI yang dibuat dari
hierarki sumber Android Common Kernel (ACK) dan cocok untuk di-flash ke
partisi booting perangkat Android. Untuk mengetahui informasi selengkapnya, lihat Ringkasan
kernel.
- hypervisor
- Teknologi virtualisasi yang digunakan oleh AVF, juga dikenal sebagai pKVM. Hypervisor mempertahankan integritas kode yang dieksekusi dan kerahasiaan aset pVM, meskipun Android host atau pVM lainnya disusupi.
- Java API
- Java API VirtualizationService, yang hanya ada di perangkat dengan
dukungan AVF. API ini bersifat opsional dan bukan bagian dari
thebootclasspath
.
- Microdroid
- OS Android mini yang disediakan Google dan berjalan di pVM.
- Microdroid Manager
- Mengelola siklus proses pVM, di dalam pVM, dan disk instance.
- API Native
- Subkumpulan Android Native Developers Kit (NDK).
- virtual machine berbasis kernel yang dilindungi (pKVM)
- Lihat Hypervisor.
- Firmware pVM (
pvmfw
)
- Kode pertama yang berjalan di pVM,
pvmfw
memverifikasi payload dan memperoleh secret per VM.
- virtual machine terlindungi (pVM)
Lingkungan eksekusi terisolasi yang tidak saling percaya (tamu) yang berjalan
bersama sistem operasi Android utama (host). Salah satu aspek penting dari keamanan pVM adalah meskipun host disusupi, host tidak memiliki akses ke memori pVM. pKVM adalah hypervisor standar untuk menjalankan pVM.
Dibandingkan dengan trusted execution environment (TEE) yang ada, pVM menyediakan
lingkungan yang lebih kaya, termasuk kemampuan untuk menjalankan distribusi Android mini
yang disebut Microdroid (meskipun Microdroid juga dapat berjalan di
VM yang tidak dilindungi). pVM dapat digunakan secara dinamis dan menyediakan
kumpulan API standar di lingkungan tepercaya yang tersedia di semua perangkat
yang mendukungnya.
- VirtualizationService
Layanan Android yang mengelola siklus proses pVM.
Apa selanjutnya?
- Jika Anda ingin lebih memahami kebutuhan AVF, lihat
Mengapa AVF?.
- Untuk membaca cara AVF dapat digunakan untuk kompilasi terisolasi, lihat
Kasus penggunaan.
- Jika Anda menginginkan penjelasan yang lebih mendalam tentang arsitektur
penerapan referensi AVF, lihat arsitektur AVF.
- Jika Anda ingin mempelajari Microdroid, lihat Microdroid.
- Jika Anda tertarik dengan cara AVF menangani keamanan, lihat
Keamanan.
- Untuk memahami peran layanan virtualisasi, lihat
VirtualizationService.
- Untuk kode sumber AVF atau penjelasan mendalam tentang setiap komponen,
lihat repositori
AOSP
Konten dan contoh kode di halaman ini tunduk kepada lisensi yang dijelaskan dalam Lisensi Konten. Java dan OpenJDK adalah merek dagang atau merek dagang terdaftar dari Oracle dan/atau afiliasinya.
Terakhir diperbarui pada 2025-07-27 UTC.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Informasi yang saya butuhkan tidak ada","missingTheInformationINeed","thumb-down"],["Terlalu rumit/langkahnya terlalu banyak","tooComplicatedTooManySteps","thumb-down"],["Sudah usang","outOfDate","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Masalah kode / contoh","samplesCodeIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 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)"]]