Docker-OSX
Présentation de Docker-OSX
- Docker-OSX est un projet qui permet d’exécuter macOS dans un conteneur Docker.
- Il propose diverses fonctionnalités comme le transfert X11, la recherche en sécurité sur iMessage et la prise en charge USB de l’iPhone.
- Il permet de mener des recherches en sécurité sur macOS depuis Linux et Windows.
Communauté et support
- Docker-OSX dispose de serveurs Discord et Telegram.
- Il existe une communauté active où partager des questions ou des idées.
- Pour les demandes personnelles, il est possible de passer par LinkedIn ou le site web de Sick.Codes.
Auteur et contributeurs
- Ce projet est maintenu par Sick.Codes.
- La liste des contributeurs supplémentaires est disponible sur GitHub.
- Des remerciements sont adressés aux projets OSX-KVM et KVM-OpenCore.
Guide de démarrage rapide
- Un tutoriel vidéo d’installation est proposé.
- Les utilisateurs de Windows doivent consulter les notes supplémentaires.
- Plusieurs versions de macOS sont prises en charge, notamment Catalina, Big Sur, Monterey, Ventura et Sonoma.
Catalina
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:latest
Big Sur
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:big-sur
Monterey
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e GENERATE_UNIQUE=true \
-e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/…' \
sickcodes/docker-osx:monterey
Ventura
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e GENERATE_UNIQUE=true \
-e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/…' \
sickcodes/docker-osx:ventura
Sonoma
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e GENERATE_UNIQUE=true \
-e CPU='Haswell-noTSX' \
-e CPUID_FLAGS='kvm=on,vendor=GenuineIntel,+invtsc,vmware-cpuid-freq=on' \
-e MASTER_PLIST_URL='https://raw.githubusercontent.com/sickcodes/osx-serial-generator/…' \
sickcodes/docker-osx:sonoma
Catalina préinstallé
docker pull sickcodes/docker-osx:auto
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e GENERATE_UNIQUE=true \
sickcodes/docker-osx:auto
Systèmes plus anciens
High Sierra
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:high-sierra
Mojave
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
sickcodes/docker-osx:mojave
Télécharger et utiliser manuellement l’image
- Si le CDN de Docker est lent, il est possible de télécharger l’image manuellement et de l’utiliser.
wget https://images2.sick.codes/mac_hdd_ng_auto.img
docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v "${PWD}/mac_hdd_ng_auto.img:/image" \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e GENERATE_UNIQUE=true \
-e MASTER_PLIST_URL=https://raw.githubusercontent.com/sickcodes/Docker-OSX/… \
sickcodes/docker-osx:naked
Passthrough USB pour iPhone
- Plusieurs méthodes sont proposées pour le passthrough USB de l’iPhone.
- Sur un PC de bureau, il est possible de suivre les instructions de @Silfalion.
- Sur un ordinateur portable, on peut utiliser usbfluxd pour un passthrough de type réseau.
Optimisation des performances
- Il est possible d’améliorer les performances avec osx-optimizer.
- Diverses options d’optimisation sont proposées, comme ignorer l’écran de connexion GUI ou désactiver l’indexation Spotlight.
Augmenter l’espace disque
- Il est possible de déplacer /var/lib/docker vers un disque externe afin de libérer de l’espace.
- Un tutoriel détaillé est disponible sur le site web de Sick.Codes.
Détails techniques
- Prise en charge de plusieurs versions de macOS : High Sierra, Mojave, Catalina, Big Sur, Monterey, Ventura et Sonoma.
- Prise en charge de l’iPhone OSX KVM, du partage de dossiers, du passthrough USB, de SSH et de VNC.
- Exécution basée sur le transfert X11 et sur QEMU + KVM.
Prérequis
- Au moins 20 Go d’espace disque sont nécessaires.
- La virtualisation doit être activée dans les paramètres du BIOS.
- Un hôte KVM x86_64 est requis.
TODO
- Documentation pour la recherche en sécurité.
- Support de l’accélération GPU.
- Support de virt-manager.
Images Docker
- Les images Docker-OSX peuvent être téléchargées depuis Docker Hub.
Support Kubernetes
- Docker-OSX prend en charge Kubernetes.
- Le Helm Chart Kubernetes et la documentation sont disponibles dans le répertoire helm.
Support
- Pour les petites questions ou les problèmes mineurs, il est possible d’utiliser les issues GitHub.
- Un service de support professionnel est également proposé.
Licence et contribution
- Docker-OSX est distribué sous licence GPL v3+.
- Les contributions sont les bienvenues, et la liste des contributeurs est disponible sur GitHub.
Projets similaires
- Dock Droid : exécuter Android dans un conteneur Docker.
- Docker-eyeOS : exécuter iOS 12 dans un conteneur Docker.
- Bluebubbles.app : exécuter un relayeur iMessage dans Docker.
Clause de non-responsabilité
- Si vous vous intéressez à la recherche en sécurité autour d’Apple, ce projet peut être utile.
- Les questions juridiques liées à Hackintosh, OSX-KVM et Docker-OSX relèvent de la responsabilité de chacun.
Résumé de GN⁺
- Docker-OSX est un outil utile qui permet d’exécuter macOS dans un conteneur Docker.
- Il prend en charge plusieurs versions de macOS et se révèle pratique pour la recherche en sécurité et le développement.
- Le support communautaire est actif, avec diverses options d’installation et d’optimisation.
- Parmi les projets offrant des fonctions similaires figurent Dock Droid et Docker-eyeOS.
1 commentaires
Avis Hacker News
Pour l’accélération GPU, il faut utiliser un dGPU pris en charge (AMD RX 6xxx ou plus récent) via le passthrough PCI
Projets liés :
Une interview avec Sick Codes discute de l’approche de ce produit
Exécuter la synchronisation iCloud sur un home server serait très intéressant
Ce projet ne fournit actuellement que des images Docker x86-64, pas de version aarch64
J’aimerais essayer des builds iOS
QEMU s’exécute dans un conteneur, et macOS s’exécute à l’intérieur
Je me demande si la redistribution d’images macOS est autorisée par la licence
Je me demande si le projet s’arrêtera lorsqu’une version récente de macOS sans prise en charge Intel sortira
Je déteste l’usage incorrect du terme « USB passthrough »