Этот README.md
документирует процесс создания системы Virtual Hackintosh
.
Примечание. Все большие двоичные объекты и ресурсы, включенные в этот репозиторий, могут быть повторно получены (все инструкции включены!).
Ищете коммерческую поддержку этого продукта? Со мной можно связаться по электронной почте только по вопросам коммерческой поддержки . Примечание. Спонсоры проекта получают доступ к Private OSX-KVM
и прямую поддержку.
Возникли проблемы с Content Caching
? Мы можем помочь.
Работаете с Proxmox
и macOS? Обязательно посмотрите блог Ника.
Да, теперь мы поддерживаем автономную установку macOS — см. этот документ?
Этому проекту всегда понадобится ваша помощь, время и внимание. Мне нужна помощь (pull-запросы!) по следующим рабочим элементам:
Документация по использованию macOS на популярных облачных провайдерах (Hetzner, GCP, AWS). См Is This Legal?
раздел и связанные с ним ссылки.
Задокументируйте (поделитесь), как вы используете этот проект для создания и тестирования проектов с открытым исходным кодом / выполнения своих задач.
Документируйте, как использовать этот проект для отладки и разработки ядра XNU.
Задокументируйте процесс запуска группы автономных виртуальных машин macOS (фермы сборки).
Задокументируйте использование munki для развертывания программного обеспечения на такой build farm
.
Включите поддержку VNC + SSH «из коробки» или проще.
Улучшения надежности всегда приветствуются!
(Не такая уж) безумная идея — автоматизировать установку macOS через OpenCV.
Современный дистрибутив Linux. Например, Ubuntu 24.04 LTS 64-разрядная версия или новее.
КЕМУ >= 8.2.2
Требуется процессор с поддержкой Intel VT-x/AMD SVM ( grep -e vmx -e svm /proc/cpuinfo
)
Для >= macOS Sierra требуется процессор с поддержкой SSE4.1.
Для >= macOS Ventura требуется процессор с поддержкой AVX2.
Примечание. Старые процессоры AMD, как известно, вызывают проблемы, но современные процессоры AMD Ryzen работают нормально (даже для macOS Sonoma).
Установите QEMU и другие пакеты.
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
Возможно, этот шаг потребуется адаптировать для вашего дистрибутива Linux.
Клонируйте этот репозиторий в своей системе QEMU. Файлы из этого репозитория используются в следующих шагах.
cd ~
git clone --depth 1 --recursive https://github.com/kholia/OSX-KVM.git
cd OSX-KVM
Обновления репозитория можно получить с помощью следующей команды:
git pull --rebase
В этом репозитории активно используются рабочие процессы, основанные на перебазировании.
Для работы KVM может потребоваться следующая настройка на хост-компьютере.
sudo modprobe kvm; echo 1 | sudo tee /sys/module/kvm/parameters/ignore_msrs
Чтобы сделать это изменение постоянным, вы можете использовать следующую команду.
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
Добавьте пользователя в группы kvm
и libvirt
(может понадобиться).
sudo usermod -aG kvm $(whoami)
sudo usermod -aG libvirt $(whoami)
sudo usermod -aG input $(whoami)
Примечание. Повторно войдите в систему после выполнения этой команды.
Загрузите установщик macOS.
./fetch-macOS-v2.py
Здесь вы можете выбрать желаемую версию macOS. После выполнения этого шага файл BaseSystem.dmg
должен находиться в текущей папке.
ВНИМАНИЕ: Оставьте настройку >= Big Sur
на экране Country Selection
и других подобных местах на некоторое время, если работа идет медленно. Мастер первоначальной настройки macOS в конечном итоге завершится успешно.
Пример запуска:
$ ./fetch-macOS-v2.py
1. High Sierra (10.13)
2. Mojave (10.14)
3. Catalina (10.15)
4. Big Sur (11.7)
5. Monterey (12.6)
6. Ventura (13) - RECOMMENDED
7. Sonoma (14)
8. Sequoia (15)
Choose a product to download (1-8): 6
Примечание. Современные графические процессоры NVIDIA поддерживаются в HighSierra, но не в более поздних версиях macOS.
Преобразуйте загруженный файл BaseSystem.dmg
в файл BaseSystem.img
.
dmg2img -i BaseSystem.dmg BaseSystem.img
Создайте образ виртуального жесткого диска, на который будет установлена macOS. Если вы измените имя образа диска с mac_hdd_ng.img
на другое, сценарии загрузки необходимо будет обновить, чтобы они указывали на новое имя образа.
qemu-img create -f qcow2 mac_hdd_ng.img 256G
ПРИМЕЧАНИЕ. Для достижения наилучших результатов создайте этот файл образа жесткого диска на быстром диске SSD/NVMe.
Теперь вы готовы установить macOS
Метод CLI (основной). Просто запустите сценарий OpenCore-Boot.sh
, чтобы начать процесс установки.
./OpenCore-Boot.sh
Примечание. Этот же сценарий работает для всех последних версий macOS.
Используйте инструмент Disk Utility
в установщике macOS, чтобы разбить и отформатировать виртуальный диск, подключенный к виртуальной машине macOS. Используйте APFS
(по умолчанию) для современных версий macOS.
Идем дальше и устанавливаем macOS?
(НЕОБЯЗАТЕЛЬНО) Используйте этот диск виртуальной машины macOS с libvirt (virt-manager / virsh).
Отредактируйте файл macOS-libvirt-Catalina.xml
и измените различные пути к файлам (найдите в этом файле строки CHANGEME
). Следующая команда обычно помогает.
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
Запустите virt-manager
и запустите виртуальную машину macOS
.
Используйте предоставленный скрипт boot-macOS-headless.sh.
./boot-macOS-headless.sh
Отличная работа по настройке системы Virtual Hackintosh
! Такую систему можно использовать для различных целей (например, сборка программного обеспечения, тестирование, реверсирование работ), и это может быть все, что вам нужно, вместе с некоторыми настройками, задокументированными в этом репозитории.
Однако такой системе не хватает графического ускорения, надежной звуковой подсистемы, функционала USB 3 и других подобных вещей. Чтобы включить эти функции, ознакомьтесь с нашими заметками. Мы хотели бы возобновить работу по тестированию и документированию в этой области. Пожалуйста, свяжитесь с нами, если вы можете профинансировать эту область работы.
Можно добиться производительности «за пределами родного яблока-hw», но это требует работы, терпения и немного удачи (возможно?).
См. примечания по работе с сетью о том, как настроить сеть на вашей виртуальной машине, исходящую, а также входящую для удаленного доступа к вашей виртуальной машине через SSH, VNC и т. д.
Чтобы пройти через графические процессоры и другие устройства, см. эти примечания.
Нужно другое разрешение? Ознакомьтесь с примечаниями, включенными в этот репозиторий.
Проблемы с iMessage? Ознакомьтесь с примечаниями, включенными в этот репозиторий.
Настоятельно рекомендуемые настройки macOS — https://github.com/sickcodes/osx-optimizer.
«Секретная» строка Apple OSK широко доступна в Интернете. Он также включен в публичный судебный документ, доступный здесь. Я не юрист, но похоже, что попытки Apple добиться того, чтобы строка OSK рассматривалась как коммерческая тайна, не увенчались успехом. По этим причинам строка OSK свободно включается в этот репозиторий.
Пожалуйста, ознакомьтесь с разделами документации «Легальность взлома» в Руководстве по установке OpenCore от Dortania.
Габриэль Сомло также высказал некоторые соображения по поводу юридических аспектов использования macOS под управлением QEMU/KVM.
Вам также может быть интересна статья «Анонс инстансов Amazon EC2 Mac для macOS».
Примечание. Вы обязаны понять и принять (или не принять) соглашение Apple EULA.
Примечание. Это не юридическая консультация, поэтому, пожалуйста, проведите надлежащую оценку самостоятельно и обсудите со своими юристами, если у вас есть какие-либо вопросы (Текст предоставлен: Dortania).
Моя цель — сделать возможными образовательные задачи на базе macOS, сборку + тестирование, отладку ядра, реверсирование и исследования безопасности macOS простым и воспроизводимым образом, не «инвестируя» в закрытую экосистему Apple (слишком сильно).
Эти системы Virtual Hackintosh
не предназначены для замены настоящих физических систем macOS.
Лично для меня этот репозиторий стал способом «выйти» из экосистемы Apple. Это помогло мне протестировать и сравнить совместимость сканера Canon CanoScan LiDE 120
и лазерного принтера Brother HL-2250DN
. И эти устройства теперь достаточно прилично работают на современных версиях Ubuntu (ура бесплатному программному обеспечению). Кроме того, давным-давно мне пришлось полностью стереть свой (тогда) новенький MacBook Pro (Retina, 15-inch, Late 2013)
и установить на него Xubuntu — так как на нем постоянно зависало ядро OS X
!
Предыстория: в прошлой жизни я был (бедным) студентом в Канаде, и Apple усложнила мою работу по взлому цепочек для ключей Apple, намного сложнее, чем нужно было. Так я заинтересовался системами Hackintosh.