Perangkat komputasi seluler menangani data pribadi yang semakin sensitif dalam jumlah yang lebih besar. Keberadaan data sensitif tersebut, yang didukung oleh koneksi konstan ke dunia luar, telah menyebabkan peningkatan investasi dari pihak tidak bertanggung jawab 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 penerapan privasi dan keamanan sejak diperkenalkannya sistem operasi mirip Unix. Namun, persyaratan ini menjadi bermasalah karena TCB saat ini terlalu besar: TCB mencakup sebagian besar driver perangkat dan bus, penjadwal yang kompleks, sistem file, stack dan protokol jaringan, cache, parser dan loader yang dapat dieksekusi, serta soket. Menjadi 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 membuatnya sulit 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 bahwa domain terlalu berbutir kasar: hanya aman dan tidak aman. Seiring diperkenalkannya kasus penggunaan yang memerlukan isolasi dari sistem operasi, permukaan serangan meningkat dan kerentanan cenderung menyebabkan kompromi seluruh perangkat.
Batasan lain dari solusi saat ini adalah bahwa solusi tersebut dirancang untuk dunia yang relatif statis di mana semua resource kasus penggunaan diperhitungkan dan dialokasikan sebelumnya. Solusi ini tidak cukup baik untuk kasus penggunaan dinamis saat resource 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 hal-hal mendasar seperti Keymint dan Gatekeeper.
Untuk mengatasi batasan ini dan memungkinkan Android menyediakan fondasi 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 privat untuk kasus penggunaan generasi berikutnya.