Perangkat komputasi seluler menangani data sensitif pribadi dalam jumlah yang semakin besar. Keberadaan data sensitif tersebut, yang didukung oleh koneksi konstan ke dunia luar, telah menyebabkan peningkatan investasi dari pelaku kejahatan yang tertarik untuk mengeksploitasi kerentanan guna mencapai tujuan mereka.
Sistem operasi, dengan bantuan unit pengelolaan memori (MMU) hardware, menyediakan abstraksi yang mengisolasi proses yang tidak terkait satu sama lain. Hanya komponen yang merupakan bagian dari Trusted Computing Base (TCB) yang diizinkan untuk memprogram MMU ini secara langsung.
Model ini telah menjadi dasar dari cara privasi dan keamanan diterapkan sejak diperkenalkannya sistem operasi seperti Unix. Namun, persyaratan ini menjadi bermasalah karena TCB saat ini terlalu besar: mencakup sebagian besar driver perangkat dan bus, penjadwal yang kompleks, sistem file, protokol dan tumpukan jaringan, cache, parser dan loader yang dapat dieksekusi, serta soket. Sangat sulit untuk memastikan setiap sudut sistem yang rumit ini aman.
Kernel Linux memiliki lebih dari 20 juta baris kode dan tingkat perubahan serta penulisan ulang sangat mencengangkan. Pertumbuhan ini sangat membantu Android dan ekosistem kami. Namun, TCB yang besar menyulitkan untuk memastikan tidak adanya kerentanan yang dapat dieksploitasi.
Vendor hardware telah mengembangkan solusi, seperti TrustZone Arm, yang memungkinkan prosesor berjalan dalam mode Aman dan menandai transaksi memori sebagai "aman" atau "tidak aman". Dalam sistem tersebut, data sensitif disimpan dan hanya tersedia langsung untuk dunia yang aman, yang menyediakan layanan untuk dunia yang tidak aman sesuai permintaan.
Batasan utama dari jenis solusi ini adalah domainnya terlalu kasar: hanya aman dan tidak aman. Karena semakin banyak kasus penggunaan yang memerlukan isolasi dari sistem operasi, area serangan meningkat dan kerentanan kemungkinan akan menyebabkan kompromi seluruh perangkat.
Batasan lain dari solusi saat ini adalah bahwa solusi tersebut dirancang untuk dunia yang relatif statis, yang semua resource kasus penggunaannya diperhitungkan dan dialokasikan sebelumnya. Solusi ini tidak cukup baik untuk kasus penggunaan dinamis yang resource-nya dialokasikan sesuai permintaan.
Selain itu, API yang digunakan di luar sistem operasi Android terfragmentasi dan membatasi kemampuan kami untuk men-deploy kasus penggunaan dalam skala Android, termasuk dasar-dasar seperti Keymint dan Gatekeeper.
Untuk mengatasi batasan ini dan memungkinkan Android memberikan dasar yang kuat untuk kasus penggunaan generasi berikutnya, Android 13 memperkenalkan virtualisasi aman sebagai Android Virtualization Framework (AVF).
Tujuan utama AVF adalah menyediakan lingkungan eksekusi yang aman dan pribadi untuk kasus penggunaan generasi berikutnya.