3 คะแนน โดย GN⁺ 2024-08-01 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

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 ความคิดเห็น

 
GN⁺ 2024-08-01
ความคิดเห็นจาก Hacker News
  • สำหรับการเร่งความเร็วด้วย GPU จำเป็นต้องใช้ dGPU ที่รองรับผ่าน PCI passthrough (AMD RX 6xxx ขึ้นไป)

    • Intel iGPU ใช้งานได้ถึง Comet Lake และ Ice Lake บางรุ่น แต่เวอร์ชันใหม่กว่านั้นใช้งานไม่ได้
    • ดูเหมือนว่า macOS บิลด์สำหรับ Apple Silicon จะยังไม่สามารถจำลองได้ไปอีกระยะหนึ่ง
    • ไม่สามารถทำ virtualization บนโฮสต์ AMD ได้ เพราะ AMD ไม่มี Intel VT-x
    • มีวิธีทำให้ Docker ทำงานผ่านการจำลองด้วย VirtualBox เวอร์ชันเก่า
  • โครงการที่เกี่ยวข้อง:

    • Docker-OSX: รัน macOS VM บน Docker
    • macOS in QEMU in Docker: รัน macOS บน QEMU
  • ในการสัมภาษณ์กับ Sick Codes มีการพูดคุยถึงแนวทางของผลิตภัณฑ์นี้

    • OSX-PROXMOX: โครงการที่ให้ความสามารถคล้ายกันบนโฮมเซิร์ฟเวอร์ Proxmox
    • ใช้งานอยู่บน HP Z420 Xeon และเสถียรมากเมื่อใช้ร่วมกับ GPU passthrough
  • น่าจะดีถ้าสามารถรันการซิงก์ iCloud บนโฮมเซิร์ฟเวอร์ได้

    • ตอนนี้ยังไม่มีวิธีที่ดีในการแบ็กอัพ iCloud ลงโฮมเซิร์ฟเวอร์/NAS แบบกายภาพ
  • ตอนนี้โครงการนี้มีเฉพาะอิมเมจ Docker สำหรับ x86-64 เท่านั้น ยังไม่มี aarch64

  • อยากลองทำ iOS build ดู

    • อยากสำรวจความเป็นไปได้ในการ build ด้วย Unity, React Native ฯลฯ
    • ต่อให้ใช้เวลาบิลด์นานขึ้น 5 เท่า ก็ยังดูน่าสนใจในแง่ของอิสระ
  • QEMU รันอยู่ในคอนเทนเนอร์ และภายในนั้นก็รัน macOS

    • ติดตั้งได้ง่ายมาก และไม่มีขั้นตอนตั้งค่าด้วยตนเอง
    • มีความเป็นไปได้สูงว่าจะละเมิด macOS EULA อย่างชัดเจน
    • ซอฟต์แวร์ของ Apple สามารถรันได้บนคอมพิวเตอร์แบรนด์ Apple เท่านั้น
    • แนะนำให้ดาวน์โหลดโครงการนี้มาเก็บไว้ เพราะอาจได้รับคำเตือนทางกฎหมาย
  • สงสัยว่าการแจกจ่ายอิมเมจ MacOS ซ้ำได้รับอนุญาตตามไลเซนส์หรือไม่

    • สงสัยว่าโครงการนี้กำลังแจกจ่ายสำเนาที่ผิดกฎหมายบน Docker Hub หรือไม่
  • สงสัยว่าเมื่อมี MacOS เวอร์ชันใหม่ที่ไม่รองรับ Intel ออกมาแล้ว ความคืบหน้าจะหยุดลงหรือไม่

    • สงสัยว่าสามารถรัน Docker ภายในคอนเทนเนอร์นี้เพื่อรัน MacOS ซ้อนใน MacOS ได้หรือไม่
  • ไม่ชอบที่มีการใช้คำว่า "USB passthrough" แบบผิดความหมาย

    • ที่ใช้จริงคือ "USB over ethernet proxy"
    • สิ่งนี้ทำให้เกิดข้อเสียหลายอย่างที่ passthrough แบบทั่วไปไม่มี