SMBIOS Generator GUI is a Python + Tkinter-based graphical utility for generating valid Apple SMBIOS information using macserial. This tool is useful for Hackintosh users and developers who need realistic, unique Apple serial numbers for OpenCore.
- GUI-based interface using Tkinter
- Auto-download and extraction of
macserial
from official OpenCorePkg releases - Support for a wide range of Apple models (iMac, MacBook, Mac mini, Mac Pro, Xserve, etc.)
- Batch generation of SMBIOS variants
- Apple Support serial number occupation check (via web query)
- One-click injection of SMBIOS data into
config.plist
-
Make sure Python 3.7+ is installed.
-
Install required packages:
pip install requests
-
Clone this repository or download the script:
git clone https://github.com/Edger1ng/macserialgui.git cd macserial-gui
-
Run the application:
python main.py
The script will automatically download
macserial
on first run.
You don’t need to build the app yourself if you don’t want to. Ready-made executables are available for all major platforms (Windows, macOS, Linux) as artifacts on GitHub Actions.
- Go to the Actions tab in this repository.
- Find the latest successful workflow run called Build SMBIOS Generator GUI.
- Open the run and scroll down to the Artifacts section.
- Download the artifact matching your platform:
SMBIOS-GUI-Windows.zip
(containsmain.exe
)SMBIOS-GUI-macOS.zip
(containsmain
executable)SMBIOS-GUI-Linux.zip
(containsmain
executable)
- Unzip and run the executable directly. No additional setup required except Python dependencies are bundled.
- Choose your desired Mac model from the dropdown.
- Enter how many SMBIOS variants to generate.
- Click Generate SMBIOS Variants.
- Select one of the generated variants from the list.
- Click the Insert into config.plist button to update your OpenCore
config.plist
.
Model: iMac14,2
SerialNumber: C02LXYZ12345
BoardSerialNumber: C02123456789ABCDE
SmUUID: 5D9DAF0F-2E21-4A36-B999-3D6D01B2A107
ROM: 112233445566
Occupied: Probably FREE
- The GUI uses the
macserial
utility downloaded from the latest OpenCorePkg GitHub release. - A selected Mac model (e.g., iMac14,2) is passed to
macserial
with the-m
flag. macserial
generates matching serial numbers and board serials.- A unique SmUUID and ROM are generated using
uuid
. - A lightweight serial occupation check is performed using Apple Support’s lookup service.
- If selected, this data can be inserted into
config.plist
using Python’splistlib
.
macserial-gui/
├── main.py # Main GUI application
├── README.md # This file
└── macserial(.exe) # Automatically downloaded on first run
- ✅ Windows 10/11
- ✅ macOS (with Python and permissions)
- ✅ Linux (with Python and Tkinter)
- Python 3.7+
requests
module- Tkinter (built-in)
- Serial number occupation check uses a public Apple endpoint and is best-effort.
- Do not use generated SMBIOS data for illegal purposes. You are responsible for your usage.
This project is under the MIT License.
- Acidanthera for
macserial
and OpenCorePkg