Overview
Developed by backslashxx and KOWX712, Mountify is an advanced global filesystem mounter operating as a KernelSU metamodule, APatch module, or Magisk module.
Modern enterprise and banking integrity suites frequently detect root by inspecting /proc/mounts and counting the quantity of active filesystem bind mounts (such as those generated by traditional Magisk magic mounts). Mountify solves this by taking over the mounting responsibilities for all installed modules. It aggregates their file modifications into a single unified Linux OverlayFS layer that mimics a standard OEM vendor directory (e.g., /mnt/vendor/...), sharply reducing mount table entries.
Technical Architecture & How It Works
Unified OverlayFS Stacking & Operating Modes
Mountify supports two distinct mounting engines configured in /data/adb/mountify/config.sh:
- tmpfs-Backed Mode (Default):
- For every module, Mountify flags
skip_mount, aggregates files into a unified tmpfs directory (/mnt/vendor/fake_folder_name), and replicates exact SELinux contexts for every node. - It overlays the consolidated trees (
system/bin,system/framework, etc.) across system partitions in single atomic operations.
- For every module, Mountify flags
- ext4 Sparse Mode (For Heavy Modules):
- Used for exceptionally large modules (such as Adreno GPU drivers) that exceed tmpfs memory capacity. Mountify builds an ext4 sparse loop image on tmpfs, mounts it, copies files, and creates an OverlayFS upperdir.
- Metamodule Interception: When running under KernelSU,
metamodule=trueinmodule.propallows Mountify to intercept module initialization during early boot, mounting before standard zygote initialization. - Process Unmounting Integration: When paired with a Zygisk unmount provider (such as NeoZygisk, ReZygisk, or Zygisk Next), the single unified mount can be cleanly unmounted from DenyList application namespaces using a single system call.
Installation & Setup
1. Kernel Requirements Check
Verify that your kernel provides OverlayFS support:
CONFIG_OVERLAY_FS=ymust be compiled into the kernel.CONFIG_TMPFS_XATTR=yis highly recommended for proper SELinux attribute preservation.
2. Flash Module
- Download the latest
mountify-v*.ziprelease from GitHub. - Flash the module in KernelSU, APatch, or Magisk.
- Reboot your device.
Configuration & Practical Usage
Configuration can be performed via the integrated WebUI or directly in /data/adb/mountify/config.sh:
- Selective Module Mounting:
By default, Mountify mounts all installed modules (
mountify_mounts=2). To mount only specific modules, set:
Then list your target module IDs inmountify_mounts=1/data/adb/mountify/modules.txt:Adreno_Gpu_Driver ViPER4Android-RE-Fork - Custom Fake Mount Name:
Disguise the temporary mount directory by setting:
FAKE_MOUNT_NAME="my_vendor_mount" - Skipping Modules:
To instruct Mountify to ignore a specific module, create:
- On KernelSU / APatch:
/data/adb/modules/<module_name>/skip_mount - On Magisk:
/data/adb/modules/<module_name>/skip_mountify
- On KernelSU / APatch:
Troubleshooting & Common Issues
- Anti-Bootloop Protection: Mountify includes built-in bootloop safety routines. If an unstable module causes consecutive crashes, Mountify disables itself. To deliberately disable safety checks (for module development), touch
/data/adb/mountify/explicit_I_want_a_bootloop. - F2FS Native Casefolding Incompatibility: Using an F2FS
/datapartition as an overlay source with native Android casefolding enabled causes kernel-levelovl_dentry_weirdfailures. Mountify automatically utilizes tmpfs backing to bypass this filesystem limitation.
Frequently Asked Questions
Why does Mountify fail when used with the De-Bloater module?
Standard OverlayFS whiteouts require specific char device nodes (mknod c 0 0) to mask underlying system files. The De-Bloater module replaces system files with zero-byte or dummy text files rather than kernel whiteouts, preventing OverlayFS from concealing system APKs properly. System App Nuker should be used instead.
How do I prevent Mountify from mounting a specific module?
On KernelSU or APatch metamodule mode, place a file named 'skip_mount' inside the target module directory (/data/adb/modules/
