3 ポイント 投稿者 GN⁺ 2024-08-01 | 1件のコメント | WhatsAppで共有

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件のコメント

 
GN⁺ 2024-08-01
Hacker Newsの意見
  • GPUアクセラレーションには、PCIパススルー経由でサポートされるdGPU(AMD RX 6xxx以降)を使用する必要がある

    • Intel iGPUはComet Lakeおよび一部のIce Lakeまでは動作するが、最新バージョンでは動作しない
    • Apple SiliconビルドのmacOSは、当面エミュレーション不可能と思われる
    • Intel VT-xがAMDにはないため、AMDホストでは仮想化できない
    • 古いVirtualBoxバージョンで、エミュレーションを通じてDockerを動かす方法がある
  • 関連プロジェクト:

    • Docker-OSX: DockerでmacOS VMを実行
    • macOS in QEMU in Docker: QEMUでmacOSを実行
  • Sick Codesとのインタビューで、この製品へのアプローチについて議論している

    • OSX-PROXMOX: Proxmoxホームサーバーで同様の機能を提供するプロジェクト
    • HP Z420 Xeonで使用中で、GPUパススルーと併用して非常に安定している
  • ホームサーバーでiCloud同期を実行できたらすばらしいと思う

    • 現在、iCloudをホームサーバー/NASに物理的にバックアップする良い方法がない
  • このプロジェクトは現在x86-64 Dockerイメージのみを提供しており、aarch64は提供していない

  • iOSビルドを試してみたい

    • Unity、React Nativeなどを使ってビルドの可能性を探ってみたい
    • ビルド時間が5倍かかっても、自由度の面で魅力的だと思う
  • QEMUがコンテナ内で動作し、その中でmacOSが動作する

    • セットアップが非常に簡単で、手動設定の手順がない
    • macOS EULAに明確に違反している可能性がある
    • AppleソフトウェアはAppleブランドのコンピュータでのみ実行できる
    • プロジェクトをダウンロードして保存しておくことを勧める。法的警告を受ける可能性があるため
  • macOSイメージの再配布がライセンス上許可されているのか気になる

    • このプロジェクトがDocker Hubで違法コピーを配布しているのではないかと疑問に思う
  • Intel非対応の最新macOSバージョンがリリースされたら進行が止まるのか気になる

    • このコンテナ内でDockerを実行して、macOSの中でmacOSを動かせるのか気になる
  • 「USBパススルー」という用語が誤用されるのが嫌いだ

    • 実際には「USB over ethernet proxy」が使われている
    • これは一般的なパススルーにはない複数の欠点をもたらす