Docker-OSX
Docker-OSX’e giriş
- Docker-OSX, Docker konteyneri içinde macOS çalıştırmayı mümkün kılan bir projedir.
- X11 forwarding, iMessage güvenlik araştırması, iPhone USB çalıştırma gibi çeşitli özellikler sunar.
- Linux ve Windows üzerinde macOS güvenlik araştırması yapılabilir.
Topluluk ve destek
- Docker-OSX, Discord ve Telegram sunucuları işletmektedir.
- Soruların veya fikirlerin paylaşılabileceği aktif bir topluluk vardır.
- Kişisel iletişim için LinkedIn veya Sick.Codes web sitesi kullanılabilir.
Yazar ve katkıda bulunanlar
- Bu projenin bakımı Sick.Codes tarafından yapılmaktadır.
- Ek katkıda bulunanların listesi GitHub’da görülebilir.
- OSX-KVM ve KVM-OpenCore projelerine teşekkür edilmektedir.
Hızlı başlangıç kılavuzu
- Video kurulum öğreticisi sunulmaktadır.
- Windows kullanıcıları ek notları kontrol etmelidir.
- Catalina, Big Sur, Monterey, Ventura, Sonoma gibi çeşitli macOS sürümleri desteklenmektedir.
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
Önceden kurulmuş Catalina
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
Eski sistemler
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
İmajı elle indirip kullanma
- Docker’ın CDN’i yavaşsa imaj elle indirilip kullanılabilir.
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
- iPhone USB passthrough için çeşitli yöntemler sunulmaktadır.
- Masaüstü PC’lerde @Silfalion’ın yönergeleri izlenebilir.
- Dizüstü bilgisayarlarda usbfluxd kullanılarak ağ tarzı passthrough yapılabilir.
Performans optimizasyonu
- osx-optimizer kullanılarak performans artırılabilir.
- GUI giriş ekranını atlama, Spotlight indekslemeyi devre dışı bırakma gibi çeşitli optimizasyon seçenekleri sunulmaktadır.
Disk alanını artırma
- Disk alanı açmak için /var/lib/docker harici bir sürücüye taşınabilir.
- Ayrıntılı öğretici Sick.Codes web sitesinde bulunabilir.
Teknik ayrıntılar
- Çeşitli macOS sürümleri desteklenmektedir: High Sierra, Mojave, Catalina, Big Sur, Monterey, Ventura, Sonoma.
- iPhone OSX KVM, klasör paylaşımı, USB passthrough, SSH ve VNC desteği sunulmaktadır.
- X11 forwarding ile QEMU + KVM tabanlı çalıştırma sağlanmaktadır.
Gereksinimler
- En az 20GB disk alanı gereklidir.
- BIOS ayarlarında sanallaştırmanın etkinleştirilmesi gerekir.
- x86_64 KVM host gereklidir.
TODO
- Güvenlik araştırması için dokümantasyon.
- GPU hızlandırma desteği.
- virt-manager desteği.
Docker imajları
- Docker-OSX imajları Docker Hub’dan indirilebilir.
Kubernetes desteği
- Docker-OSX, Kubernetes’i desteklemektedir.
- Kubernetes Helm Chart ve dokümantasyon
helm dizininde görülebilir.
Destek
- Küçük sorular veya sorunlar GitHub issue’ları üzerinden iletilebilir.
- Profesyonel destek hizmeti de sunulmaktadır.
Lisans ve katkı
- Docker-OSX, GPL v3+ lisansı ile sunulmaktadır.
- Katkılar memnuniyetle karşılanır; katkıda bulunanların listesi GitHub’da görülebilir.
Benzer projeler
- Dock Droid: Docker konteynerinde Android çalıştırma.
- Docker-eyeOS: Docker konteynerinde iOS 12 çalıştırma.
- Bluebubbles.app: Docker’da iMessage relay çalıştırma.
Sorumluluk reddi
- Apple güvenlik araştırmasıyla ilgileniyorsanız bu proje faydalı olabilir.
- Hackintosh, OSX-KVM ve Docker-OSX’in hukuki meseleleri herkesin kendi sorumluluğundadır.
GN⁺ özeti
- Docker-OSX, Docker konteyneri içinde macOS çalıştırmayı mümkün kılan kullanışlı bir araçtır.
- Çeşitli macOS sürümlerini destekler ve güvenlik araştırması ile geliştirme için faydalıdır.
- Topluluk desteği aktiftir ve çeşitli kurulum ile optimizasyon seçenekleri sunar.
- Benzer işlevlere sahip projeler arasında Dock Droid ve Docker-eyeOS bulunur.
1 yorum
Hacker News görüşleri
GPU hızlandırması için PCI passthrough üzerinden desteklenen bir dGPU (AMD RX 6xxx ve üzeri) kullanmak gerekiyor
İlgili projeler:
Sick Codes ile yapılan bir röportajda bu ürüne yaklaşım tartışılıyor
Ev sunucusunda iCloud senkronizasyonu çalıştırmak güzel olurdu
Bu proje şu anda yalnızca x86-64 Docker image’ları sunuyor, aarch64 sunmuyor
iOS build denemek istiyorum
QEMU bir container içinde çalışıyor ve onun içinde macOS çalışıyor
macOS image’larının yeniden dağıtımına lisansın izin verip vermediğini merak ediyorum
Intel desteği olmayan yeni bir macOS sürümü çıktığında ilerleme durur mu diye merak ediyorum
"USB passthrough" teriminin yanlış kullanılmasından hoşlanmıyorum