Docker-OSX
Einführung in Docker-OSX
- Docker-OSX ist ein Projekt, mit dem sich macOS in einem Docker-Container ausführen lässt.
- Es bietet verschiedene Funktionen wie X11-Forwarding, Sicherheitsforschung zu iMessage und iPhone-USB-Betrieb.
- Damit lässt sich macOS-Sicherheitsforschung unter Linux und Windows durchführen.
Community und Support
- Docker-OSX betreibt einen Discord- und einen Telegram-Server.
- Es gibt eine aktive Community, in der Fragen und Ideen geteilt werden können.
- Persönliche Anfragen sind über LinkedIn oder die Sick.Codes-Website möglich.
Autor und Mitwirkende
- Dieses Projekt wird von Sick.Codes gepflegt.
- Eine Liste weiterer Mitwirkender ist auf GitHub zu finden.
- Den Projekten OSX-KVM und KVM-OpenCore wird gedankt.
Schnellstart-Anleitung
- Ein Video-Installations-Tutorial wird bereitgestellt.
- Windows-Nutzer sollten die zusätzlichen Hinweise prüfen.
- Unterstützt werden verschiedene macOS-Versionen wie Catalina, Big Sur, Monterey, Ventura und 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 vorinstalliert
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
Ältere Systeme
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
Image manuell herunterladen und verwenden
- Wenn das CDN von Docker langsam ist, kann das Image manuell heruntergeladen und verwendet werden.
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
iPhone-USB-Passthrough
- Es werden verschiedene Methoden für iPhone-USB-Passthrough bereitgestellt.
- Auf Desktop-PCs kann den Anleitungen von @Silfalion gefolgt werden.
- Auf Laptops ist netzwerkartiges Passthrough mit usbfluxd möglich.
Performance-Optimierung
- Mit osx-optimizer lässt sich die Performance verbessern.
- Es werden verschiedene Optimierungsoptionen bereitgestellt, darunter das Überspringen des GUI-Login-Bildschirms und das Deaktivieren der Spotlight-Indizierung.
Speicherplatz erweitern
- Durch das Verschieben von /var/lib/docker auf ein externes Laufwerk kann Speicherplatz freigemacht werden.
- Ein ausführliches Tutorial ist auf der Sick.Codes-Website zu finden.
Technische Details
- Unterstützt verschiedene macOS-Versionen: High Sierra, Mojave, Catalina, Big Sur, Monterey, Ventura, Sonoma.
- Unterstützung für iPhone OSX KVM, Ordnerfreigabe, USB-Passthrough, SSH und VNC.
- Ausführung auf Basis von X11-Forwarding sowie QEMU + KVM.
Anforderungen
- Mindestens 20 GB Speicherplatz erforderlich.
- Virtualisierung muss in den BIOS-Einstellungen aktiviert sein.
- Ein x86_64-KVM-Host ist erforderlich.
TODO
- Dokumentation für Sicherheitsforschung.
- Unterstützung für GPU-Beschleunigung.
- Unterstützung für virt-manager.
Docker-Image
- Das Docker-OSX-Image kann von Docker Hub heruntergeladen werden.
Kubernetes-Unterstützung
- Docker-OSX unterstützt Kubernetes.
- Kubernetes-Helm-Chart und Dokumentation sind im Verzeichnis
helm zu finden.
Support
- Kleine Fragen oder Probleme können über GitHub-Issues gemeldet werden.
- Es werden auch professionelle Support-Services angeboten.
Lizenz und Beiträge
- Docker-OSX steht unter der GPL-v3+-Lizenz.
- Beiträge sind willkommen, und die Liste der Mitwirkenden ist auf GitHub zu finden.
Ähnliche Projekte
- Dock Droid: Android in einem Docker-Container ausführen.
- Docker-eyeOS: iOS 12 in einem Docker-Container ausführen.
- Bluebubbles.app: iMessage-Relayer in Docker ausführen.
Haftungsausschluss
- Wer sich für Apple-Sicherheitsforschung interessiert, wird dieses Projekt nützlich finden.
- Rechtliche Fragen zu Hackintosh, OSX-KVM und Docker-OSX liegen in der eigenen Verantwortung.
Zusammenfassung von GN⁺
- Docker-OSX ist ein nützliches Tool, mit dem sich macOS in einem Docker-Container ausführen lässt.
- Es unterstützt verschiedene macOS-Versionen und ist für Sicherheitsforschung und Entwicklung nützlich.
- Die Community-Unterstützung ist aktiv, und es werden verschiedene Installations- und Optimierungsoptionen geboten.
- Projekte mit ähnlicher Funktionalität sind Dock Droid und Docker-eyeOS.
1 Kommentare
Hacker-News-Kommentare
Für GPU-Beschleunigung muss eine per PCI-Passthrough unterstützte dGPU (AMD RX 6xxx oder höher) verwendet werden
Verwandte Projekte:
In einem Interview mit Sick Codes wird der Ansatz hinter diesem Produkt diskutiert
Es wäre cool, die iCloud-Synchronisierung auf einem Home-Server laufen zu lassen
Dieses Projekt bietet derzeit nur x86-64-Docker-Images, nicht aber aarch64
Würde gern iOS-Builds ausprobieren
QEMU läuft im Container, und darin läuft macOS
Ich frage mich, ob die Weiterverbreitung von macOS-Images durch die Lizenz erlaubt ist
Ich frage mich, ob es zum Stillstand kommt, sobald eine neue macOS-Version ohne Intel-Unterstützung erscheint
Ich hasse es, wenn der Begriff „USB-Passthrough“ falsch verwendet wird