Présentation du Framework de virtualisation Android (AVF)

Le Framework de virtualisation Android (AVF) fournit des environnements d'exécution sécurisés et privés pour l'exécution de code. L'AVF est idéal pour les cas d'utilisation axés sur la sécurité qui nécessitent des garanties d'isolation plus fortes, voire formellement vérifiées, que celles offertes par le bac à sable d'application d'Android. Android fournit une implémentation de référence de tous les composants nécessaires à l'implémentation d'AVF. AVF n'est compatible qu'avec les appareils ARM64. La figure 1 illustre l'architecture d'AVF :

Architecture AVF

Figure 1. Architecture AVF.

Vous trouverez ci-dessous les définitions des termes les plus importants de la figure 1 :

apexd et zipfuse
Monte de manière sécurisée les APEX et les APK importés depuis l'hôte.
authfs
Système de fichiers FUSE permettant de partager plusieurs fichiers de manière sécurisée entre Android et la pVM (hôte et invité).
binder
Moyen principal de communication entre les VM.
crosvm
Un moniteur de machine virtuelle écrit en Rust. crosvm alloue de la mémoire à la VM, crée des threads de processeur virtuel et implémente les backends de l'appareil virtuel.
Image générique du noyau (GKI)
Image de démarrage certifiée par Google, contenant un noyau GKI créé à partir d'un arbre source Android Common Kernel (ACK) et pouvant être flashée sur la partition de démarrage d'un appareil Android. Pour en savoir plus, consultez la présentation du noyau.
hyperviseur
 Technologie de virtualisation utilisée par AVF, également appelée pKVM. L'hyperviseur maintient l'intégrité du code exécuté et la confidentialité des ressources de la pVM, même si l'hôte Android ou l'une des autres pVM sont compromis.
API Java
 API Java VirtualizationService, qui ne sont présentes que sur les appareils compatibles avec AVF. Ces API sont facultatives et ne font pas partie de thebootclasspath.
Microdroid
Mini-OS Android fourni par Google et exécuté dans une pVM.
Microdroid Manager
Gère le cycle de vie de la VM protégée, à l'intérieur de la VM protégée, et le disque d'instance.
API native
Sous-ensemble du kit de développement natif (NDK) Android.
Machine virtuelle protégée basée sur le noyau (pKVM)
 Consultez Hyperviseur.
Firmware pVM (pvmfw)
Le premier code qui s'exécute sur une VM protégée, pvmfw, valide la charge utile et dérive le secret par VM.
Machine virtuelle protégée (pVM)
 VM gérée par un hyperviseur, exécutée dans le monde non sécurisé ou du domaine, et isolée de l'OS hôte Android afin d'empêcher l'accès même en cas de compromission de l'hôte Android.

Les VM protégées sont compatibles avec les environnements enrichis, y compris les distributions Linux. Le concept de pVM n'est pas exclusif à Google. Les VM définies par le partenaire (SoC/OEM) qui respectent les restrictions d'isolation / d'accès à la mémoire sont également des pVM.

VirtualizationService
Service Android qui gère le cycle de vie des VM protégées.

Étapes suivantes

  • Pour mieux comprendre la nécessité d'AVF, consultez Pourquoi AVF ?.
  • Pour savoir comment AVF peut être utilisé pour la compilation isolée, consultez Cas d'utilisation.
  • Pour une explication plus détaillée de l'architecture de l'implémentation de référence AVF, consultez Architecture AVF.
  • Pour en savoir plus sur Microdroid, consultez Microdroid.
  • Pour en savoir plus sur la façon dont AVF gère la sécurité, consultez Sécurité.
  • Pour comprendre le rôle du service de virtualisation, consultez VirtualizationService.
  • Pour obtenir le code source d'AVF ou une explication détaillée sur les composants individuels, consultez le dépôt AOSP.