Docker-OSX
Docker-OSXの紹介
- Docker-OSXは、Dockerコンテナ内でmacOSを実行できるようにするプロジェクト。
- X11フォワーディング、iMessageのセキュリティ研究、iPhone USB動作など、さまざまな機能を提供。
- LinuxとWindowsでmacOSのセキュリティ研究を行える。
コミュニティとサポート
- Docker-OSXはDiscordとTelegramサーバーを運営中。
- 質問やアイデアを共有できる活発なコミュニティがある。
- 個別の問い合わせはLinkedInまたはSick.CodesのWebサイト経由で可能。
作者と貢献者
- このプロジェクトはSick.Codesがメンテナンスしている。
- 追加の貢献者一覧はGitHubで確認可能。
- OSX-KVMとKVM-OpenCoreプロジェクトに謝意を表している。
クイックスタートガイド
- 動画インストールチュートリアルを提供。
- Windowsユーザーは追加ノートを確認すること。
- Catalina、Big Sur、Monterey、Ventura、Sonomaなど、さまざまなmacOSバージョンをサポート。
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
イメージを手動でダウンロードして使用
- DockerのCDNが遅い場合は、イメージを手動でダウンロードして使用できる。
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パススルー
- iPhone USBパススルーのためのさまざまな方法を提供。
- デスクトップPCでは@Silfalionの手順に従える。
- ノートPCではusbfluxdを使ってネットワークスタイルのパススルーが可能。
パフォーマンス最適化
- osx-optimizerを使ってパフォーマンスを向上できる。
- GUIログイン画面のスキップ、Spotlightインデックスの無効化など、さまざまな最適化オプションを提供。
ディスク容量の拡張
- /var/lib/dockerを外付けドライブへ移動してディスク容量を確保できる。
- 詳細なチュートリアルはSick.CodesのWebサイトで確認可能。
技術的詳細
- 対応するmacOSバージョン: High Sierra、Mojave、Catalina、Big Sur、Monterey、Ventura、Sonoma。
- iPhone OSX KVM、フォルダ共有、USBパススルー、SSHおよびVNCをサポート。
- X11フォワーディングおよびQEMU + KVMベースで動作。
要件
- 最低20GB以上のディスク容量が必要。
- BIOS設定で仮想化を有効化する必要がある。
- x86_64 KVMホストが必要。
TODO
- セキュリティ研究向けのドキュメント整備。
- GPUアクセラレーション対応。
- virt-manager対応。
Dockerイメージ
- Docker HubからDocker-OSXイメージをダウンロードできる。
Kubernetes対応
- Docker-OSXはKubernetesをサポート。
- Kubernetes Helm Chartとドキュメントは
helmディレクトリで確認可能。
サポート
- 小さな質問や問題はGitHub Issues経由で問い合わせ可能。
- 専門的なサポートサービスも提供している。
ライセンスと貢献
- Docker-OSXはGPL v3+ライセンスに従う。
- 貢献を歓迎しており、貢献者一覧はGitHubで確認可能。
類似プロジェクト
- Dock Droid: DockerコンテナでAndroidを実行。
- Docker-eyeOS: DockerコンテナでiOS 12を実行。
- Bluebubbles.app: DockerでiMessageリレイヤーを実行。
免責事項
- Appleのセキュリティ研究に関心があるなら、このプロジェクトは有用。
- Hackintosh、OSX-KVM、Docker-OSXの法的問題は各自の責任。
GN⁺のまとめ
- Docker-OSXは、Dockerコンテナ内でmacOSを実行できる便利なツール。
- さまざまなmacOSバージョンをサポートし、セキュリティ研究や開発に役立つ。
- コミュニティサポートが活発で、多様なインストールおよび最適化オプションを提供。
- 類似機能を持つプロジェクトとしてDock DroidとDocker-eyeOSがある。
1件のコメント
Hacker Newsの意見
GPUアクセラレーションには、PCIパススルー経由でサポートされるdGPU(AMD RX 6xxx以降)を使用する必要がある
関連プロジェクト:
Sick Codesとのインタビューで、この製品へのアプローチについて議論している
ホームサーバーでiCloud同期を実行できたらすばらしいと思う
このプロジェクトは現在x86-64 Dockerイメージのみを提供しており、aarch64は提供していない
iOSビルドを試してみたい
QEMUがコンテナ内で動作し、その中でmacOSが動作する
macOSイメージの再配布がライセンス上許可されているのか気になる
Intel非対応の最新macOSバージョンがリリースされたら進行が止まるのか気になる
「USBパススルー」という用語が誤用されるのが嫌いだ