DEV Community

HackMate
HackMate

Posted on

I automated the entire OpenCore hackintosh USB setup so I never have to do it manually again

I spent way too many hours on my first hackintosh. Not because the hardware was weird — it was a ThinkPad T480s, one of the most documented hackintosh laptops out there. I spent the time hunting down kexts, figuring out which SSDTs I needed, hand-editing config.plist, and praying I didn't miss a quirk.

Then I did it again on a second machine. And a third.

So I built HackMate — a tool that automates the entire OpenCore USB creation process from a single command.

What it does

HackMate scans your hardware and handles everything:

  • Detects your CPU, GPU, audio codec, ethernet, WiFi, touchpad, NVMe, and Thunderbolt
  • Picks the correct kexts for your exact hardware (from GitHub releases, always latest)
  • Generates SSDTs from your actual DSDT using SSDTTime
  • Creates a proper SMBIOS (serial, MLB, UUID, ROM)
  • Builds a complete config.plist with the right quirks
  • Downloads the latest OpenCore release
  • Downloads macOS recovery directly from Apple
  • Formats your USB and writes everything to it

The whole process takes about 5-10 minutes and requires zero manual config.plist editing.

Demo

HackMate demo

Supported hardware

CPU generations: Sandy Bridge through Raptor Lake (Intel 2nd–13th gen) + AMD Ryzen/Threadripper

macOS versions: Ventura, Sonoma, Sequoia, Tahoe (macOS 16)

Host OS: Linux, Windows (single EXE, no Python needed), macOS

How it's built

HackMate is written in Python using Textual for the TUI. It wraps:

  • macrecovery (from OpenCorePkg) for downloading macOS recovery
  • SSDTTime (CorpNewt) for SSDT generation
  • OpenCorePkg releases from GitHub
  • GitHub releases API for kext downloads

The Windows EXE is built via GitHub Actions using PyInstaller — no Python install needed on Windows.

The problems it solves

Every time I followed the Dortania guide manually, I'd hit the same friction points:

  1. Kext version hunting — which version of Lilu works with this version of WhateverGreen? HackMate always grabs the latest compatible releases.
  2. SSDT generation — running SSDTTime manually, moving files around, compiling. HackMate does it in-place.
  3. config.plist quirks — getting the right combination of Booter, Kernel, and UEFI quirks for your specific CPU generation is error-prone. HackMate generates it from a template tuned per CPU generation.
  4. SMBIOS — generating valid serial numbers and MLB values by hand is tedious. HackMate generates a complete SMBIOS automatically.

Post-install: USB port mapping

One thing most guides skip: USB port mapping. macOS limits you to 15 USB ports, and without a proper map, things break randomly.

HackMate bundles USBToolBox.kext + a placeholder UTBMap.kext in every EFI. After install, run the USBToolBox app (also downloaded automatically to EFI/HackMate-Extras/) to generate your map, then use HackMate's USB Mapping screen to replace the placeholder.

Getting started

git clone https://github.com/riftaway7-code/hackmate.git
cd hackmate
python3 setup.py
sudo .venv/bin/python3 src/hackmate.py
Enter fullscreen mode Exit fullscreen mode

Windows: download HackMate.exe from the releases page and run as Administrator.


The project is open source and actively maintained. If your hardware isn't detected correctly or you hit a bug, open an issue — I want it to work for as many machines as possible.

GitHub →

Top comments (0)