Docker-OSX
Introducción a Docker-OSX
- Docker-OSX es un proyecto que permite ejecutar macOS dentro de un contenedor Docker.
- Ofrece varias funciones, como reenvío X11, investigación de seguridad de iMessage y funcionamiento de USB para iPhone.
- Permite realizar investigación de seguridad de macOS en Linux y Windows.
Comunidad y soporte
- Docker-OSX opera servidores de Discord y Telegram.
- Hay una comunidad activa donde se pueden compartir preguntas e ideas.
- Las consultas personales se pueden hacer a través de LinkedIn o del sitio web de Sick.Codes.
Autor y contribuidores
- Este proyecto es mantenido por Sick.Codes.
- La lista de contribuidores adicionales se puede consultar en GitHub.
- Se agradece a los proyectos OSX-KVM y KVM-OpenCore.
Guía de inicio rápido
- Se ofrece un video tutorial de instalación.
- Los usuarios de Windows deben revisar las notas adicionales.
- Soporta varias versiones de macOS, como Catalina, Big Sur, Monterey, Ventura y 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 preinstalado
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
Sistemas antiguos
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
Descarga manual y uso de la imagen
- Si el CDN de Docker es lento, se puede descargar la imagen manualmente y usarla.
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 de USB para iPhone
- Se ofrecen varios métodos para el passthrough de USB para iPhone.
- En PCs de escritorio se pueden seguir las instrucciones de @Silfalion.
- En laptops se puede usar usbfluxd para un passthrough estilo red.
Optimización de rendimiento
- Se puede mejorar el rendimiento usando osx-optimizer.
- Ofrece varias opciones de optimización, como omitir la pantalla de inicio de sesión GUI y desactivar la indexación de Spotlight.
Aumento del espacio en disco
- Se puede mover
/var/lib/docker a una unidad externa para liberar espacio en disco.
- El tutorial detallado se puede consultar en el sitio web de Sick.Codes.
Detalles técnicos
- Soporta varias versiones de macOS: High Sierra, Mojave, Catalina, Big Sur, Monterey, Ventura y Sonoma.
- Soporta iPhone OSX KVM, compartición de carpetas, passthrough USB, SSH y VNC.
- Ejecución basada en reenvío X11 y QEMU + KVM.
Requisitos
- Se requieren al menos 20 GB de espacio en disco.
- Es necesario habilitar la virtualización en la configuración del BIOS.
- Se requiere un host x86_64 KVM.
TODO
- Documentación para investigación de seguridad.
- Soporte para aceleración por GPU.
- Soporte para virt-manager.
Imágenes Docker
- La imagen de Docker-OSX se puede descargar desde Docker Hub.
Soporte para Kubernetes
- Docker-OSX soporta Kubernetes.
- El Helm Chart de Kubernetes y la documentación se pueden consultar en el directorio
helm.
Soporte
- Las preguntas pequeñas o incidencias se pueden consultar mediante GitHub Issues.
- También se ofrece soporte profesional.
Licencia y contribuciones
- Docker-OSX se distribuye bajo la licencia GPL v3+.
- Las contribuciones son bienvenidas y la lista de contribuidores se puede consultar en GitHub.
Proyectos similares
- Dock Droid: ejecutar Android en un contenedor Docker.
- Docker-eyeOS: ejecutar iOS 12 en un contenedor Docker.
- Bluebubbles.app: ejecutar un relé de iMessage en Docker.
Descargo de responsabilidad
- Si te interesa la investigación de seguridad de Apple, este proyecto te será útil.
- Los temas legales de Hackintosh, OSX-KVM y Docker-OSX son responsabilidad de cada quien.
Resumen de GN⁺
- Docker-OSX es una herramienta útil que permite ejecutar macOS dentro de un contenedor Docker.
- Soporta varias versiones de macOS y es útil para investigación de seguridad y desarrollo.
- Tiene una comunidad activa y ofrece varias opciones de instalación y optimización.
- Proyectos con funciones similares incluyen Dock Droid y Docker-eyeOS.
1 comentarios
Comentarios en Hacker News
Para la aceleración por GPU, se debe usar una dGPU compatible (AMD RX 6xxx o superior) mediante PCI passthrough
Proyectos relacionados:
En una entrevista con Sick Codes se habla del enfoque hacia este producto
Estaría genial ejecutar la sincronización de iCloud en un home server
Este proyecto actualmente solo ofrece imágenes Docker x86-64, no aarch64
Me gustaría intentar hacer builds de iOS
QEMU se ejecuta dentro de un contenedor, y macOS se ejecuta dentro de él
Me pregunto si la licencia permite redistribuir imágenes de macOS
Me pregunto si el avance se detendrá cuando salga una versión reciente de macOS sin soporte para Intel
No me gusta que se use incorrectamente el término "USB passthrough"