在 Docker 中运行 macOS:完全指南

admin 2024年10月23日17:39:31评论336 views字数 3700阅读12分20秒阅读模式
在 Docker 中运行 macOS:完全指南

欢迎访问我们的网站和关注我们的公众号,获取最新的免费资源、安全知识、信息流。                  

网站https://hackerchi.top                                         

公众号:黑客驰

在这篇文章中,我们将探讨如何使用 Docker-OSX 在 Docker 容器中运行 macOS。Docker-OSX 是一个让 macOS 运行在 Docker 容器中的项目,支持 X11 转发、iMessage 安全研究、iPhone USB 传输等功能。它允许开发者和安全研究人员在 macOS 环境中进行开发和测试,且无需物理 macOS 设备。本文将带你深入了解如何快速启动和运行 Docker-OSX,解决一些常见问题,并介绍相关的高级功能。

1. Docker-OSX 简介

Docker-OSX 是由 Sick.Codes 维护的开源项目,它基于 QEMU 和 KVM 技术,支持在 Docker 容器中运行 macOS。你可以在 macOS 上进行开发、测试应用程序,甚至进行安全研究。Docker-OSX 支持多种 macOS 版本,从 High Sierra(10.13)到最新的 Sonoma(14)。

项目特点

  • X11 转发:支持在 Linux 和 Windows 上通过 X11 显示 macOS 界面。

  • iMessage 安全研究:支持在 macOS VM 中进行 iMessage 和 iCloud 的安全研究。

  • iPhone USB 传输支持:可以通过 USB 传输将 iPhone 连接到 Docker 中的 macOS。

  • CI/CD 集成:适用于 macOS 的持续集成和持续部署(CI/CD)工作流。

  • 支持多版本 macOS:包括 Catalina、Big Sur、Monterey、Ventura 和 Sonoma 等。

在 Docker 中运行 macOS:完全指南
在 Docker 中运行 macOS:完全指南
在 Docker 中运行 macOS:完全指南

2. 快速启动 Docker-OSX

2.1 基本环境要求

  • 虚拟化支持:确保你的 CPU 支持 KVM,并在 BIOS 中启用虚拟化技术(Intel VT-x 或 AMD-V)。

  • 磁盘空间:至少需要 20GB 的磁盘空间,建议预留 50GB 以应对 macOS 和 Xcode 的需求。

2.2 安装依赖

根据你的操作系统,首先安装必要的依赖项。

Arch Linux:

sudo pacman -S qemu libvirt dnsmasq virt-manager bridge-utils flex bison iptables-nft edk2-ovmf

Ubuntu / Debian:

sudo apt install qemu qemu-kvm libvirt-clients libvirt-daemon-system bridge-utils virt-manager libguestfs-tools

CentOS / RHEL / Fedora:

sudo yum install libvirt qemu-kvm

安装完成后,启用 libvirt 并加载 KVM 内核模块:

sudo systemctl enable --now libvirtd
sudo systemctl enable --now virtlogd
echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs
sudo modprobe kvm

2.3 运行 Docker-OSX 容器

Docker-OSX 提供了多个预构建的 macOS 镜像,下面以 Big Sur 为例启动容器:

docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-v /tmp/.X11-unix:/tmp/.X11-unix \
-e "DISPLAY=${DISPLAY:-:0.0}" \
-e SHORTNAME=big-sur \
sickcodes/docker-osx:latest

2.4 运行预装的 Catalina 系统

如果你希望直接运行预装的 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

默认的用户名和密码分别是 useralpine

3. 高级功能

3.1 USB 传输和 iPhone 支持

Docker-OSX 支持 USB 传输功能,允许你将 iPhone 或 iPad 连接到虚拟机上。你可以使用 usbfluxd 来实现 USB 设备在 macOS 虚拟机中的识别。

设置 USB 传输

首先,确保在宿主机上安装 usbmuxdsocatusbfluxd

sudo pacman -S libusbmuxd usbmuxd avahi socat

启动 usbmuxdusbfluxd

sudo systemctl start usbmuxd
sudo avahi-daemon
sudo socat tcp-listen:5000,fork unix-connect:/var/run/usbmuxd
sudo usbfluxd -f -n

然后,在 macOS 虚拟机中安装 usbfluxd 并启动 USB 传输:

brew install make automake autoconf libtool pkg-config gcc libimobiledevice usbmuxd
git clone <https://github.com/corellium/usbfluxd.git>
cd usbfluxd
./autogen.sh
make
sudo make install
sudo usbfluxd -f -r 172.17.0.1:5000

这样,macOS 系统中的应用(如 Xcode)将可以识别你的 iPhone 或 iPad 设备。

3.2 生成 macOS 序列号

Docker-OSX 集成了 osx-serial-generator,可以帮助你生成 macOS 序列号、UUID 和主板序列号。这对于 iMessage 和 iCloud 的使用十分重要。

生成唯一的序列号

你可以在启动容器时自动生成序列号:

docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-e GENERATE_UNIQUE=true \
-e SHORTNAME=big-sur \
sickcodes/docker-osx:latest

使用特定的序列号

如果你已经有特定的序列号,可以使用以下命令:

docker run -it \
--device /dev/kvm \
-p 50922:10022 \
-e GENERATE_SPECIFIC=true \
-e DEVICE_MODEL="iMacPro1,1" \
-e SERIAL="C02TW0WAHX87" \
-e BOARD_SERIAL="C027251024NJG36UE" \
-e UUID="5CCB366D-9118-4C61-A00A-E5BAF3BED451" \
sickcodes/docker-osx:latest

4. 常见问题与解决方法

4.1 Docker 未运行

如果遇到 docker: unknown server OS: . 错误,说明 Docker 守护进程未启动。可以通过以下命令启动 Docker:

sudo dockerd

或者:

sudo systemctl --start dockerd

4.2 权限问题

如果启动时遇到权限相关的错误,请确保你的用户属于 Docker、KVM 和 libvirt 组:

sudo usermod -aG docker "${USER}"
sudo usermod -aG kvm "${USER}"
sudo usermod -aG libvirt "${USER}"

4.3 内存不足

如果分配的内存比主机上可用的内存多,可能会出现内存分配错误。可以通过清理缓存来释放内存:

sudo tee /proc/sys/vm/drop_caches <<< 3

5. 总结

Docker-OSX 是一个强大的工具,允许你在 Docker 容器中运行 macOS,并且支持多种高级功能,如 USB 传输、序列号生成和 CI/CD 集成等。无论你是开发者、测试人员还是安全研究人员,Docker-OSX 都能为你提供一个高效的 macOS 虚拟化解决方案。

如果你想了解更多信息,欢迎访问以下资源:

  • GitHub 项目地址: Docker-OSX[1]

  • 官方文档: Docker-OSX 文档[2]

  • 加入社区讨论: Discord 社区[3]

希望这篇文章能帮助你快速上手 Docker-OSX!

往期精彩内容

【重新排版】2024真正可行的手机安装Kali Linux方法!

网络世界大冒险:VNC连接完整指南!

如何用AI写论文

慢到怀疑人生?召唤 chsrc,急速换源

参考资料

[1]

Docker-OSX: https://github.com/sickcodes/Docker-OSX

[2]

Docker-OSX 文档: https://github.com/sickcodes/Docker-OSX/blob/master/README.md

[3]

Discord 社区: https://discord.gg/sickchat

原文始发于微信公众号(黑客驰):在 Docker 中运行 macOS:完全指南

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2024年10月23日17:39:31
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   在 Docker 中运行 macOS:完全指南https://cn-sec.com/archives/3303634.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息