Overview
Developed by PerformanC, ReZygisk is a clean, open-source, standalone implementation of the Zygisk API specification.
While Magisk incorporates its own proprietary Zygisk implementation directly into magiskd, modern alternatives like KernelSU and APatch adhere to a minimalist kernel-space design philosophy. To run the vast ecosystem of modules that depend on Zygisk hooks (such as Vector/Xposed, PlayIntegrityFork, and audio enhancers), KernelSU requires an external Zygote injection engine. ReZygisk fulfills this requirement with a clean, performant architecture.
Technical Architecture & How It Works
Zygote Ptrace & Loader Injection
- Daemon Initialization: At boot time, ReZygisk starts a background monitoring daemon that watches for the initialization of Android’s 32-bit and 64-bit Zygote processes (
app_process32andapp_process64). - Ptrace Hijack: During the early initialization of the Zygote process (before the first application is forked), ReZygisk uses ptrace to inject its native loader library (
librezygisk.so). - API Implementation: ReZygisk registers the full official Zygisk API functions:
preAppSpecialize: Executed before app privileges are dropped to standard sandbox UID.postAppSpecialize: Executed after sandbox privileges are active.- Companion process IPC channels.
- Module Dispatch: Whenever any app process is spawned, ReZygisk checks
/data/adb/modules/for active Zygisk modules and loads their native.sopayloads directly into the target process.
Installation & Setup
- Open KernelSU or APatch.
- Download the latest
ReZygisk-vX.zipfrom releases. - Flash the package via the Modules tab.
- Reboot your phone.
- In your module list, ReZygisk will show as active. You can now flash any standard Zygisk module (like PlayIntegrityFork or Vector) and they will function seamlessly.
