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
Ý 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
Các dự án liên quan:
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
Chạy đồng bộ hóa iCloud trên máy chủ gia đình nghe có vẻ rất hay
Dự án này hiện chỉ cung cấp image Docker x86-64, không có aarch64
Muốn thử build iOS
QEMU chạy trong container, và macOS chạy bên trong đó
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ò 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
Không thích việc thuật ngữ "USB passthrough" bị dùng sai