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 dari semua komponen yang diperlukan untuk menerapkan AVF. Saat ini, AVF hanya didukung di perangkat ARM64. Gambar 1 menunjukkan 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
- Sarana utama komunikasi antar-VM.
- crosvm
- Monitor virtual machine yang ditulis dalam rust. crosvm mengalokasikan memori VM, membuat thread CPU virtual, dan mengimplementasikan back-end 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 informasi selengkapnya, lihat Ringkasan kernel.
- hipervisor
- 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.
- API Java
- VirtualizationService Java API, yang hanya ada di perangkat dengan
dukungan AVF. API ini bersifat opsional dan bukan bagian dari
thebootclasspath
. - Microdroid
- OS Android mini yang disediakan Google yang berjalan di pVM.
- Pengelola Microdroid
- 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 (pVM) yang dilindungi
Lingkungan eksekusi terisolasi yang saling tidak percaya ("tamu") yang berjalan bersama sistem operasi Android utama ("host"). pVM dikelola oleh pKVM.
Dibandingkan dengan Trusted Execution Environment (TEE) yang sudah ada, pVM menyediakan lingkungan yang lebih kaya, termasuk distribusi Android mini yang disebut Microdroid. PVM dapat digunakan secara dinamis dan menyediakan kumpulan API standar yang tersedia di semua perangkat yang mendukungnya.
- VirtualizationService
Layanan Android yang mengelola siklus proses pVM.
Apa selanjutnya?
- Jika Anda ingin lebih memahami kebutuhan akan AVF, lihat Mengapa AVF?.
- Untuk membaca cara AVF dapat digunakan untuk kompilasi terisolasi, lihat Kasus penggunaan.
- Jika Anda ingin penjelasan yang lebih mendalam tentang arsitektur penerapan referensi AVF, lihat arsitektur AVF.
- Jika ingin mempelajari Microdroid, baca 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