Android Sanallaştırma Çerçevesi'ne (AVF) genel bakış

Android Sanallaştırma Çerçevesi (AVF), kod yürütmek için güvenli ve gizli 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 garantileri 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:

AVF mimarisi

Şekil 1. AVF mimarisi.

Şekil 1'deki en önemli terimlerin tanımlarını aşağıda bulabilirsiniz:

apexd ve zipfuse
Ana makineden içe aktarılan APEX'leri ve APK'ları güvenli bir şekilde monte eder.
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
Sanal makineler arası iletişimin birincil yolu.
crosvm
Rust ile yazılmış bir sanal makine izleyici. 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.
hipervizör
AVF tarafından kullanılan sanallaştırma teknolojisi (pKVM olarak da bilinir). Hipervizör, 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 varlıklarının 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
pVM'de çalışan, Google tarafından sağlanan mini Android işletim sistemi.
Microdroid Manager
pVM yaşam döngüsünü, pVM'nin içini ve örnek diski yönetir.
Native API
Android Native Development Kit'in (NDK) bir alt kümesi.
korumalı çekirdek tabanlı sanal makine (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 makine 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ıştırılabilir). 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.
  • Sanallaştırma hizmetinin 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.