Background
In the Mac OS environment, interposition works only for preloaded DLLs, meaning that the HIA can only be preloaded rather than linked with the target as in some other operating systems. (See Linking Your Application with the HIA for more information on interposition and the HIA.)
The HIA makes sure that any environment variables related to preloading are correctly propagated if your program calls execve() or system(). The required Mac OS environment variable is DYLD_INSERT_LIBRARIES.
For all Mac OS releases from El Capitan onwards, however, a new feature System Integrity Protection (SIP) implemented a protocol that disallows passing DYLD_INSERT_LIBRARIES to a protected program or a program that resides in a protected directory. Calls to system() are affected because it is defined as invoking /bin/sh, which is in a SIP-protected directory.