Ikhtisar Kerangka Virtualisasi Android (AVF).

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:

Arsitektur AVF

Gambar 1. 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:

Arsitektur AVF

Gambar 1. 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