Virtual Mac on iPad
est un super projet sous licence libre qui permet de booter un bon vieux macOS dans une machine virtuelle sur... un iPad jailbreaké ! Hé ouais ! Les versions de Monterey à Tahoe sont prises en charge (la 27 étant encore bien bien expérimentale), et vous pouvez ainsi lancer Xcode, le Terminal ou Final Cut Pro, Logic Pro et Pixelmator Pro directement sur votre tablette Apple.
Côté matos, il faut un iPad Pro M1 ou M2, ou un iPad Air M1 (et ça fonctionne aussi semble-t-il sur les iPhone 14 Pro et 14 Pro Max). Les modèles de 1 To et 2 To, qui embarquent 16 Go de mémoire, sont ceux que les développeurs recommandent et niveau perf apparemment, on est au même niveau que ce qu'on peut obtenir avec
VirtualBuddy
ou UTM quand ils virtualisent macOS sur un Mac M1 ou M2.
Pour l'installer, faudra donc jailbreaker l'iPad (avec
Dopamine
par exemple), puis ajouter dans
Sileo
le dépôt du projet, dont voici l'adresse et y rechercher l'app Virtual Mac.
https://nfzerox.github.io/cydia/
Tout le process de jailbreak est décrit dans le readme du projet soit pour iPadOS 15 à 16.3.1 ou pour iPadOS 14 à 14.8.1. Par contre, la variante Dopamine-roothide n'est pas supportée, du coup faudra repasser sur le Dopamine officiel.
Côté utilisation, avoir un Magic Keyboard n'est pas obligatoire puisque le tactile suffit avec un tap pour cliquer, un tap à 2 doigts pour le clic secondaire et le défilement, sans oublier le clavier virtuel sous l'icône du clavier. En revanche, la connexion à iCloud ou à un compte Apple n'est pas prise en charge, donc pendant la configuration de macOS faudra choisir "Configurer plus tard" et vous vous en passez...
Maintenant ce projet exige iPadOS 16.3.1 au maximum, parce qu'Apple a retiré dès iPadOS 16.4, son hyperviseur du noyau. Et sans lui malheureusement, le portage vers les versions ultérieures est devenu très compliqué. Voilà donc cette bidouille de Virtual Mac sur iPad c'est avant tout un petit kiff technique réservé aux possesseurs d'iPad resté sur la 16.3.1 ou inférieur, car downgrader semble compliqué pour pas dire impossible.
Maintenant je tiens à vous rappeler que
UTM SE
tourne sur iPad sans jailbreak, mais n'a pas de
JIT
ce qui fait qu'il doit passer par un interpréteur donc c'est beaucoup plus lent. Ça sert donc surtout à faire tourner des systèmes + anciens ou allégés comme DOS ou Alpine Linux.
Bref, avant de jailbreaker quoi que ce soit comme des petits fifous, regardez bien dans les Réglages quelle version d'iPadOS tourne sur votre iPad pour voir si c'est jouable !
Windows 11 dans une machine virtuelle sur un Mac Apple Silicon, ça se fait depuis looooongtemps avec des outils comme Parallels ou UTM. Mais tart,
l'outil en ligne de commande
qui crée et clone des VM comme on le ferait avec des conteneurs, n'en est pas capable, parce que la virtualisation d'Apple sur laquelle il repose ne gère officiellement que macOS et Linux.
Sauf qu'un dev nommé Mustafa Akin, vient de publier un
fork
qui permet d'installer Windows 11 avec tart sans un seul clic.
Je viens de le tester sur mon Mac Studio M4 Max avec l'ISO française de Windows 11 et j'ai trouvé que ça fonctionnait super, d'où ce petit tuto.
Ce qu'il vous faut avant de commencer
Pour vous lancer là dedans, il vous faut donc un Mac Apple Silicon sous macOS 26.6 ou 27, Xcode pour compiler tout ça, et bien sûr une
ISO de Windows 11 ARM64
(
faudra vous démerder ensuite avec la licence
). Par contre, faut le savoir, ce fork repose sur deux réglages privés d'Apple, non documentés, qu'une mise à jour de macOS pourra shooter à tout moment. Donc ne montez pas votre futur homelab là dessus sans un plan de repli.
Compiler tart et créer la VM
Sur son site, Mustafa Akin publie un binaire tout fait, mais j'ai préféré compiler le programme car le script de création du paquet de son fork signe proprement l'application en local avec le droit de virtualisation qui va bien.
git clone --branch windows-guest-extras https://github.com/mustafaakin/tart.git
cd tart
git checkout e4c623c
./scripts/package-windows-preview.sh 0.1.0-windows-preview
export PATH="$PWD/dist/windows-preview/tart.app/Contents/MacOS:$PATH"
La commande export rend ce tart.app accessible au niveau du système prioritaire devant un éventuel tart déjà installé. Il ne reste alors qu'à lui passer votre ISO... tart téléchargera alors les pilotes virtio-win et WinFsp, fabriquera son propre média d'installation et démarrera Windows sans rien demander de plus.
tart create win11 --from-iso ~/Downloads/Win11_Arm64.iso
Ça m'a pris en tout et pour tout 26 minutes pour obtenir cette VM Windows fonctionnelle. Notez également que l'installation force l'anglais américain et que d'autres langues peuvent poser souci mais avec mon ISO française, l'interface est bien restée en français. Seul le clavier est resté en QWERTY au départ.
Installer le pilote et l'agent à la mano
L'auteur écrit sur son blog que l'install de l'agent doit se faire manuellement pour l'instant mais ce qu'il a oublié de préciser c'est que le pilote viosock, celui qui relie le Mac à la VM, n'est pas dans la liste des pilotes que tart injecte (viostor, viogpudo, NetKVM, viorng et viofs). Résultat, chez moi, tart exec ne fonctionnait pas. Comme ce pilote se trouve dans l'ISO virtio-win que tart a gardée dans son cache, il suffit donc de le copier dans un dossier partagé, contenant l'agent publié avec la préversion :
Comme la commande tart run garde la main, laissez-la tourner et ouvrez un second terminal pour la suite, en y refaisant l'export ci-dessous depuis le dossier tart, sinon vous appellerez un autre tart.
Au démarrage, la session admin (mot de passe admin) s'ouvre alors toute seule et vous arrivez sur le bureau. Le dossier partagé apparaît sur le lecteur Z:, dans un dossier share. Ouvrez PowerShell en administrateur (et n'oubliez pas que le clavier est en QWERTY) pour installer le pilote, puis déclarer l'agent comme tâche lancée à l'ouverture de session, parce que c'est dans cette session que sont le presse-papiers et le bureau :
Le service VirtioSocketWSP doit alors afficher Running. S'il n'existe pas, c'est que le pilote n'est pas passé et tart exec ne répondra pas. Relisez alors la sortie de pnputil et vérifiez que le dossier viosock contient bien viosock.inf.
Vérifier que le terminal de Windows répond
Retournez ensuite dans le terminal du Mac et entrez cette commande pour connaitre le numéro de version du Windows :
tart exec win11 cmd /c ver
Microsoft Windows [version 10.0.26200.8037]
Informations système dans la VM : Windows 11 Famille, build 26200, sur une "Apple Virtualization Generic Platform" en ARM64
L'intérêt de tout ça c'est surtout d'avoir un Windows jetable. Vous devez arrêtez d'abord la VM de base avec tart exec win11 shutdown /s /t 0 puis pour cloner la VM, faites un : tart clone win11 w1 . C'est instantané, et y'a plus qu'à la démarrer avec un tart run w1 --no-graphics.
Avec --no-graphics ça démarre sans fenêtre et vous pouvez alors lancer ce que vous voulez avec tart exec. Ensuite pour tout stopper, un petit tart stop w1, et un tart delete w1 pour supprimer la VM et voilà...
Ce qui ne marche pas
En tout cas, n'en faites pas votre Windows de tous les jours car il n'y a ni son ni accélération graphique, pas de possibilité de suspendre le Windows et la virtualisation imbriquée se fige dès que Windows veut démarrer WSL2 ou Hyper-V.
La commande Get-Tpm confirme aussi l'absence de TPM. Et selon l'auteur, le disque est le point faible de ce Windows ARM 64 sous tart, en partie parce que tart rempli très vite les SSD avec ses logs. Pensez aussi à changer le mot de passe, puisque le compte est admin avec le mot de passe admin, et que SSH est ouvert sur le réseau interne de tart.
Mais pour tester des logiciels Windows ou scripter des trucs, ça tient bien la route.
AirCard
, c'est une appli macOS gratuite qui permet de remplacer l'image par défaut d'une carte dans Apple Wallet, directement depuis votre Mac relié à l'iPhone par un câble USB et tout ça sans jailbreak. Je l'ai essayée sur mon iPhone 16 Pro Max et ça marche du tonnerre. Attention quand même, l'appli n'a aucun bouton pour revenir en arrière, mais ne vous inquiétez pas je vais tout vous expliquer.
Ce tour de passe-passe nous vient d'AirLift, une faille du service AirTraffic, celui là même qui synchronise les médias d'un Mac vers iOS. Et
AirLift
s'en sert pour lire et écrire dans des dossiers qu'il n'est pas censé toucher, depuis un Mac déjà appairé avec l'iPhone. Cette petite vuln a été testée à partir de iOS 18.0, et Apple peut évidement la corriger quand elle veut mais ce serait quand même vraiment dommage parce que c'est bien cool. Maintenant rassurez vous, côté paiement, rien ne bouge ou n'est transféré ou créé. On ne change que l'image d'une carte du wallet c'est tout !
Je vous propose maintenant de rentrer dans le dur.
Installer AirCard et brancher l'iPhone
Il vous faut donc un Mac (Apple Silicon ou Intel), un iPhone, un câble USB qui transmet les données et une carte déjà ajoutée à Wallet. Téléchargez AirCard.dmg dans les releases du dépôt, ouvrez-le et glissez l'appli dans le dossier des Applications. Si macOS refuse de la lancer parce que l'éditeur est inconnu, faites un clic droit sur l'appli, Ouvrir, puis Ouvrir une seconde fois. Sinon, faut passer par
Sentinel
ou par cette commande qui retire le blocage :
sudo xattr -cr /Applications/AirCard.app
Détecter la carte
Branchez l'iPhone au Mac en USB, déverrouillé, et acceptez de faire confiance à l'ordinateur. Dans AirCard, restez sur l'onglet Apple Wallet et cliquez sur Scan Cards. Sur l'iPhone, double-cliquez sur le bouton latéral et Apple Pay s'ouvrira comme quand vous faites un paiement, avec Face ID. Une fois authentifié, touchez la carte à relooker, et une deuxième fois si rien ne bouge. Ce geste permet en fait à AirCard de récupérer l'identifiant de la carte (un hash), et elle peut apparaître ensuite dans la fenêtre du Mac.
Si le scan ne trouve rien, ouvrez Log dans AirCard et cherchez "Connected to the unified device log stream". Relancez ensuite un scan, authentifiez-vous et touchez vraiment la carte, ou passez d'une carte à l'autre. Si ça bloque encore, débranchez, déverrouillez l'iPhone et rebranchez. Des utilisateurs disent sur le GitHub du projet que le scan ne détecte pas toutes les cartes voire aucune avec cette 1.2.5. Moi j'ai pas eu de problème mais il arrive parfois que iOS remplace certaines valeurs par "private", et le scanner ne peut alors pas les récupérer.
Choisir l'image et flasher
Ensuite, cliquez sur l'emplacement de la carte où il y a le symbole +, ou glissez-y directement une image. AirCard la recadre alors automatiquement en 1536 × 969 pixels bien centrée avec le ratio d'une carte. Cela veut dire que peu importe le design que vous voulez utiliser, gardez bien ce qui est important pour vous au centre de l'image. Ensuite cliquez sur Flash Skins et ça appliquera votre image sur votre carte dans Apple Wallet. Chez moi, l'opération a pris entre 30 secondes jusqu'à parfois 1 min (j'ai pas super chronométré non plus, hein) mais le flash est allé jusqu'au bout à chaque fois.
Ensuite quittez Wallet depuis le sélecteur d'apps et relancez-le, ou redémarrez carrément l'iPhone et hop, votre nouveau visuel de carte apparaîtra.
J'ai donc comme beaucoup commencé par un skin d'Amex Black, sans chichi sur l'une de mes CB, histoire de frimer...
Puis sur ma seconde CB, je me suis fait un skin de carte Vitale maison. Au départ, je me suis fait un PNG avec Pixelmator, tout ce qu'il y a de plus normal avec la bonne taille et tout et tout, mais ça n'a jamais voulu se mettre sur ma carte. Donc, j'ai refait l'image en important simplement mon visuel dans l'
éditeur de cardart.cc
, qui exporte un PNG clean au bon format en 1536 × 969 et ça a fonctionné.
Et voilà, quand je paie en sans contact, maintenant ça donne ça... Je pense que les caissier.es vont flipper.
D'ailleurs, si vous cherchez d'autres visuels, il y en a plein sur
cardart
en téléchargement gratuit. La carte d'identité de Bob l'Eponge m'a tenté aussi, je l'avoue....
Le clavier du code, le Mac en moins, et le piège
Notez que AirCard sait aussi habiller le clavier du code de verrouillage avec des thèmes en .passthm. Suffit de vous rendre dans l'onglet Passcode, vous glissez le fichier passthm, vous l'appliquez puis vous redémarrez, et là, normalement, vous avez un super beau clavier. Pour ma part, je n'ai pas essayé parce que je m'en fous un peu, mais bon, c'est là.
Ah et sinon, si vous n'avez pas de Mac, il y a aussi une version
AirCard-iOS
qui fera le taf uniquement depuis l'iPhone, mais ça exige iOS 18 minimum, une installation par sideload (SideStore, AltStore, TrollStore ou LiveContainer) et un appairage par le mode développeur. Donc, c'est un peu plus relou qu'avec l'application pour macOS.
Et le petit piège dont je vous parle au début, c'est que la version 1.2.5 de Aircard n'a pas de bouton pour restaurer le visuel d'origine. Donc, si celui-ci ne vous plaît plus, vous pouvez soit le remplacer par un autre, soit vous devez retrouver votre visuel d'origine en téléchargement sur le web. Après, peut-être qu'en supprimant la carte du wallet et en la recréant, ça réparera le visuel, je ne sais pas... Faudra tester !
Je vous ai déjà parlé des fameuses
collections de Retro-eXo
, dont le fameux eXoDOS en tête qui contient des milliers de jeux DOS, Windows 3.x, Windows 95/98 et ScummVM livrés clé en main, tout bien configurés. Sauf que sur Mac, bah pas de bol, eXo n'est pas supporté faute de volontaire pour y porter l'interface.
Alors c'est là qu'arrive
Exodium
sur son cheval blanc, qui n'est ni plus ni moins qu'un merveilleux lanceur gratuit et open source pour Mac Apple Silicon, Linux et Windows et dont la mission est de remplacer LaunchBox, l'interface Windows fournie avec les collections. Le catalogue de jeux est bien sûr livré avec l'appli, donc vous parcourez les fiches sans rien télécharger, et quand un jeu vous branche, vous cliquez simplement sur "Download" et hop, il descend des torrents officiels d'eXo tel un rafteur en manque d'adrénaline, puis se lance dans l'émulateur qui va bien (ou presque... mais je vais y revenir).
L'étagère des collections, et un jeu en cours de téléchargement
Et surtout, ça ne se limite pas à eXoDOS puisque vous avez aussi ses packs allemand, espagnol et polonais, ainsi que eXoWin3x, et eXoScummVM, où chaque jeu tourne sur la version de ScummVM qui va bien pour lui (c'est eXo qui choisit).
Quant à eXoWin9x, il boote carrément un vrai Windows 95 / 98 sous DOSBox-X ou 86Box, que l'appli va chercher avec votre premier jeu Win9x, ainsi qu'environ 2,5 Go d'images système.
Moi, ce que j'adore, c'est l'ambiance avec de la musique MT-32 et General MIDI qui fonctionne au poil, puisque les ROM Roland et la banque de sons SoundCanvas sont récupérées direct dans la collection. Les manuels, les scans de boîtes et les pubs de magazines sont là aussi, et comme les vidéos d'aperçu sont lues directement dans les archives, vous pouvez voir ce que donne le jeu, avant même de le récupérer. Et pour chaque titre, vous pouvez aussi activer un shader CRT, régler les cycles CPU ou éditer la config DOSBox à la main. Bref, c'est assez souple pour que chacun s'y retrouve.
Par contre, hors Windows, les quelques 2 400 jeux qu'eXo a réglés pour DOSBox ECE (c'est une des variantes de DOSBox) passent tous sous DOSBox Staging, avec une config traduite automatiquement. La fiche du jeu vous prévient donc que l'expérience peut "varier", et comme y'a qu'une poignée de titres qui exploitent les spécificités d'ECE, comme par exemple les réglages 3dfx Voodoo ou le pistolet GunStick, les jeux peuvent se comporter parfois bizarrement ou différemment de ce dont vous avez l'habitude. Par contre, sous Windows, c'est le vrai ECE d'eXo qui se lance, donc 0 souci !
L'autre chose à savoir, et là c'est qu'Exodium est un client BitTorrent. Donc il rejoindra l'essaim d'eXoDOS et renverra des bouts de data aux autres joueurs tant qu'il restera ouvert. Ça c'est le comportement prévu par défaut, mais si vous ne voulez rien partager, il suffit de décocher l'option lors de l'installation.
Ou plus tard de couper le partage dans les réglages réseau de eXo. L'envoi tombera alors à 1 ko/s au lieu de s'arrêter. Maintenant si vous avez déjà la collection sur un disque, sachez que le mode hors ligne ne lancera pas le client torrent.
3 jeux en cours, avec le nombre de pairs et le volume partagé
Niveau installation, le DMG macOS est réservé aux Mac Apple Silicon, donc rien pour les malheureux qui sont encore sous Mac Intel. Et comme l'appli n'est pas signée avec un Developer ID Apple, Gatekeeper vous enverra chier au premier lancement, donc levez le blocage, glissez-la dans Applications, puis tapez une fois dans un terminal :
Maintenant, sous Linux spécifiquement, Exodium n'est pas indispensable pour eXoDOS car
les patchs Linux officiels
le font déjà tourner avec leur interface exogui. Mais ça sert surtout pour eXoWin3x, eXoWin9x et eXoScummVM, qui sont totalement absents de la liste de ces patchs. Notez que sur Mac, il existe aussi
le patch non officiel de NightsPaladin
, mais il vous faudra la collection eXoDOS sur un disque ainsi que Homebrew et Python alors qu'Exodium, lui, vous laissera commencer l'aventure avec un seul jeu sans avoir à récup toute la collection !