sudo apt-get update
- A modern Linux distribution. E.g. Ubuntu 22.04 LTS 64-bit or later.
- QEMU >= 6.2.0
- A CPU with Intel VT-x / AMD SVM support is required (grep -e vmx -e svm /proc/cpuinfo)
- A CPU with SSE4.1 support is required for >= macOS Sierra
A CPU with AVX2 support is required for >= macOS Mojave
sudo ln -s /usr/bin/python3.8 /usr/bin/python
sudo rm /usr/bin/python
安装 QEMU 和其他软件包。
sudo apt-get install qemu uml-utilities virt-manager git \ wget libguestfs-tools p7zip-full make dmg2img tesseract-ocr \ tesseract-ocr-eng genisoimage -y
git clone --depth 1 --recursive https://github.com/y141111/OSX-KVM.git
git clone --depth 1 --recursive https://gitee.com/y141111/OSX-KVM.git
dmg2img -i BaseSystem.dmg BaseSystem.img
创建将在其中安装 macOS 的虚拟硬盘映像。如果将 磁盘映像的名称 从 到其他内容，引导脚本 将需要更新以指向新的映像名称。
qemu-img create -f qcow2 mac_hdd_ng.img 128G
CLI 方法（主要）。只需运行脚本即可启动 安装过程。
注意：此脚本适用于所有最新的 macOS 版本。
- 使用 macOS 安装程序中的工具进行分区，以及 格式化附加到 macOS 虚拟机的虚拟磁盘。Disk Utility
- 继续，并安装 macOS 🙌
提示：建议使用非 APFS 文件系统。
（可选）将此macOS VM磁盘与libvirt（virt-manager / virsh stuff）一起使用。
sed "s/CHANGEME/$USER/g" macOS-libvirt-Catalina.xml > macOS.xml virt-xml-validate macOS.xml
virsh --connect qemu:///system define macOS.xml
如果需要，向 libvirt-qemu 用户授予必要的权限，
sudo setfacl -m u:libvirt-qemu:rx /home/$USER sudo setfacl -R -m u:libvirt-qemu:rx /home/$USER/OSX-KVM
Setting Expectations Right
Nice job on setting up a
Virtual Hackintoshsystem! Such a system can be used for a variety of purposes (e.g. software builds, testing, reversing work), and it may be all you need, along with some tweaks documented in this repository.
However, such a system lacks graphical acceleration, a reliable sound sub-system, USB 3 functionality and other similar things. To enable these things, take a look at our notes. We would like to resume our testing and documentation work around this area. Please reach out to us if you are able to fund this area of work.
It is possible to have 'beyond-native-apple-hw' performance but it does require work, patience, and a bit of luck (perhaps?).
- See networking notes on how to setup networking in your VM, outbound and also inbound for remote access to your VM via SSH, VNC, etc.
- To passthrough GPUs and other devices, see these notes.
- Need a different resolution? Check out the notes included in this repository.
- Trouble with iMessage? Check out the notes included in this repository.
- Highly recommended macOS tweaks - https://github.com/sickcodes/osx-optimizer
Is This Legal?
The "secret" Apple OSK string is widely available on the Internet. It is also included in a public court document available here. I am not a lawyer but it seems that Apple's attempt(s) to get the OSK string treated as a trade secret did not work out. Due to these reasons, the OSK string is freely included in this repository.
Gabriel Somlo also has some thoughts on the legal aspects involved in running macOS under QEMU/KVM.
You may also find this 'Announcing Amazon EC2 Mac instances for macOS' article interesting.
Note: It is your responsibility to understand, and accept (or not accept) the Apple EULA.
Note: This is not legal advice, so please make the proper assessments yourself and discuss with your lawyers if you have any concerns (Text credit: Dortania)
My aim is to enable macOS based educational tasks, builds + testing, kernel debugging, reversing, and macOS security research in an easy, reproducible manner without getting 'invested' in Apple's closed ecosystem (too heavily).
Virtual Hackintoshsystems are not intended to replace the genuine physical macOS systems.
Personally speaking, this repository has been a way for me to 'exit' the Apple ecosystem. It has helped me to test and compare the interoperability of
Canon CanoScan LiDE 120scanner, and
Brother HL-2250DNlaser printer. And these devices now work decently enough on modern versions of Ubuntu (Yay for free software). Also, a long time back, I had to completely wipe my (then) brand new
MacBook Pro (Retina, 15-inch, Late 2013)and install Xubuntu on it - as the OS X kernel kept crashing on it!
Backstory: I was a (poor) student in Canada in a previous life and Apple made my work on cracking Apple Keychains a lot harder than it needed to be. This is how I got interested in Hackintosh systems.