Le développeur Miguel Cruz, connu sous le nom d’Acelogic, a publié Snapintosh, un projet expérimental qui démarre macOS 27 sur un ordinateur portable ASUS Zenbook A16 équipé d’un processeur Qualcomm Snapdragon X2 Elite. Il parvient également à faire fonctionner la GPU Adreno avec accélération graphique. Le code est disponible sur GitHub, mais il ne fonctionne que sur ce modèle précis. Chaque démarrage nécessite la connexion d’un Mac via USB-C, et certaines fonctionnalités de base telles que l’audio ou la gestion de l’alimentation ne sont pas encore implémentées.
Les points clés de Snapintosh en 20 secondes
- Snapintosh démarre macOS 27 sur un ASUS Zenbook A16 avec Snapdragon X2 Elite.
- Un hyperviseur permet d’utiliser le noyau d’Apple sans modifications.
- Il intègre un pilote Metal et un compilateur de shaders pour la GPU Adreno.
- Chaque démarrage nécessite encore un Mac connecté par USB-C.
La transition d’Apple vers ses propres puces semblait marquer la fin du Hackintosh, cette pratique consistant à installer macOS sur des ordinateurs non Apple, très répandue durant l’ère des processeurs Intel. Snapintosh ouvre une nouvelle voie sur du matériel ARM non signé Apple, bien que son créateur précise qu’il ne s’agit pas d’une solution stable ni supportée officiellement pour utiliser macOS.
Comment le système parvient-il à démarrer macOS sur un Snapdragon ?
Partageant une architecture ARM, cela ne suffit pas pour que macOS fonctionne sur un chipset Qualcomm. Le système d’Apple requiert ses propres pilotes, dispositifs et mécanismes de gestion mémoire. Snapintosh comble cette distance grâce à un hyperviseur qui s’exécute au niveau d’exception EL2, fournissant au noyau les interfaces attendues sur un Mac équipé de silicium Apple : les appels aux moniteurs de sécurité SPTM et TXM, la traduction des tables de pages de 16 Ko utilisées par macOS en celles de 4 Ko du matériel, ainsi que l’émulation des dispositifs Apple.
Selon la documentation du projet, le moniteur exécute par défaut le kernelcache original d’Apple sans modifications, bien que des patchs optionnels soient documentés. La séquence de démarrage passe par le firmware UEFI de l’ordinateur, par q1n1, une variante de m1n1 (outil du projet Asahi Linux), puis par le moniteur de Snapintosh, pour enfin lancer le noyau de macOS.
Le matériel compatible est l’ASUS Zenbook A16 UX3607OA avec le Snapdragon X2E-96-100 et la GPU Adreno X2-90. Le fichier README insiste sur le fait qu’aucun autre modèle n’est supporté, car les tables de dispositifs, les horloges et les adresses de registres sont spécifiques à cette machine.
Accélération graphique avec la GPU Adreno
La partie graphique constitue la tâche la plus complexe. Le projet intègre AdrenoMetal, un composant agissant comme pilote pour Metal, l’interface graphique d’Apple ; AdrenoX2, une extension du noyau connectant la GPU au système graphique de macOS ; et air2ir3, un compilateur traduisant les shaders d’Apple dans un format compréhensible par l’Adreno, en s’appuyant sur le compilateur ir3 du projet Mesa. L’auteur souligne qu’il n’y a pas de rendu logiciel ni par la CPU : tout le traitement graphique est effectué par la GPU du portable.
Selon ses tests, l’écran interne fonctionne à une résolution de 2880 × 1800 pixels à 60 Hz. Les sessions complètes les plus récentes ont duré entre 25 et 30 minutes sans erreur critique du noyau. Le clavier et le touchpad fonctionnent, y compris les gestes et Mission Control, et macOS s’installe et démarre depuis le SSD NVMe interne. Toutefois, le développeur reconnait quelques ralentissements, des pauses occasionnelles, des erreurs visuelles dans certaines parties des réglages, ainsi que des limitations empêchant le CPU d’atteindre ses fréquences maximales.
Ce qui manque encore
La liste des fonctionnalités en attente est longue. Le Wi-Fi présente des avancées expérimentales : le scan, le WPA2 et le DHCP fonctionnent dans un environnement de test, mais il n’est pas encore possible de se connecter via le menu de macOS. L’audio, les caméras, le Bluetooth, la gestion de l’alimentation (suspension) et l’utilisation d’écrans externes ne fonctionnent pas encore. La fréquence de rafraîchissement de 120 Hz du panneau reste également à implémenter.
La limitation la plus gênante concerne le processus de démarrage. Chaque mise en marche doit être lancée depuis un Mac connectée en USB-C, qui sert de passerelle pour l’alimentation et les logs. Il n’existe pas encore de méthode pour allumer directement le ASUS et accéder immédiatement à macOS. De plus, le dépôt ne comprend aucun binaire d’Apple, Qualcomm ou ASUS : l’utilisateur doit fournir l’image de macOS 27, le kit de débogage du noyau, le firmware de l’appareil, et tout compiler via Xcode.
L’auteur met en garde : l’installation modifie la table de partition du SSD et un dysfonctionnement pourrait entraîner la perte de données, y compris d’un éventuel Windows installé. Il recommande donc de faire une sauvegarde complète. Les outils ajustent aussi directement heures et tensions hardware. Enfin, il rappelle que faire fonctionner macOS sur du matériel non Apple peut violer la licence de logiciel d’Apple. Le code du projet est distribué sous licence MIT, distinct de toute relation avec Apple, Qualcomm, ASUS ou Asahi Linux.
Questions fréquentes
Qu’est-ce que Snapintosh ?
Un projet expérimental open source permettant de lancer macOS 27 sur un ASUS Zenbook A16 avec Snapdragon X2 Elite via un hyperviseur, avec accélération graphique sur GPU Adreno.
Sur quels ordinateurs portables fonctionne Snapintosh ?
Uniquement sur le ASUS Zenbook A16 UX3607OA avec Snapdragon X2E-96-100. L’auteur précise qu’il ne supporte aucun autre modèle.
Peut-on utiliser Snapintosh au quotidien ?
Non. Chaque démarrage requiert un Mac connecté en USB-C, et des fonctionnalités essentielles comme l’audio, la caméra, le Bluetooth, la gestion de l’alimentation ou les écrans externes ne sont pas encore supportées.
Est-il légal d’installer macOS sur un portable non Apple ?
L’auteur avertit que cela peut enfreindre la licence d’utilisation de macOS et que chaque utilisateur en assume la responsabilité. Il appartient au particulier de respecter les termes légaux en vigueur.
Sources :