Docker-OSX
Introdução ao Docker-OSX
- Docker-OSX é um projeto que permite executar macOS em um contêiner Docker.
- Oferece vários recursos, como encaminhamento X11, pesquisa de segurança do iMessage e funcionamento de USB do iPhone.
- É possível realizar pesquisas de segurança do macOS em Linux e Windows.
Comunidade e suporte
- O Docker-OSX mantém servidores no Discord e no Telegram.
- Há uma comunidade ativa onde é possível compartilhar perguntas e ideias.
- Contatos pessoais podem ser feitos pelo LinkedIn ou pelo site Sick.Codes.
Autor e contribuidores
- Este projeto é mantido por Sick.Codes.
- A lista de contribuidores adicionais pode ser consultada no GitHub.
- O projeto agradece ao OSX-KVM e ao KVM-OpenCore.
Guia de início rápido
- Há um tutorial em vídeo de instalação disponível.
- Usuários de Windows devem conferir as notas adicionais.
- Suporta várias versões do macOS, incluindo Catalina, Big Sur, Monterey, Ventura e 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é-instalado
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 antigos
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
Download manual e uso da imagem
- Se a CDN do Docker estiver lenta, é possível baixar e usar a imagem manualmente.
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
Pass-through de USB do iPhone
- São oferecidos vários métodos para pass-through de USB do iPhone.
- Em PCs desktop, é possível seguir as instruções de @Silfalion.
- Em notebooks, é possível usar o usbfluxd para um pass-through no estilo de rede.
Otimização de desempenho
- É possível melhorar o desempenho usando o osx-optimizer.
- Há várias opções de otimização, como pular a tela de login GUI e desativar a indexação do Spotlight.
Aumento de espaço em disco
- É possível mover
/var/lib/docker para uma unidade externa para liberar espaço em disco.
- Um tutorial detalhado está disponível no site Sick.Codes.
Detalhes técnicos
- Suporta várias versões do macOS: High Sierra, Mojave, Catalina, Big Sur, Monterey, Ventura e Sonoma.
- Suporte a iPhone OSX KVM, compartilhamento de pastas, pass-through de USB, SSH e VNC.
- Execução baseada em encaminhamento X11 e QEMU + KVM.
Requisitos
- É necessário no mínimo 20 GB de espaço em disco.
- É necessário ativar a virtualização nas configurações da BIOS.
- É necessário um host KVM x86_64.
TODO
- Documentação para pesquisa de segurança.
- Suporte a aceleração por GPU.
- Suporte a virt-manager.
Imagem Docker
- É possível baixar a imagem Docker-OSX no Docker Hub.
Suporte a Kubernetes
- O Docker-OSX oferece suporte a Kubernetes.
- O Helm Chart e a documentação do Kubernetes podem ser consultados no diretório
helm.
Suporte
- Perguntas pequenas ou problemas podem ser enviados pelas issues do GitHub.
- Serviços de suporte profissional também são oferecidos.
Licença e contribuições
- O Docker-OSX segue a licença GPL v3+.
- Contribuições são bem-vindas, e a lista de contribuidores pode ser consultada no GitHub.
Projetos semelhantes
- Dock Droid: executa Android em um contêiner Docker.
- Docker-eyeOS: executa iOS 12 em um contêiner Docker.
- Bluebubbles.app: executa um relay de iMessage no Docker.
Isenção de responsabilidade
- Se você tem interesse em pesquisa de segurança da Apple, este projeto pode ser útil.
- Questões legais relacionadas a Hackintosh, OSX-KVM e Docker-OSX são de responsabilidade de cada um.
Resumo do GN⁺
- Docker-OSX é uma ferramenta útil que permite executar macOS em um contêiner Docker.
- Suporta várias versões do macOS e é útil para pesquisa de segurança e desenvolvimento.
- Tem suporte ativo da comunidade e oferece várias opções de instalação e otimização.
- Projetos com funcionalidades semelhantes incluem Dock Droid e Docker-eyeOS.
1 comentários
Comentários do Hacker News
Para aceleração por GPU, é necessário usar uma dGPU compatível (AMD RX 6xxx ou superior) via PCI passthrough
Projetos relacionados:
Em uma entrevista com Sick Codes, foi discutida a abordagem para este produto
Seria legal rodar a sincronização do iCloud em um home server
Este projeto atualmente oferece apenas imagens Docker x86-64, não aarch64
Quero tentar fazer builds de iOS
O QEMU roda em um contêiner, e o macOS roda dentro dele
Fico me perguntando se redistribuir imagens do macOS é permitido pela licença
Fico me perguntando se o progresso vai parar quando sair uma versão mais recente do macOS sem suporte a Intel
Não gosto do uso incorreto do termo "USB passthrough"