NeoZygisk is a ptrace-based Zygote injection implementation that exposes the Zygisk API across supported Magisk, KernelSU, KernelSU Next, and APatch installations.
Independent Zygisk Runtime
A compact compatibility layer for Zygisk modules, with namespace handling and trace cleanup integrated into the runtime.
Zygisk API
Loads compatible Zygisk modules in app and system-server processes without depending on Magisk's built-in implementation.
Namespace Control
Separates ordinary rooted processes from denied applications and switches to a cached clean namespace when direct unmounting is unsafe.
Lifecycle Cleanup
Removes runtime traces after modules unload and centralizes mount cleanup for the current Zygote generation.
How It Operates
NeoZygisk starts a monitor that uses ptrace to attach to Zygote and establish the callbacks expected by Zygisk modules. On Magisk, it also coordinates the scripts of installed Zygisk modules. Its DenyList logic first attempts a direct unmount from the target Zygote; when safety checks reject that path, it uses setns to switch the process into a previously prepared clean mount namespace.
Version 2.4 Requirements
- Android 8.0 or newer on ARM, ARM64, x86, or x86_64.
- Magisk 26.4.2 or newer; disable built-in Zygisk.
- KernelSU kernel code 10940 and manager daemon 11425 or newer.
- APatch build 10762 or newer.
One root implementation only
The installer rejects mixed root environments. Remove inactive or residual root implementations before deployment, and use a root manager rather than recovery installation.
DenyList Configuration
On KernelSU and APatch, enable the manager option that unmounts modules for selected applications. On Magisk, configure the DenyList but leave Enforce DenyList disabled so it does not compete with NeoZygisk's namespace controller. Applications outside the list retain the normal root and module mount view.
DenyList handling reduces the mount exposure presented to selected processes; it is not a promise that every application will accept a modified device. Attestation, bootloader state, SELinux state, injected modules, and application-specific checks remain independent factors.
Version 2.4 Highlights
This release extends compatibility to Android 17, adds ARMv9 Branch Target Identification handling, improves nested-Zygote support, resolves emulator namespace and SELinux cases, adds guard pages, and moves mount unmounting into NeoZygisk itself. Choose the release archive for normal use; the substantially larger debug archive is intended for diagnostics.
Compatibility Caution
Zygote injection affects every Android application process. Do not run NeoZygisk alongside another active Zygisk implementation, and test third-party Zygisk modules individually after an Android or root-manager update. Keep a method to disable modules if the device cannot complete startup.