23,808
stars
+18+19+102
2,039
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions
README
Note
This README.md documents the process of creating a Virtual Hackintosh
system.
Note: All blobs and resources included in this repository are re-derivable (all
instructions are included!).
:green_heart: Looking for commercial support with this stuff? I am available
over email for a chat for commercial support options only. Note: Project sponsors get access to the Private OSX-KVM repository, and direct support.
Struggling with Content Caching stuff? We can help.
Working with Proxmox and macOS:
- See Nick's blog for sure
- Here’s a more up-to-date version for Proxmox OpenCore-ISO
Yes, we support offline macOS installations now - see this document 🎉
Contributing Back
This project can always use your help, time and attention. I am looking for
help (pull-requests!) with the following work items:
Documentation around running macOS on popular cloud providers (Hetzner, GCP,
AWS). See the Is This Legal? section and associated references.
Document (share) how you use this project to build + test open-source
projects / get your stuff done.
Document how to use this project for XNU kernel debugging and development.
Document the process to launch a bunch of headless macOS VMs (build farm).
Document usage of munki to deploy software
to such a build farm.
Enable VNC + SSH support out of the box or more easily.
Robustness improvements are always welcome!
(Not so) crazy idea - automate the macOS installation via OpenCV.
Requirements
A modern Linux distribution. E.g. Ubuntu 24.04 LTS 64-bit or later.
QEMU = 8.2.2
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 Ventura
Note: Older AMD CPU(s) are known to be problematic but modern AMD Ryzen
processors work just fine (even for macOS Sonoma).
Installation Preparation
Install QEMU and other packages.
sudo apt-get install qemu-system uml-utilities virt-manager git \
wget libguestfs-tools p7zip-full make dmg2img tesseract-ocr \
tesseract-ocr-eng genisoimage vim net-tools screen -y
This step may need to be adapted for your Linux distribution.
Clone this repository on your QEMU system. Files from this repository are
used in the following steps.
cd ~
git clone --depth 1 --recursive https://github.com/kholia/OSX-KVM.git
cd OSX-KVM
Repository updates can be pulled via the following command:
git pull --rebase
This repository uses rebase based workflows heavily.
KVM may need the following tweak on the host machine to work.
sudo modprobe kvm; echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs
To make this change permanent, you may use the following command.
Use lscpu if you are not sure.
sudo cp kvm.conf /etc/modprobe.d/kvm.conf for intel boxes only
sudo cp kvm_amd.conf /etc/modprobe.d/kvm.conf for amd boxes only
Add user to the kvm and li