Android Sanallaştırma Çerçevesi (AVF), kodun yürütülmesi için güvenli ve özel yürütme ortamları sağlar. AVF, Android'in uygulama sanal alanı tarafından sunulanlara göre daha güçlü, hatta resmi olarak doğrulanmış izolasyon güvenceleri gerektiren güvenlik odaklı kullanım durumları için idealdir. Android, AVF'yi uygulamak için gereken tüm bileşenlerin referans uygulamasını sağlar. AVF şu anda yalnızca ARM64 cihazlarda desteklenmektedir. Şekil 1 AVF'nin mimarisini göstermektedir:
Şekil 1'deki en önemli terimlerin tanımları şunlardır:
- apexd ve zipfuse
- Ana bilgisayardan içe aktarılan APEX'leri ve APK'ları güvenli bir şekilde bağlar.
- yetkilendirmeler
- Android ile pVM (ana bilgisayar ve konuk) arasında birden fazla dosyanın güvenlik paylaşımına yönelik bir sigorta dosya sistemi.
- bağlayıcı
- VM'ler arası iletişimin birincil araçları.
- çaprazvm
- Pasla yazılmış bir sanal makine monitörü. crosvm, VM belleğini ayırır, sanal CPU iş parçacıkları oluşturur ve sanal aygıtın arka uçlarını uygular.
- Genel Çekirdek Görüntüsü (GKI)
- Google tarafından onaylanmış, Android Ortak Çekirdek (ACK) kaynak ağacından oluşturulmuş bir GKI çekirdeği içeren ve bir Android cihazının önyükleme bölümüne flashlanmaya uygun bir önyükleme görüntüsü. Daha fazla bilgi için Çekirdeğe genel bakış konusuna bakın.
- hipervizör
- AVF tarafından kullanılan sanallaştırma teknolojisi, pKVM olarak da bilinir. Hipervizör, Android veya diğer pVM'lerden herhangi biri tehlikeye girse bile, yürütülen kodun bütünlüğünü ve pVM varlıklarının gizliliğini korur.
- Java API'si
- Yalnızca AVF desteğine sahip cihazlarda bulunan VirtualizationService Java API'leri. Bu API'ler isteğe bağlıdır ve
thebootclasspath
parçası değildir. - Mikrodroid
- Google tarafından sağlanan ve pVM'de çalışan bir mini Android işletim sistemi.
- Mikrodroid Yöneticisi
- pVM'nin ve örnek diskin içindeki pVM yaşam döngüsünü yönetir.
- Yerel API
- Android Yerel Geliştiriciler Kitinin (NDK) bir alt kümesi.
- korumalı çekirdek tabanlı sanal makine (pKVM)
- Bkz. Hipervizör .
- pVM ürün yazılımı (
pvmfw
) - Bir pVM üzerinde çalışan ilk kod olan
pvmfw
, yükü doğrular ve VM başına sırrı türetir. - korumalı sanal makine (pVM)
Ana Android işletim sistemi ("ana bilgisayar") ile birlikte çalışan, karşılıklı olarak güvenilmeyen izole yürütme ortamları ("misafirler"). pVM'ler pKVM tarafından yönetilir.
Mevcut güvenilir yürütme ortamlarıyla (TEE'ler) karşılaştırıldığında pVM'ler, Microdroid adı verilen bir mini Android dağıtımı da dahil olmak üzere daha zengin bir ortam sağlar. pVM'ler dinamik olarak kullanılabilir ve onları destekleyen tüm cihazlarda standart bir API seti sağlayabilir.
- Sanallaştırma Hizmeti
pVM'lerin yaşam döngüsünü yöneten Android hizmeti.
Sıradaki ne?
- AVF ihtiyacını daha iyi anlamak istiyorsanız Neden AVF? bölümüne bakın. .
- AVF'nin yalıtılmış derleme için nasıl kullanılabileceği hakkında bilgi edinmek için Kullanım durumları bölümüne bakın.
- AVF referans uygulamasının mimarisine ilişkin daha ayrıntılı bir açıklama istiyorsanız AVF mimarisine bakın.
- Microdroid hakkında bilgi edinmek istiyorsanız Microdroid'e bakın.
- AVF'nin güvenliği nasıl ele aldığıyla ilgileniyorsanız Güvenlik bölümüne bakın.
- Sanallaştırma hizmetinin rolünü anlamak için VirtualizationService'e bakın.
- AVF'nin kaynak kodu veya tek tek bileşenler hakkında ayrıntılı açıklama için AOSP deposuna bakın
Android Sanallaştırma Çerçevesi (AVF), kodun yürütülmesi için güvenli ve özel yürütme ortamları sağlar. AVF, Android'in uygulama sanal alanı tarafından sunulanlara göre daha güçlü, hatta resmi olarak doğrulanmış izolasyon güvenceleri gerektiren güvenlik odaklı kullanım durumları için idealdir. Android, AVF'yi uygulamak için gereken tüm bileşenlerin referans uygulamasını sağlar. AVF şu anda yalnızca ARM64 cihazlarda desteklenmektedir. Şekil 1 AVF'nin mimarisini göstermektedir:
Şekil 1'deki en önemli terimlerin tanımları şunlardır:
- apexd ve zipfuse
- Ana bilgisayardan içe aktarılan APEX'leri ve APK'ları güvenli bir şekilde bağlar.
- yetkilendirmeler
- Android ile pVM (ana bilgisayar ve konuk) arasında birden fazla dosyanın güvenlik paylaşımına yönelik bir sigorta dosya sistemi.
- bağlayıcı
- VM'ler arası iletişimin birincil araçları.
- çaprazvm
- Pasla yazılmış bir sanal makine monitörü. crosvm, VM belleğini ayırır, sanal CPU iş parçacıkları oluşturur ve sanal aygıtın arka uçlarını uygular.
- Genel Çekirdek Görüntüsü (GKI)
- Google tarafından onaylanmış, Android Ortak Çekirdek (ACK) kaynak ağacından oluşturulmuş bir GKI çekirdeği içeren ve bir Android cihazının önyükleme bölümüne flashlanmaya uygun bir önyükleme görüntüsü. Daha fazla bilgi için Çekirdeğe genel bakış konusuna bakın.
- hipervizör
- AVF tarafından kullanılan sanallaştırma teknolojisi, pKVM olarak da bilinir. Hipervizör, Android veya diğer pVM'lerden herhangi biri tehlikeye girse bile, yürütülen kodun bütünlüğünü ve pVM varlıklarının gizliliğini korur.
- Java API'si
- Yalnızca AVF desteğine sahip cihazlarda bulunan VirtualizationService Java API'leri. Bu API'ler isteğe bağlıdır ve
thebootclasspath
parçası değildir. - Mikrodroid
- Google tarafından sağlanan ve pVM'de çalışan bir mini Android işletim sistemi.
- Mikrodroid Yöneticisi
- pVM'nin ve örnek diskin içindeki pVM yaşam döngüsünü yönetir.
- Yerel API
- Android Yerel Geliştiriciler Kitinin (NDK) bir alt kümesi.
- korumalı çekirdek tabanlı sanal makine (pKVM)
- Bkz. Hipervizör .
- pVM ürün yazılımı (
pvmfw
) - Bir pVM üzerinde çalışan ilk kod olan
pvmfw
, yükü doğrular ve VM başına sırrı türetir. - korumalı sanal makine (pVM)
Ana Android işletim sistemi ("ana bilgisayar") ile birlikte çalışan, karşılıklı olarak güvenilmeyen izole yürütme ortamları ("misafirler"). pVM'ler pKVM tarafından yönetilir.
Mevcut güvenilir yürütme ortamlarıyla (TEE'ler) karşılaştırıldığında pVM'ler, Microdroid adı verilen bir mini Android dağıtımı da dahil olmak üzere daha zengin bir ortam sağlar. pVM'ler dinamik olarak kullanılabilir ve onları destekleyen tüm cihazlarda standart bir API seti sağlayabilir.
- Sanallaştırma Hizmeti
pVM'lerin yaşam döngüsünü yöneten Android hizmeti.
Sıradaki ne?
- AVF ihtiyacını daha iyi anlamak istiyorsanız Neden AVF? bölümüne bakın. .
- AVF'nin yalıtılmış derleme için nasıl kullanılabileceği hakkında bilgi edinmek için Kullanım durumları bölümüne bakın.
- AVF referans uygulamasının mimarisine ilişkin daha ayrıntılı bir açıklama istiyorsanız AVF mimarisine bakın.
- Microdroid hakkında bilgi edinmek istiyorsanız Microdroid'e bakın.
- AVF'nin güvenliği nasıl ele aldığıyla ilgileniyorsanız Güvenlik bölümüne bakın.
- Sanallaştırma hizmetinin rolünü anlamak için VirtualizationService'e bakın.
- AVF'nin kaynak kodu veya tek tek bileşenler hakkında ayrıntılı açıklama için AOSP deposuna bakın