Présentation du cadre de virtualisation Android (AVF)

Android Virtualization Framework (AVF) fournit des environnements d'exécution sécurisés et privés pour l'exécution de code. AVF est idéal pour les cas d'utilisation axés sur la sécurité qui nécessitent des assurances d'isolement plus solides, voire formellement vérifiées, par rapport à celles offertes par le bac à sable de l'application Android. Android fournit une implémentation de référence de tous les composants nécessaires à l'implémentation d'AVF. Actuellement, AVF n'est pris en charge que sur les appareils ARM64. La figure 1 montre l'architecture d'AVF :

Architecture FAV

Figure 1. Architecture FAV

Voici les définitions des termes les plus importants de la figure 1 :

apexd et zipfuse
Monte en toute sécurité les APEX et les APK importés de l'hôte.
authfs
Un système de fichiers fusible pour la sécurité du partage de plusieurs fichiers entre Android et pVM (hôte et invité).
classeur
Principaux moyens de communication inter-VM.
crosvm
Un moniteur de machine virtuelle écrit en rouille. crosvm alloue de la mémoire VM, crée des threads CPU virtuels et implémente les back-ends du périphérique virtuel.
Image de noyau générique (GKI)
Une image de démarrage certifiée par Google qui contient un noyau GKI construit à partir d'une arborescence source Android Common Kernel (ACK) et qui peut être flashée sur la partition de démarrage d'un appareil Android. Pour plus d'informations, consultez la présentation du noyau .
hyperviseur
La technologie de virtualisation utilisée par AVF, également connue sous le nom de pKVM . L'hyperviseur maintient l'intégrité du code exécuté et la confidentialité des actifs de la pVM, même si l'Android ou l'une des autres pVM est compromis.
API Java
Les API Java VirtualizationService, présentes uniquement sur les appareils prenant en charge AVF. Ces API sont facultatives et ne font pas partie du thebootclasspath .
Microdroïde
Un système d'exploitation mini-Android fourni par Google qui s'exécute dans une pVM.
Gestionnaire de microdroïdes
Gère le cycle de vie de la pVM, à l'intérieur de la pVM et du disque d'instance.
API native
Un sous-ensemble du kit Android Native Developers (NDK).
machine virtuelle basée sur le noyau protégée (pKVM)
Voir Hyperviseur .
Micrologiciel pVM ( pvmfw )
Le premier code qui s'exécute sur une pVM, pvmfw vérifie la charge utile et dérive le secret par VM.
machine virtuelle protégée (pVM)

Environnements d'exécution isolés mutuellement méfiants ("invités") qui s'exécutent parallèlement au système d'exploitation Android principal ("hôte"). Les pVM sont gérées par le pKVM.

Par rapport aux environnements d'exécution de confiance (TEE) existants, les pVM offrent un environnement plus riche, notamment une mini-distribution Android appelée Microdroid . Les pVM peuvent être utilisées de manière dynamique et fournissent un ensemble standard d'API disponibles sur tous les appareils qui les prennent en charge.

Service de virtualisation

Le service Android qui gère le cycle de vie des pVM.

Et après?

  • Si vous souhaitez mieux comprendre le besoin d'AVF, reportez-vous à Pourquoi AVF ? .
  • Pour savoir comment AVF peut être utilisé pour la compilation isolée, reportez-vous à Cas d'utilisation .
  • Si vous souhaitez une explication plus approfondie de l'architecture de l'implémentation de référence AVF, reportez-vous à Architecture AVF .
  • Si vous souhaitez en savoir plus sur Microdroid, reportez-vous à Microdroid .
  • Si vous souhaitez savoir comment AVF gère la sécurité, reportez-vous à Sécurité .
  • Pour comprendre le rôle du service de virtualisation, reportez-vous à VirtualizationService .