macEnhance and ABI on the new M1

by Wolfgang BairdFeb 23rd, 2021

What is an application binary interface (ABI)?

In computer software, an application binary interface (ABI) is an interface between two binary program modules. Often, one of these modules is a library or operating system facility, and the other is a program that is being run by a user.

On Apples new M1 (and newer) chips all Apple process are now compiled as arm64e, not the plain old arm64.

In order to communicate with and load external code into these arm64e processes the new arm64e preview ABI must be enabled.

cDock and MacForge can both automate this process but for those interested in learning that they're actually setting you can enable the arm64e preview abi yourself with the following instructions

  • Reboot your Mac with Apple silicon into Recovery mode.
  • Disable System Integrity Protection.
  • Reboot back to macOS.
  • Add the -arm64e_preview_abi boot arg to your system.
  • sudo nvram boot-args=-arm64e_preview_abi

To revert the change simply reset your nrvram boot args or re-enable System Integrity Protection.

A reboot is required for changes to take effect.