Android Virtualization Framework (AVF) menyediakan lingkungan eksekusi yang aman dan pribadi untuk mengeksekusi kode. AVF ideal untuk kasus penggunaan berorientasi keamanan yang memerlukan jaminan isolasi yang lebih kuat, bahkan diverifikasi secara formal, dibandingkan yang ditawarkan oleh sandbox aplikasi Android. Android menyediakan implementasi referensi dari semua komponen yang diperlukan untuk mengimplementasikan AVF. Saat ini, AVF hanya didukung pada perangkat ARM64. Gambar 1 menunjukkan arsitektur AVF:
Berikut adalah definisi untuk istilah yang paling penting dari gambar 1:
- apexd dan zipfuse
- Pasang APEX dan APK yang diimpor dari host dengan aman.
- authfs
- Sistem file sekering untuk keamanan berbagi banyak file antara Android dan pVM (host dan tamu).
- bahan pengikat
- Sarana utama komunikasi antar-VM.
- crosvm
- Monitor mesin virtual ditulis dengan karat. crosvm mengalokasikan memori VM, membuat thread CPU virtual, dan mengimplementasikan back-end perangkat virtual.
- Gambar Kernel Generik (GKI)
- Citra boot yang disertifikasi oleh Google yang berisi kernel GKI yang dibangun dari pohon sumber Android Common Kernel (ACK) dan cocok untuk di-flash ke partisi boot perangkat Android. Untuk informasi lebih lanjut, lihat ikhtisar Kernel .
- hypervisor
- Teknologi virtualisasi yang digunakan oleh AVF, juga dikenal sebagai pKVM . Hypervisor menjaga integritas kode yang dieksekusi dan kerahasiaan aset pVM, bahkan jika Android atau pVM lainnya disusupi.
- API Jawa
- API VirtualizationService Java, yang hanya ada di perangkat dengan dukungan AVF. API ini bersifat opsional dan bukan bagian dari
thebootclasspath
. - Mikrodroid
- OS Android mini yang disediakan Google yang berjalan di pVM.
- Manajer Mikrodroid
- Mengelola siklus hidup pVM, di dalam pVM, dan disk instan.
- API asli
- Subset dari Android Native Developers Kit (NDK).
- dilindungi mesin virtual berbasis kernel (pKVM)
- Lihat Hypervisor .
- firmware pVM (
pvmfw
) - Kode pertama yang dijalankan pada pVM,
pvmfw
memverifikasi payload dan memperoleh rahasia per-VM. - mesin virtual terlindungi (pVM)
Lingkungan eksekusi terisolasi yang saling tidak dipercaya ("tamu") yang berjalan bersama sistem operasi Android utama ("host"). pVM dikelola oleh pKVM.
Dibandingkan dengan lingkungan eksekusi tepercaya (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.
- Layanan Virutalisasi
Layanan Android yang mengelola siklus hidup pVM.
Apa berikutnya?
- Jika Anda ingin lebih memahami kebutuhan AVF, lihat Mengapa AVF? .
- Untuk membaca tentang bagaimana AVF dapat digunakan untuk kompilasi terisolasi, lihat Use cases .
- Jika Anda menginginkan penjelasan yang lebih mendalam tentang arsitektur implementasi referensi AVF, lihat arsitektur AVF .
- Jika Anda ingin belajar tentang Microdroid, lihat Microdroid .
- Jika Anda tertarik dengan cara AVF menangani keamanan, lihat Keamanan .
- Untuk memahami peran layanan virtualisasi, lihat VirtualizationService .