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
| macOS | 27 or newer. The injection core will not run on earlier versions. |
| Hardware | Apple silicon. Releases are built for arm64 and arm64e; there is no Intel version. |
| Access | An 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:
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:
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.
-
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
amfidinstantly with no manual Terminal commands and no machine reboot. This allows tweaks to inject into hardened targets such asWindowServerandFinder. - Helper — installs the privileged component. macOS asks you to authorise this; it is the only part that runs with administrator privileges.
-
Payload — installs the injection runtime into
/Library/TweakInject. - Launchd hook — installs the hook that detects processes starting. Nothing is injected until this is in place.
- TweakLoader — reports that the loader is active.
- Tweaks — reports how many tweaks are enabled and loading.
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.