• topjohnwu's avatar
    Allow 3rd party code to load pre-specializing · da723b20
    topjohnwu authored
    Magisk's policy is to never allow 3rd party code to be loaded in the
    zygote daemon process so we have 100% control over injection and hiding.
    However, this makes it impossible for 3rd party modules to run anything
    before process specialization, which includes the ability to modify the
    arguments being sent to these original nativeForkAndXXX methods.
    
    The trick here is to fork before calling the original nativeForkAndXXX
    methods, and hook `fork` in libandroid_runtime.so to skip the next
    invocation; basically, we're moving the responsibility of process
    forking to our own hands.
    da723b20
jni_hooks.hpp 17.4 KB