
Si vous vous demandez si Les machines virtuelles peuvent être utilisées sur AndroidLa réponse courte est oui… mais avec quelques réserves. De nos jours, il existe plusieurs façons d'exécuter d'autres systèmes d'exploitation sur son téléphone mobile : Android au sein d'Android, les distributions Linux, ou même Windows 11 ARM sur certains appareils très spécifiques.
Tout au long de cet article, nous verrons Toutes les options réelles pour utiliser des machines virtuelles sur AndroidDes applications de type VMOS qui s'installent comme n'importe quelle autre application, la prise en charge de la virtualisation apportée par Android 13 aux téléphones comme le Pixel 6, ainsi que l'approche inverse (exécuter Android dans une machine virtuelle sur PC avec VMware ou VirtualBox) et les émulateurs officiels pour le développement : que vous débutiez avec Android ou que vous soyez simplement curieux d'en apprendre davantage sur le sujet, vous trouverez ici de quoi vous occuper.
Qu'est-ce qu'une machine virtuelle sous Android et que peut-on faire avec ?
Avant d'entrer dans le vif du sujet, il convient de clarifier certains concepts : a Une machine virtuelle est un système d'exploitation complet fonctionnant à l'intérieur d'un autre.En mode isolé. Sur les ordinateurs de bureau, c'est très courant avec VMware, VirtualBox ou Hyper-V, mais sur les appareils mobiles, cela paraît plus rare. Sur Android, une machine virtuelle peut s'avérer utile pour expérimenter, développer ou utiliser des applications que votre système habituel ne peut pas ou ne devrait pas exécuter.
Sur un appareil mobile Android, une VM vous permet de avoir un deuxième environnement complètement séparéAvec son propre bureau, ses comptes, son espace de stockage et, dans de nombreux cas, même des privilèges d'administrateur, mais uniquement au sein de cette machine virtuelle. Tout ce que vous faites à l'intérieur n'affecte pas directement le système hôte, ce qui permet d'expérimenter sans crainte.
Il est toutefois important de préciser que Faire tourner une machine virtuelle sur un téléphone a un coût.Le matériel de l'appareil doit exécuter deux systèmes simultanément ; il est recommandé d'utiliser des outils à cet effet. mesurer la performanceSur les téléphones d'entrée de gamme ou plus anciens, l'expérience peut être médiocre ; sur les téléphones de milieu et haut de gamme, les choses s'améliorent considérablement, mais ce n'est toujours pas « magique ».
En pratique, sur Android, vous rencontrerez deux scénarios principaux : virtualisation au niveau utilisateur via des applications (VMOS et similaires), et une virtualisation « sérieuse » prise en charge par le système lui-même dans des versions récentes telles qu'Android 13, qui est celle utilisée pour installer Windows 11 ARM sur un Pixel 6 à l'aide de QEMU.
VMOS et compagnie : Android dans Android sous forme d'application
L'un des exemples les plus connus de machine virtuelle sous Android est VMOS, un système Android virtuel qui s'installe comme une applicationLe plus curieux, c'est qu'il fonctionne par-dessus votre véritable système Android, en chargeant sa propre ROM (par exemple, Android 5.1 Lollipop) qui démarre dans une fenêtre ou en plein écran.
VMOS se comporte pratiquement comme si vous aviez un autre téléphone à l'intérieur de votre téléphoneCette machine virtuelle Android possède son propre bureau, son propre espace de stockage et ses propres applications. Les installations et suppressions effectuées à l'intérieur de cette machine virtuelle n'affectent pas le système externe, ce qui est très pratique pour expérimenter sans risquer d'endommager des données importantes.
L'un des principaux arguments est que La machine virtuelle VMOS peut être rootée d'une simple pression sur un bouton.Il n'est pas nécessaire de flasher quoi que ce soit d'inhabituel sur votre téléphone principal : activez les options pour développeurs de l'Android virtuel, sélectionnez l'option ROOT, redémarrez la machine virtuelle, et l'application superutilisateur apparaît pour gérer les autorisations… mais cet accès root n'existe que dans la machine virtuelle, et non sur le véritable appareil Android.
Cette approche a de nombreuses applications intéressantes au quotidien. Vous pouvez Cloner des applications pour utiliser deux comptes simultanément (WhatsApp, Facebook, etc.), conservez un espace « privé » avec des photos ou des contacts que vous ne souhaitez pas mélanger, laissez des jeux ou des tâches s'exécuter en arrière-plan pendant que vous utilisez normalement votre téléphone, ou testez le comportement d'anciennes applications sur une ancienne version d'Android.
Concernant l'installation, VMOS est téléchargé. sous forme d'application disponible sur Google Play ou sur son site web officielL'application demande de nombreuses autorisations (accès aux fichiers, à la localisation, aux données de l'appareil comme l'IMEI, etc.) afin que le système émulé puisse se comporter comme un véritable appareil. Elle télécharge ensuite sa propre ROM interne (généralement quelques centaines de mégaoctets) et effectue un premier démarrage, qui peut prendre entre cinq et dix minutes selon la puissance de traitement de votre téléphone.
À partir de ce moment-là, chaque fois que vous ouvrirez VMOS, vous verrez Votre Android virtuel prêt à l'emploi…bien plus rapidement qu’au premier lancement. Vous pouvez l’exécuter en plein écran ou en mode image dans l’image grâce à un bouton flottant, ce qui vous permet de garder cette seconde session toujours à portée de main tout en effectuant d’autres tâches.
Principales caractéristiques de VMOS : sécurité, systèmes multiples et copie de fichiers
Ce qui est formidable avec VMOS, c'est que ce n'est pas qu'une simple curiosité technique : Il offre une gamme de fonctionnalités axées principalement sur la sécurité et le multitâche.S'agissant d'un système isolé, ce qui se passe à l'intérieur ne devrait pas affecter le téléphone hôte, ce qui est parfait pour les tests risqués.
L'équipe VMOS le présente comme un environnement pour Protection indépendante pour le développement, les tests et la confidentialitéEn installant des applications au sein de la machine virtuelle, même malveillantes, les dommages restent limités à ce « faux téléphone », sans affecter directement le système réel. Il s'agit d'une sorte de bac à sable amélioré, idéal si vous installez fréquemment des fichiers APK provenant de sources non fiables ou si vous souhaitez tester des applications inhabituelles.
Un autre point frappant est que Vous pouvez exécuter plusieurs machines virtuelles en parallèle.Fonctionnant en arrière-plan, ces applications permettent de créer différents profils virtuels : un pour les tests d’accès root, un autre, plus propre, pour dupliquer les applications de messagerie, un autre encore pour les tâches d’automatisation ou les bots, etc. Chacun avec son propre bureau et ses propres paramètres.
VMOS comprend également un système de transfert de fichiers et d'applications entre le téléphone physique et la machine virtuelle Et, si vous travaillez sur un PC, vous pouvez voir comment Synchroniser les fichiers entre Windows et Android Pour faciliter le partage de fichiers, vous pouvez ainsi copier facilement des photos, des documents ou des fichiers APK sur l'Android virtuel sans avoir à vous soucier des détails techniques. En fin de compte, vous utilisez la machine virtuelle comme un espace de travail supplémentaire.
Enfin, l'application vous permet de modifier certains paramètres spécifiques à la machine virtuelle : paramètres de résolution, apparence du système, paramètres internes… Même sans une connaissance approfondie d'Android, l'interface est conçue pour que n'importe quel utilisateur puisse la manipuler avec une relative facilité.
Android 13 et virtualisation « sérieuse » : Windows 11 ARM sur un Pixel 6

Au-delà des solutions comme VMOS, quelque chose de bien plus puissant a récemment émergé : Virtualisation intégrée de bas niveau dans Android 13Google a amélioré l'infrastructure de sécurité et d'isolation du système, et certains de ces travaux ont permis une prise en charge beaucoup plus native des machines virtuelles ; vous pouvez consulter le outils pour consulter des informations matérielles détaillées qui permettent d'évaluer la compatibilité.
Un bon exemple en est celui d'un développeur, connu sous le pseudonyme de kdrag0n sur les réseaux sociaux, qui a réussi à Démarrage de Windows 11 ARM en tant que machine virtuelle sur un Google Pixel 6 J'utilisais Android 13 Developer Preview 1 et QEMU. Il ne s'agissait pas de streaming ni de bureau à distance : Windows était exécuté directement sur le téléphone.
Le plus surprenant dans cette expérience, c'est que, selon le développeur lui-même, Windows 11 ARM sur le Pixel 6 était parfaitement utilisable.Il ne disposait pas d'accélération GPU (ce qui limite les graphismes et les animations), mais les performances globales étaient plutôt fluides, permettant même de jouer au légendaire Doom à l'intérieur de la machine virtuelle.
Ce même mécanisme de virtualisation ne se limite pas à Windows. L'auteur lui-même l'a également démontré. plusieurs distributions Linux pour ARM fonctionnant comme machines virtuelles Sur l'appareil mobile, ses performances sont quasiment identiques à celles de la version console native. Autrement dit, c'est pratiquement comme si Linux était installé directement sur l'appareil.
Tout cela ouvre une possibilité très intéressante : connecter le téléphone portable à un écran externe, un clavier et une souris, et Utilisez votre smartphone comme s'il s'agissait d'un mini-ordinateur. Avec Windows 11 ARM ou une distribution Linux complète exécutée dans une machine virtuelle, l'idée que votre prochain ordinateur de bureau soit votre propre téléphone portable prend tout son sens grâce à ces avancées technologiques.
Émulateur Android et AVD : machines virtuelles pour le développement PC
Jusqu'à présent, nous avons parlé de machines virtuelles qui s'exécutent au sein du système Android d'un téléphoneMais si vous souhaitez développer des applications, la procédure habituelle est inverse : exécuter Android comme système invité sur votre ordinateur à l’aide d’un émulateur ou d’une machine virtuelle classique.
L'outil officiel de Google pour cela est Émulateur Android, qui fonctionne sur des appareils Android virtuelsOn les appelle AVD (Android Virtual Devices). Chaque AVD comprend une image système complète (ROM) avec l'intégralité de la pile logicielle Android et se comporte comme s'il s'agissait d'un appareil physique : écran, mémoire virtuelle sur Androidstockage, capteurs virtuels, etc.
L'émulateur Android fait partie de l'environnement de développement standard et s'intègre à Android Studio. Son architecture repose précisément sur exécuter le système d'exploitation Android dans une machine virtuelleavec leurs propres images système. Vous pouvez lancer différents AVD avec des résolutions, des versions d'Android et des tailles d'écran différentes, ce qui est idéal pour tester vos applications dans une grande variété de configurations.
Si vous souhaitez aller plus loin, le SDK lui-même le permet. compiler des images système personnalisées pour ces AVDLe processus est très similaire à la génération d'une ROM pour un appareil physique : vous téléchargez le code source Android, préparez l'environnement de compilation et générez l'image appropriée pour l'émulateur.
Par exemple, vous pourriez créer une image de Android x86_64 spécifique pour un AVD 64 bitsLe processus de base comprend l'initialisation du dépôt avec `repo`, la synchronisation du code source (`repo sync`), la configuration de l'environnement de compilation avec `build/envsetup.sh`, la sélection de la cible (par exemple, `sdk_phone_x86_64` avec la commande `lunch`), et le lancement de la compilation avec `make`. Une fois l'image prête, vous pouvez l'exécuter dans l'émulateur Android depuis la ligne de commande.
Partagez et distribuez des images AVD personnalisées
Si vous travaillez en équipe ou souhaitez que d'autres développeurs utilisent les mêmes paramètres que vous, c'est possible. Empaquetez vos images système AVD et partagez-les afin qu'ils puissent être intégrés à Android Studio et au gestionnaire de SDK d'autres utilisateurs.
Dans les versions modernes d'Android (à partir d'Android 13), le système de compilation permet de générer Les paquets du dépôt SDK contenant les images de l'émulateur à l'aide de commandes de compilation spécifiques, telles que make emu_img_zip. Le résultat est un fichier compressé contenant l'image système prête à être déployée.
Dans les versions précédentes, comme Android 12 et les versions antérieures, vous pouviez utiliser Les commandes make sdk sdk_repo permettent de générer les paquetsCela a créé un fichier ZIP contenant les images (par exemple, sdk-repo-linux-system-images-eng..zip) et un fichier XML de métadonnées (repo-sys-img.xml) dans le répertoire de sortie du SDK.
Une fois généré, le flux est simple : Vous hébergez le fichier ZIP sur un serveur accessible Vous modifiez ensuite le fichier XML pour qu'il pointe vers cette URL comme source de téléchargement. Ce fichier XML est ensuite publié publiquement et utilisé comme site de mise à jour personnalisé dans le Gestionnaire de SDK.
Depuis Android Studio, n'importe quel utilisateur peut Ajoutez l'URL de ce dépôt personnalisé au gestionnaire de SDK.Pour trouver l'image système, rendez-vous dans la section « Images système » et téléchargez-la comme n'importe quelle image officielle. Ainsi, chacun pourra créer des AVD à partir de la même ROM sans avoir à transférer manuellement les fichiers.
Émulation multi-écrans dans l'émulateur Android
Avec l'arrivée d'Android 10 et des versions ultérieures, Google a mis l'accent sur prise en charge multi-écrans, appareils pliables et modes similaires à ceux d'un ordinateur de bureauL'émulateur Android s'est adapté à cette réalité et permet d'émuler plusieurs écrans connectés au même appareil virtuel, ce qui est essentiel pour tester les applications qui doivent bien fonctionner dans ces scénarios.
L'activation de la compatibilité multi-écrans dans les images personnalisées implique Intégrez un fournisseur multi-écrans dans le produit que vous développez.Au niveau de la configuration, le produit x86 pour l'émulateur (par exemple, sdk_phone_x86) est ajusté pour inclure des bibliothèques spécifiques (telles que libemulator_multidisplay_jni en 32 et 64 bits) et l'APK MultiDisplayProvider au sein du système.
En plus d'ajouter les paquets nécessaires, il est nécessaire Activez la fonction MultiDisplay dans les fichiers de configuration du périphérique générique de l'émulateur. Ceci se fait grâce à un paramètre dans les fichiers de configuration avancée (advancedFeatures.ini) du périphérique virtuel qui indique que la fonction MultiDisplay est activée.
Grâce à ces modifications, l'émulateur Android permet créer des environnements de test avec plusieurs écrans virtuelsDes fenêtres simulant des écrans supplémentaires ou des panneaux pliables. Cela vous permet de tester le comportement de votre application lors du déplacement de contenu d'un écran à un autre, de gérer des fenêtres ou d'essayer des modes de bureau sans avoir besoin de matériel physique dédié.
Android sur machines virtuelles PC : VMware et VirtualBox
Une autre approche très utile, notamment pour le développement et les tests, est Installer Android comme système invité sur une machine virtuelle de bureauAu lieu d'utiliser simplement l'émulateur Google, vous pouvez créer une machine virtuelle dans VMware Workstation, VMware Player, ESXi ou VirtualBox et y placer une image Android-x86 ou d'autres variantes adaptées à x86-64.
Cette option présente plusieurs avantages : Vous pouvez prendre des instantanés, cloner des machines virtuelles et gérer le cycle de vie de l'environnement de test. Comme avec n'importe quel autre serveur ou système de laboratoire. De plus, vous profitez des performances matérielles de votre PC (processeur puissant, mémoire vive plus importante, stockage rapide) pour une expérience Android très fluide, particulièrement utile avec les versions récentes du système.
Le processus typique dans les environnements VMware ESXi ou Workstation commence par le téléchargement une installation ISO de Android x86-64Par exemple, une image basée sur Android 8.1 Oreo. Ces images ne sont pas destinées aux appareils mobiles, mais au matériel x86 comme les ordinateurs portables ou les machines virtuelles ; elles sont donc parfaitement adaptées aux hyperviseurs et serveurs de bureau.
Une fois que vous avez l'ISO, vous créez une nouvelle machine virtuelle indiquant Linux comme système invité, généralement avec un profil générique tel que « Autre Linux 3.xo ultérieur (64 bits) ». Vous allouez des ressources raisonnables (par exemple, 1 vCPU, 2 Go de RAM et un disque virtuel de 8 Go ou plus) et connectez l'ISO comme un lecteur CD/DVD virtuel configuré pour démarrer au lancement du système.
Lors du démarrage de la machine virtuelle à partir de l'ISO, suivez les étapes décrites dans le programme d'installation Android-x86 : Créez une nouvelle partition avec cfdisk, marquez-la comme amorçable et formatez-la en ext4.Installez GRUB comme gestionnaire de démarrage et autorisez le montage de /system en mode lecture-écriture. Une fois l'installation terminée, redémarrez le système ; le menu GRUB avec les options de démarrage Android devrait alors s'afficher.
Paramètres de démarrage, de réseau et de performances sous Android-x86 sur VMware
Dans certains cas, lorsqu'on essaie Démarrage d'Android-x86 pour la première fois dans la machine virtuelleLe système ne parvient pas à charger l'interface graphique et reste en mode console. Ce problème se résout généralement en modifiant les options de démarrage de GRUB : remplacer le paramètre `quiet` par une commande comme `nomodeset xforcevesa` pour forcer un mode graphique compatible.
Pour éviter de devoir répéter cette modification à chaque démarrage, vous pouvez Modifiez le fichier de configuration GRUB dans la machine virtuelle.Depuis la console Android, montez le disque virtuel (par exemple, /dev/block/sda1) sur un point de montage, ouvrez le fichier /mnt/sda/grub/menu.lst avec vi et modifiez la ligne du noyau pour inclure nomodeset xforcevesa. Enregistrez les modifications, redémarrez, et le système chargera l'environnement graphique automatiquement.
L'assistant de configuration initiale d'Android dans la machine virtuelle est similaire à celui d'un téléphone mobile : vous choisissez langue, date et heure, connexion réseau et compte GoogleDans les environnements VMware, le réseau apparaît généralement comme un réseau Wi-Fi virtuel, par exemple VirtWiFi, connecté à l'interface Ethernet virtuelle de la machine virtuelle. Vous pouvez également tester d'autres topologies réseau en connectant directement un adaptateur Wi-Fi USB physique à la machine virtuelle.
Une fois le système opérationnel, il est recommandé de désactiver le mode veille agressive et de vérifier options de performance telles que l'accélération graphique VM 3D Si l'hyperviseur le permet. Notez qu'il n'existe pas d'outils VMware officiels pour Android ; l'intégration ne sera donc pas aussi fluide que sur d'autres plateformes, mais pour le développement et les tests, c'est généralement largement suffisant.
Si vous utilisez ESXi avec vCenter ou Workstation sur votre PC, vous pouvez également Sauvegardez les machines virtuelles Android, clonez les instances et déplacez-les entre hôtes.Cela vous permet de disposer d'un petit laboratoire Android avec différentes configurations, ROM ou états de test parfaitement contrôlés.
AndroVM / Android-x86 dans VirtualBox : une alternative rapide à l’émulateur
Une autre solution historique (et toujours valable en tant qu'idée) consiste à avoir Android très performant sur votre PC Cela implique l'utilisation d'images spécialement conçues pour fonctionner dans VirtualBox, comme c'était le cas avec AndroVM. Ces types de projets étaient initialement basés sur Android-x86, mais étaient fournis au format OVA, prêts à être importés.
La procédure était très simple : vous téléchargiez le fichier OVA (par exemple, les versions vbox86p pour téléphone, vbox86t pour tablette ou vbox86tp pour tablette avec fonctionnalités de téléphone) et Vous l'avez importé directement dans VirtualBox. L'option « Importer le service virtualisé » a été utilisée. Le package comprenait des disques VMDK et un descripteur OVF avec toute la configuration prédéfinie.
Ces images avaient la particularité d'incorporer Google Apps, prise en charge de Flash et un traducteur Houdini pour exécuter des binaires ARM. L'architecture ARM pouvait être utilisée sur une architecture x86 lorsque cela s'avérait nécessaire. Cela a permis d'exécuter de nombreuses applications qui nécessitaient un processeur ARM, ce qui était essentiel pour maintenir la compatibilité avec les applications populaires.
Pour améliorer l'expérience graphique, AndroVM a ajouté son propre lecteur, AndroVM Player, qui permettait tirer parti de l'accélération OpenGL de la machine hôteCe composant, connecté à la machine virtuelle, affichait l'interface Android avec des performances supérieures à celles du framebuffer logiciel standard, permettant ainsi de travailler facilement même sur des résolutions de tablette sans perdre la tête.
La configuration du réseau était également essentielle : il était généralement activé. une carte réseau hôte uniquement dans VirtualBox avec serveur DHCPLa seconde carte réseau de la machine virtuelle était connectée à ce réseau, facilitant ainsi la communication avec l'ordinateur hôte. Cela permettait d'utiliser la commande `adb connect` pour accéder à l'adresse IP de la machine virtuelle et déboguer les applications comme s'il s'agissait d'un périphérique physique connecté en USB.
Un autre avantage intéressant était le soutien apporté à Les dossiers partagés VirtualBox sont montés automatiquement. Au sein de l'environnement Android virtuel, dans des répertoires tels que /mnt/shared, il était facile d'échanger des fichiers, des APK et des ressources de développement sans recourir à des solutions plus complexes.
Il est clair que Oui, il est possible d'utiliser des machines virtuelles dans et autour d'Android.Mais la bonne approche dépendra de ce que vous recherchez : bidouiller le téléphone lui-même, tester des applications avec une sécurité maximale, configurer un environnement de développement puissant sur un PC, ou même transformer votre téléphone portable en cerveau d’un mini-PC de poche lorsque vous le connectez à un écran externe.