Android Sanallaştırma Çerçevesi (AVF), kod yürütmek için güvenli ve özel yürütme ortamları sağlar. AVF, Android'in uygulama korumalı alanının sunduklarından daha güçlü, hatta resmi olarak doğrulanmış yalıtım güvenceleri gerektiren güvenlik odaklı kullanım alanları için idealdir. Android, AVF'yi uygulamak için gereken tüm bileşenlerin referans uygulamasını sağlar. AVF yalnızca ARM64 cihazlarda desteklenir. Şekil 1'de AVF'nin mimarisi gösterilmektedir:
1. şekil. AVF mimarisi.
Şekil 1'deki en önemli terimlerin tanımları aşağıda verilmiştir:
- apexd ve zipfuse
- Ana makineden içe aktarılan APEX'leri ve APK'ları güvenli bir şekilde bağlar.
- authfs
- Android ile pVM (ana ve misafir makine) arasında birden fazla dosyayı güvenli bir şekilde paylaşmak için bir füzyon dosya sistemi.
- binder
- VM'ler arası iletişimin birincil yolu.
- crosvm
- Rust ile yazılmış bir sanal makine izleyicisi. crosvm, VM belleğini ayırır, sanal CPU iş parçacıkları oluşturur ve sanal cihazın arka uçlarını uygular.
- Genel çekirdek görüntüsü (GKI)
- Google tarafından sertifikalandırılmış, Android Ortak Çekirdeği (ACK) kaynak ağacından oluşturulmuş bir GKI çekirdeği içeren ve Android cihazın önyükleme bölümüne yazılmaya uygun bir önyükleme görüntüsü. Daha fazla bilgi için Çekirdeğe genel bakış başlıklı makaleyi inceleyin.
- hiper yönetici
- AVF tarafından kullanılan sanallaştırma teknolojisi (pKVM olarak da bilinir). Hiper yönetici, ana makine Android'i veya diğer pVM'lerden herhangi biri saldırıya uğrasa bile yürütülen kodun bütünlüğünü ve pVM'nin öğelerinin gizliliğini korur.
- Java API'si
- Yalnızca AVF desteği olan cihazlarda bulunan VirtualizationService Java API'leri. Bu API'ler isteğe bağlıdır ve
thebootclasspath
parametresinin bir parçası değildir. - Microdroid
- Google tarafından sağlanan ve pVM'de çalışan mini Android işletim sistemi.
- Microdroid Manager
- pVM yaşam döngüsünü, pVM'nin içindeki yaşam döngüsünü ve örnek diski yönetir.
- Native API
- Android Native Development Kit'in (NDK) bir alt kümesi.
- protected kernel-based virtual machine (pKVM)
- Hipervizör bölümüne bakın.
- pVM donanım yazılımı (
pvmfw
) - Bir pVM'de çalışan ilk kod,
pvmfw
yükü doğrular ve VM başına gizli anahtarı türetir. - korumalı sanal makine (pVM)
Ana Android işletim sistemi (ana makine) ile birlikte çalışan, karşılıklı olarak güvenilmeyen izole edilmiş bir yürütme ortamı (misafir). pVM güvenliğinin önemli bir yönü, ana makinenin güvenliği ihlal edilmiş olsa bile ana makinenin pVM'nin belleğine erişememesidir. pKVM, pVM'leri çalıştırmak için kullanılan standart hipervizördür.
pVM'ler, mevcut güvenilir yürütme ortamlarına (TEE'ler) kıyasla daha zengin bir ortam sunar. Bu ortama, Microdroid adlı mini bir Android dağıtımını çalıştırma özelliği de dahildir (Microdroid, korunmasız bir VM'de de çalışabilir). pVM'ler dinamik olarak kullanılabilir ve bunları destekleyen tüm cihazlarda kullanılabilen güvenilir bir ortamda standart bir API grubu sağlar.
- VirtualizationService
pVM'lerin yaşam döngüsünü yöneten Android hizmeti.
Sırada ne var?
- AVF'nin neden gerekli olduğunu daha iyi anlamak için Neden AVF? başlıklı makaleyi inceleyin.
- AVF'nin izole derleme için nasıl kullanılabileceği hakkında bilgi edinmek için Kullanım alanları bölümüne bakın.
- AVF referans uygulamasının mimarisi hakkında daha ayrıntılı bir açıklama için AVF mimarisi başlıklı makaleyi inceleyin.
- Microdroid hakkında bilgi edinmek istiyorsanız Microdroid başlıklı makaleyi inceleyin.
- AVF'nin güvenliği nasıl ele aldığı hakkında bilgi edinmek istiyorsanız Güvenlik bölümüne bakın.
- Sanal hizmetin rolünü anlamak için VirtualizationService başlıklı makaleyi inceleyin.
- AVF'nin kaynak kodu veya tek tek bileşenler hakkında ayrıntılı açıklama için AOSP deposu'na bakın.