Android Virtualization Framework (AVF) menyediakan lingkungan eksekusi yang aman dan privat untuk mengeksekusi kode. AVF ideal untuk kasus penggunaan berorientasi keamanan yang memerlukan jaminan isolasi yang lebih kuat, bahkan terverifikasi secara formal, dibandingkan yang ditawarkan oleh sandbox aplikasi Android. Android menyediakan referensi implementasi semua komponen yang diperlukan untuk mengimplementasikan AVF. Saat ini, AVF hanya didukung pada perangkat ARM64. Gambar 1 menunjukkan arsitektur AVF:
Berikut adalah definisi istilah terpenting dari gambar 1:
- puncak dan zipfuse
- Memasang 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.
- crossvm
- Monitor mesin virtual ditulis dengan karat. crosvm mengalokasikan memori VM, membuat thread CPU virtual, dan mengimplementasikan back-end perangkat virtual.
- Gambar Kernel Generik (GKI)
- Gambar boot yang disertifikasi oleh Google yang berisi kernel GKI yang dibuat 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, meskipun Android atau pVM lainnya disusupi.
- API Jawa
- VirtualizationService Java API, yang hanya ada pada 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 instans.
- API asli
- Bagian dari Android Native Developers Kit (NDK).
- mesin virtual berbasis kernel yang dilindungi (pKVM)
- Lihat Hypervisor .
- Firmware pVM (
pvmfw
) - Kode pertama yang berjalan pada pVM,
pvmfw
memverifikasi payload dan mendapatkan rahasia per-VM. - mesin virtual yang dilindungi (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 ada, pVM menyediakan lingkungan yang lebih kaya, termasuk distribusi mini-Android yang disebut Microdroid . pVM dapat digunakan secara dinamis dan menyediakan serangkaian API standar yang tersedia di semua perangkat yang mendukungnya.
- Layanan Virtualisasi
Layanan Android yang mengelola siklus hidup pVM.
Apa berikutnya?
- Jika Anda ingin lebih memahami perlunya AVF, lihat Mengapa AVF? .
- Untuk membaca tentang bagaimana AVF dapat digunakan untuk kompilasi terisolasi, lihat Kasus penggunaan .
- Jika Anda ingin penjelasan lebih mendalam tentang arsitektur implementasi referensi AVF, lihat Arsitektur AVF .
- Jika Anda ingin mempelajari tentang 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 masing-masing komponen, lihat repositori AOSP
Android Virtualization Framework (AVF) menyediakan lingkungan eksekusi yang aman dan privat untuk mengeksekusi kode. AVF ideal untuk kasus penggunaan berorientasi keamanan yang memerlukan jaminan isolasi yang lebih kuat, bahkan terverifikasi secara formal, dibandingkan yang ditawarkan oleh sandbox aplikasi Android. Android menyediakan referensi implementasi semua komponen yang diperlukan untuk mengimplementasikan AVF. Saat ini, AVF hanya didukung pada perangkat ARM64. Gambar 1 menunjukkan arsitektur AVF:
Berikut adalah definisi istilah terpenting dari gambar 1:
- puncak dan zipfuse
- Memasang 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.
- crossvm
- Monitor mesin virtual ditulis dengan karat. crosvm mengalokasikan memori VM, membuat thread CPU virtual, dan mengimplementasikan back-end perangkat virtual.
- Gambar Kernel Generik (GKI)
- Gambar boot yang disertifikasi oleh Google yang berisi kernel GKI yang dibuat 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, meskipun Android atau pVM lainnya disusupi.
- API Jawa
- VirtualizationService Java API, yang hanya ada pada 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 instans.
- API asli
- Bagian dari Android Native Developers Kit (NDK).
- mesin virtual berbasis kernel yang dilindungi (pKVM)
- Lihat Hypervisor .
- Firmware pVM (
pvmfw
) - Kode pertama yang berjalan pada pVM,
pvmfw
memverifikasi payload dan mendapatkan rahasia per-VM. - mesin virtual yang dilindungi (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 ada, pVM menyediakan lingkungan yang lebih kaya, termasuk distribusi mini-Android yang disebut Microdroid . pVM dapat digunakan secara dinamis dan menyediakan serangkaian API standar yang tersedia di semua perangkat yang mendukungnya.
- Layanan Virtualisasi
Layanan Android yang mengelola siklus hidup pVM.
Apa berikutnya?
- Jika Anda ingin lebih memahami perlunya AVF, lihat Mengapa AVF? .
- Untuk membaca tentang bagaimana AVF dapat digunakan untuk kompilasi terisolasi, lihat Kasus penggunaan .
- Jika Anda ingin penjelasan lebih mendalam tentang arsitektur implementasi referensi AVF, lihat Arsitektur AVF .
- Jika Anda ingin mempelajari tentang 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 masing-masing komponen, lihat repositori AOSP