3 điểm bởi GN⁺ 2024-08-01 | 1 bình luận | Chia sẻ qua WhatsApp

Docker-OSX

Giới thiệu về Docker-OSX

  • Docker-OSX là một dự án cho phép chạy macOS trong container Docker.
  • Cung cấp nhiều tính năng như chuyển tiếp X11, nghiên cứu bảo mật iMessage, vận hành USB iPhone, v.v.
  • Có thể thực hiện nghiên cứu bảo mật macOS trên Linux và Windows.

Cộng đồng và hỗ trợ

  • Docker-OSX đang vận hành máy chủ Discord và Telegram.
  • Có một cộng đồng sôi động để chia sẻ câu hỏi và ý tưởng.
  • Có thể liên hệ cá nhân qua LinkedIn hoặc trang web Sick.Codes.

Tác giả và cộng tác viên

  • Dự án này được Sick.Codes duy trì.
  • Có thể xem danh sách cộng tác viên bổ sung trên GitHub.
  • Gửi lời cảm ơn tới các dự án OSX-KVM và KVM-OpenCore.

Hướng dẫn bắt đầu nhanh

  • Có cung cấp video hướng dẫn cài đặt.
  • Người dùng Windows nên xem các ghi chú bổ sung.
  • Hỗ trợ nhiều phiên bản macOS như 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 cài sẵn

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

Hệ thống cũ

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

Tải xuống và sử dụng image thủ công

  • Nếu CDN của Docker chậm, có thể tải image xuống thủ công để sử dụng.
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

USB passthrough cho iPhone

  • Cung cấp nhiều phương thức cho USB passthrough của iPhone.
  • Trên PC desktop, có thể làm theo hướng dẫn của @Silfalion.
  • Trên laptop, có thể dùng usbfluxd để passthrough theo kiểu mạng.

Tối ưu hiệu năng

  • Có thể cải thiện hiệu năng bằng osx-optimizer.
  • Cung cấp nhiều tùy chọn tối ưu như bỏ qua màn hình đăng nhập GUI, vô hiệu hóa lập chỉ mục Spotlight, v.v.

Tăng dung lượng đĩa

  • Có thể chuyển /var/lib/docker sang ổ đĩa ngoài để giải phóng dung lượng.
  • Có thể xem hướng dẫn chi tiết trên trang web của Sick.Codes.

Chi tiết kỹ thuật

  • Hỗ trợ nhiều phiên bản macOS: High Sierra, Mojave, Catalina, Big Sur, Monterey, Ventura, Sonoma.
  • Hỗ trợ iPhone OSX KVM, chia sẻ thư mục, USB passthrough, SSH và VNC.
  • Chạy dựa trên X11 forwarding và QEMU + KVM.

Yêu cầu

  • Cần tối thiểu 20GB dung lượng đĩa.
  • Cần bật ảo hóa trong thiết lập BIOS.
  • Cần host KVM x86_64.

TODO

  • Tài liệu hóa cho nghiên cứu bảo mật.
  • Hỗ trợ tăng tốc GPU.
  • Hỗ trợ virt-manager.

Docker image

  • Có thể tải Docker-OSX image từ Docker Hub.

Hỗ trợ Kubernetes

  • Docker-OSX hỗ trợ Kubernetes.
  • Có thể xem Helm Chart và tài liệu Kubernetes trong thư mục helm.

Hỗ trợ

  • Có thể hỏi các câu hỏi nhỏ hoặc báo cáo vấn đề qua GitHub Issues.
  • Cũng cung cấp dịch vụ hỗ trợ chuyên nghiệp.

Giấy phép và đóng góp

  • Docker-OSX tuân theo giấy phép GPL v3+.
  • Hoan nghênh đóng góp, và có thể xem danh sách cộng tác viên trên GitHub.

Dự án tương tự

  • Dock Droid: chạy Android trong container Docker.
  • Docker-eyeOS: chạy iOS 12 trong container Docker.
  • Bluebubbles.app: chạy iMessage relayer trong Docker.

Tuyên bố miễn trừ trách nhiệm

  • Nếu bạn quan tâm đến nghiên cứu bảo mật Apple thì dự án này sẽ hữu ích.
  • Các vấn đề pháp lý liên quan đến Hackintosh, OSX-KVM và Docker-OSX là trách nhiệm của mỗi bên.

Tóm tắt của GN⁺

  • Docker-OSX là một công cụ hữu ích cho phép chạy macOS trong container Docker.
  • Hỗ trợ nhiều phiên bản macOS và hữu ích cho nghiên cứu bảo mật cũng như phát triển.
  • Có hỗ trợ cộng đồng tích cực và cung cấp nhiều tùy chọn cài đặt cũng như tối ưu hóa.
  • Các dự án có chức năng tương tự gồm Dock Droid và Docker-eyeOS.

1 bình luận

 
GN⁺ 2024-08-01
Ý kiến trên Hacker News
  • Để tăng tốc GPU, cần dùng dGPU được hỗ trợ (AMD RX 6xxx trở lên) thông qua PCI passthrough

    • Intel iGPU hoạt động đến Comet Lake và một phần Ice Lake, nhưng các phiên bản mới hơn thì không
    • Có vẻ như macOS bản dựng cho Apple Silicon sẽ chưa thể được giả lập trong thời gian tới
    • Không thể ảo hóa trên host AMD vì AMD không có Intel VT-x
    • Có cách làm cho Docker chạy qua giả lập bằng các phiên bản VirtualBox cũ
  • Các dự án liên quan:

    • Docker-OSX: chạy macOS VM trong Docker
    • macOS in QEMU in Docker: chạy macOS trong QEMU
  • Trong một cuộc phỏng vấn với Sick Codes, họ đã thảo luận về cách tiếp cận đối với sản phẩm này

    • OSX-PROXMOX: dự án cung cấp chức năng tương tự trên máy chủ gia đình Proxmox
    • Đang dùng trên HP Z420 Xeon và rất ổn định khi kết hợp với GPU passthrough
  • Chạy đồng bộ hóa iCloud trên máy chủ gia đình nghe có vẻ rất hay

    • Hiện chưa có cách tốt để sao lưu vật lý iCloud sang máy chủ gia đình/NAS
  • Dự án này hiện chỉ cung cấp image Docker x86-64, không có aarch64

  • Muốn thử build iOS

    • Muốn khám phá khả năng build bằng Unity, React Native, v.v.
    • Dù thời gian build có lâu hơn 5 lần thì xét về mặt tự do vẫn thấy rất tuyệt
  • QEMU chạy trong container, và macOS chạy bên trong đó

    • Việc cài đặt rất đơn giản và không có bước cấu hình thủ công
    • Có khả năng vi phạm rõ ràng macOS EULA
    • Phần mềm Apple chỉ được phép chạy trên máy tính mang thương hiệu Apple
    • Khuyên nên tải dự án về và lưu trữ lại, vì có thể sẽ nhận cảnh báo pháp lý
  • Tò mò không biết việc phân phối lại image macOS có được giấy phép cho phép hay không

    • Tự hỏi liệu dự án này có đang phát tán các bản sao bất hợp pháp trên Docker Hub hay không
  • Tò mò không biết tiến độ sẽ bị chặn lại khi có phiên bản macOS mới không còn hỗ trợ Intel hay không

    • Tò mò liệu có thể chạy Docker trong container này để chạy macOS bên trong macOS hay không
  • Không thích việc thuật ngữ "USB passthrough" bị dùng sai

    • Thực tế đang dùng "USB over ethernet proxy"
    • Điều này dẫn đến nhiều nhược điểm mà passthrough thông thường không có