Docker-OSX
แนะนำ Docker-OSX
- Docker-OSX เป็นโปรเจ็กต์ที่ช่วยให้สามารถรัน macOS ภายในคอนเทนเนอร์ Docker ได้
- รองรับฟีเจอร์ต่าง ๆ เช่น X11 forwarding, งานวิจัยด้านความปลอดภัยของ iMessage และการใช้งาน iPhone ผ่าน USB
- สามารถใช้ทำวิจัยด้านความปลอดภัยของ macOS ได้บน Linux และ Windows
ชุมชนและการสนับสนุน
- Docker-OSX มีเซิร์ฟเวอร์ Discord และ Telegram ให้ใช้งาน
- มีชุมชนที่เคลื่อนไหว активно สำหรับแบ่งปันคำถามหรือไอเดีย
- สามารถติดต่อสอบถามเป็นการส่วนตัวได้ผ่าน LinkedIn หรือเว็บไซต์ Sick.Codes
ผู้เขียนและผู้มีส่วนร่วม
- โปรเจ็กต์นี้ดูแลโดย Sick.Codes
- สามารถดูรายชื่อผู้มีส่วนร่วมเพิ่มเติมได้บน GitHub
- ขอขอบคุณโปรเจ็กต์ OSX-KVM และ KVM-OpenCore
คู่มือเริ่มต้นอย่างรวดเร็ว
- มีวิดีโอสอนการติดตั้งให้ใช้งาน
- ผู้ใช้ Windows ควรตรวจสอบหมายเหตุเพิ่มเติม
- รองรับ macOS หลายเวอร์ชัน เช่น Catalina, Big Sur, Monterey, Ventura และ 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 ล่วงหน้า
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
ระบบรุ่นเก่า
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
ดาวน์โหลดและใช้อิมเมจด้วยตนเอง
- หาก CDN ของ Docker ช้า สามารถดาวน์โหลดอิมเมจมาใช้เองได้ด้วยตนเอง
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
- บนเดสก์ท็อปพีซีสามารถทำตามคำแนะนำของ @Silfalion ได้
- บนแล็ปท็อปสามารถใช้ usbfluxd เพื่อทำ passthrough แบบเครือข่ายได้
การปรับแต่งประสิทธิภาพ
- สามารถใช้ osx-optimizer เพื่อเพิ่มประสิทธิภาพได้
- มีตัวเลือกปรับแต่งหลายแบบ เช่น ข้ามหน้าจอเข้าสู่ระบบแบบ GUI และปิดการทำดัชนี Spotlight
เพิ่มพื้นที่ดิสก์
- สามารถย้าย /var/lib/docker ไปยังไดรฟ์ภายนอกเพื่อเพิ่มพื้นที่ดิสก์ได้
- ดูบทสอนแบบละเอียดได้บนเว็บไซต์ Sick.Codes
รายละเอียดทางเทคนิค
- รองรับ macOS หลายเวอร์ชัน: High Sierra, Mojave, Catalina, Big Sur, Monterey, Ventura, Sonoma
- รองรับ iPhone OSX KVM, การแชร์โฟลเดอร์, USB passthrough, SSH และ VNC
- รันบนพื้นฐานของ X11 forwarding และ QEMU + KVM
ข้อกำหนด
- ต้องมีพื้นที่ดิสก์อย่างน้อย 20GB
- ต้องเปิดใช้งาน virtualization ในการตั้งค่า BIOS
- ต้องใช้โฮสต์ x86_64 KVM
TODO
- เอกสารสำหรับงานวิจัยด้านความปลอดภัย
- รองรับ GPU acceleration
- รองรับ virt-manager
Docker image
- สามารถดาวน์โหลดอิมเมจ Docker-OSX ได้จาก Docker Hub
รองรับ Kubernetes
- Docker-OSX รองรับ Kubernetes
- สามารถดู Kubernetes Helm Chart และเอกสารได้ในไดเรกทอรี helm
การสนับสนุน
- คำถามเล็กน้อยหรือปัญหาต่าง ๆ สามารถสอบถามผ่าน GitHub Issues ได้
- มีบริการสนับสนุนแบบมืออาชีพให้ด้วย
ไลเซนส์และการมีส่วนร่วม
- Docker-OSX ใช้ไลเซนส์ GPL v3+
- ยินดีต้อนรับการมีส่วนร่วม และสามารถดูรายชื่อผู้มีส่วนร่วมได้บน GitHub
โปรเจ็กต์ที่คล้ายกัน
- Dock Droid: รัน Android ในคอนเทนเนอร์ Docker
- Docker-eyeOS: รัน iOS 12 ในคอนเทนเนอร์ Docker
- Bluebubbles.app: รัน iMessage relayer บน Docker
ข้อสงวนสิทธิ์
- หากคุณสนใจงานวิจัยด้านความปลอดภัยของ Apple โปรเจ็กต์นี้น่าจะมีประโยชน์
- ประเด็นทางกฎหมายของ Hackintosh, OSX-KVM และ Docker-OSX เป็นความรับผิดชอบของผู้ใช้แต่ละคน
สรุปโดย GN⁺
- Docker-OSX เป็นเครื่องมือที่มีประโยชน์สำหรับการรัน macOS ในคอนเทนเนอร์ Docker
- รองรับ macOS หลายเวอร์ชัน และเหมาะสำหรับงานวิจัยด้านความปลอดภัยและการพัฒนา
- มีชุมชนที่ให้การสนับสนุนอย่างคึกคัก พร้อมตัวเลือกการติดตั้งและการปรับแต่งที่หลากหลาย
- โปรเจ็กต์ที่มีฟังก์ชันคล้ายกัน ได้แก่ Dock Droid และ Docker-eyeOS
1 ความคิดเห็น
ความคิดเห็นจาก Hacker News
สำหรับการเร่งความเร็วด้วย GPU จำเป็นต้องใช้ dGPU ที่รองรับผ่าน PCI passthrough (AMD RX 6xxx ขึ้นไป)
โครงการที่เกี่ยวข้อง:
ในการสัมภาษณ์กับ Sick Codes มีการพูดคุยถึงแนวทางของผลิตภัณฑ์นี้
น่าจะดีถ้าสามารถรันการซิงก์ iCloud บนโฮมเซิร์ฟเวอร์ได้
ตอนนี้โครงการนี้มีเฉพาะอิมเมจ Docker สำหรับ x86-64 เท่านั้น ยังไม่มี aarch64
อยากลองทำ iOS build ดู
QEMU รันอยู่ในคอนเทนเนอร์ และภายในนั้นก็รัน macOS
สงสัยว่าการแจกจ่ายอิมเมจ MacOS ซ้ำได้รับอนุญาตตามไลเซนส์หรือไม่
สงสัยว่าเมื่อมี MacOS เวอร์ชันใหม่ที่ไม่รองรับ Intel ออกมาแล้ว ความคืบหน้าจะหยุดลงหรือไม่
ไม่ชอบที่มีการใช้คำว่า "USB passthrough" แบบผิดความหมาย