Installation

Installing TweakInject

Four steps. The Injection page inside the application mirrors them, so if you are unsure where you are, open it and look at which station is incomplete.

Requirements

macOS27 or newer. The injection core will not run on earlier versions.
HardwareApple silicon. Releases are built for arm64 and arm64e; there is no Intel version.
AccessAn administrator account, and the ability to start up in recoveryOS.

1 · Download the application

Download the current release from the releases page and move TweakInject.app into /Applications. Open it once before continuing — it reports which of the remaining steps are outstanding.

2 · Turn off System Integrity Protection

System Integrity Protection prevents the process injection TweakInject depends on. Shut down, then hold the power button until Loading startup options appears. Choose Options → Continue, then Utilities → Terminal, and run:

recoveryOS Terminal
csrutil disable

Only the debugging restriction is actually in the way, so this narrower form works and leaves the rest of SIP standing. TweakInject writes to /Library/TweakInject , which SIP does not protect, and never touches NVRAM:

recoveryOS Terminal — alternative
csrutil enable --without debug

Restart into macOS when the command completes.

3 · Complete the setup from the Injection page

Open TweakInject and select Injection. The numbered circles across the page are the setup stations, and each one is a button — selecting an incomplete station performs that stage. Work through them from left to right.

  1. SIP — reports whether step 2 took effect. If System Integrity Protection is off but library validation remains enforced, clicking this station presents a prompt with a Disable Library Validation button. Selecting it configures the relaxation preference and restarts amfid instantly with no manual Terminal commands and no machine reboot. This allows tweaks to inject into hardened targets such as WindowServer and Finder.
  2. Helper — installs the privileged component. macOS asks you to authorise this; it is the only part that runs with administrator privileges.
  3. Payload — installs the injection runtime into /Library/TweakInject.
  4. Launchd hook — installs the hook that detects processes starting. Nothing is injected until this is in place.
  5. TweakLoader — reports that the loader is active.
  6. Tweaks — reports how many tweaks are enabled and loading.
The six stations, left to right. The status strip in the lower-left corner of the window is shown on every page.

4 · Restart userspace

The hook installed in step 3 applies only to processes started after it was installed, so everything currently running needs restarting. Use Userspace Reboot in the utilities below the stations. It restarts every process without restarting the machine, which takes seconds rather than a minute.

Sign back in and open TweakInject. When the status strip reads Injection · Active, setup is complete. Continue to Usage.