
Warning
macOS Support Notice: With the end of Hackintosh support in macOS 26 Tahoe, the v0.5.x series will be the last to support macOS. Development will shift solely to Linux afterwards until UXTU officially supports Linux.
Caution
macOS Users: Do not use UXTU4Unix alongside SMCAMDProcessor. They conflict with each other and may cause instability.
- Overview
- Compatibility
- Requirements
- Installation
- Secure Boot (Linux)
- Configuration
- Frequently Asked Questions
- Preview
- Acknowledgments
UXTU4Unix is a power management tool for AMD Ryzen APUs and CPUs on macOS and Linux. It wraps RyzenAdj with an interactive terminal UI, allowing you to apply, schedule, and automatically switch between power presets based on your workload and power source without touching the BIOS.
Key features:
- Premade presets for a wide range of AMD APUs and desktop CPUs
- Dynamic Mode - automatically switches between presets on AC vs. battery
- Auto-reapply on a configurable timer
- Detailed hardware information panel (CPU, cache, memory)
- Startup integration (macOS Login Items / Linux XDG Autostart)
- Built-in updater with config backup and restore
- AMD Ryzen APUs compatible with NootedRed or listed in the Premade Preset section of UXTU
- Any AMD CPU/APU supported by RyzenAdj
| Platform | Version |
|---|---|
| macOS | 11 Big Sur -> 26 Tahoe with Python 3.10+ |
| Linux | Any distribution with Python 3.10+ |
| Requirement | macOS | Linux |
|---|---|---|
| Python | 3.10+ | 3.10+ |
keyring Python library |
✅ | ✅ |
dmidecode |
Bundled | Must install separately |
ryzenadj |
Bundled | Bundled in Assets/Linux/ |
libpci |
Bundled (custom ryzenadj build) | Required by RyzenAdj |
| Secure Boot | Must be disabled | Must be disabled (or see below) |
Grab the latest release from the Releases page and extract it.
pip3 install -r /path/to/UXTU4Unix/requirements.txtImportant
Secure Boot must be disabled in your BIOS before running UXTU4Unix on macOS.
-
Run the launcher:
open /path/to/UXTU4Unix.command
Or via terminal:
python3 /path/to/UXTU4Unix.py
-
Follow the first-run setup wizard.
-
Optional - Temperature Management: For better thermal control, disable Core Performance Boost in your BIOS using Smokeless_UMAF.
⚠️ This will reduce peak CPU performance. Core Performance Boost on macOS Hackintosh is not well-optimised and can cause thermal issues.
If you encounter SSL errors, run the certificate installer bundled with Python:
-
Install system dependencies:
Debian / Ubuntu
sudo apt install dmidecode libpci-dev
Fedora / RHEL
sudo dnf install dmidecode pciutils-devel
Arch
sudo pacman -S dmidecode pciutils
-
Run the script:
python3 /path/to/UXTU4Unix.py
If you want to keep Secure Boot enabled, you must load the ryzen_smu kernel module manually instead of disabling Secure Boot.
-
Install build prerequisites (Fedora example - adjust for your distro):
sudo dnf install cmake gcc gcc-c++ dkms openssl
-
Clone and install
ryzen_smu:git clone https://github.com/amkillam/ryzen_smu # Active fork cd ryzen_smu/ sudo make dkms-install
-
Enroll the DKMS-generated UEFI key:
sudo mokutil --import /var/lib/dkms/mok.pub
You will be prompted to set a one-time password. Remember it for the next step.
-
Restart - your system will boot into the MOK Manager.
- Choose Enroll MOK
- Enter the password you set above
- Reboot
-
Verify the module loaded:
sudo dmesg | grep ryzen_smuA "kernel tainted" message is expected and harmless - it simply indicates a non-mainline module was loaded.
UXTU4Unix stores its configuration at UXTU4Unix/Assets/config.toml. It is created and managed automatically, but can be edited manually if needed.
[User]
mode = Custom
customargs = --max-performance
[Settings]
time = 30
softwareupdate = 1
reapply = 1
applyonstart = 1
dynamicmode = 0
debug = 1
[Info]
cpu = AMD Ryzen 5 7535HS with Radeon Graphics
signature = Family 25, Model 68, Stepping 1
architecture = Zen 3 - Zen 4
family = Rembrandt
type = Amd_Apu| Key | Type | Description |
|---|---|---|
mode |
string | Preset name to apply on load, or Custom to use customargs |
customargs |
string | Raw ryzenadj arguments used when mode = Custom |
| Key | Default | Values | Description |
|---|---|---|---|
time |
30 |
seconds | Interval between automatic preset re-applications |
softwareupdate |
1 |
0 / 1 |
Check for updates on startup |
reapply |
1 |
0 / 1 |
Automatically re-apply preset on a timer |
applyonstart |
1 |
0 / 1 |
Apply saved preset when the program launches |
dynamicmode |
0 |
0 / 1 |
Switch presets automatically based on power source |
debug |
1 |
0 / 1 |
Show debug output in the UI |
sip |
03080000 |
hex string | Required SIP flags for ryzenadj (macOS only) |
Populated automatically by dmidecode on first run. Stores CPU name, CPUID signature, architecture, codename, and type used for preset matching.
Tip: If your CPU reports an unrecognised name (e.g.
AMD Demo CPU), you can manually setcputo a known model string such asAMD Ryzen 5 7535HS with Radeon Graphicsto match the correct preset.
For advanced ryzenadj argument reference, see Custom.md.
The bundled ryzenadj and DirectHW binaries are treated as untrusted kernel extensions by macOS. SIP must be partially disabled and the ALLOW_UNTRUSTED_KEXTS flag (0x1) must be set in csr-active-config for them to run. UXTU4Unix's setup wizard handles this automatically.
When porting presets from UXTU to UXTU4Unix, some tuning commands were found to be incompatible with ryzenadj. UXTU uses additional methods to adjust CPU and APU settings beyond what ryzenadj exposes - particularly for desktop CPU presets. Only the compatible subset of commands was retained. Support is expanded with each release.
Check that applyonstart = 1 is set in config.toml and that the mode value matches a valid preset name. You can verify this from Settings -> Preset in the UI.
Dynamic Mode is designed for laptops - it switches between presets based on whether the system is on AC or battery. On a desktop with no battery, it will always use the AC preset.
| Contributor | Contribution |
|---|---|
| b00t0x | Guidance on building ryzenadj with DirectHW and pciutils-osx |
| FlyGoat | RyzenAdj |
| JamesCJ60 | UXTU original preset design and inspiration |
| corpnewt | macOS .command launcher template |
| NotchApple1703 | Advisor |







