NoMount is maxsteeel's metamodule for KernelSU and APatch (and their forks). Instead of mounting your other modules' files over the system, it redirects file paths inside the kernel's VFS layer, in RAM. Nothing gets added to /proc/mounts, and the real partitions are never written to.
How the redirection works
A redirection is a pair of paths: the file the system expects, for example /vendor/etc/audio.conf, and your modified copy somewhere else, for example /data/local/tmp/mod.conf. When an app opens the original path, NoMount hands it a placeholder and quietly opens your file behind it, so every read and mmap goes to the modified copy.
It also controls directory listings. It can add new files to an existing folder or hide files that are there (whiteouts), and ls or any app listing that folder sees the result. Because partitions are never modified, this works the same on read-only erofs and read-write ext4.
There's a UID filter too. Before redirecting anything, NoMount checks which app is asking. If you've excluded that app, say a banking app or a root detector, it gets the untouched stock filesystem.
Do you need a custom kernel?
- GKI kernels 5.10 and newer: no. The release zip includes prebuilt loadable kernel modules (LKMs) that load when you flash it.
- Older kernels (4.14, 4.19) or locked-down ones, such as Sultan kernels built with
CONFIG_INTEGRATED_MODULES=y: the prebuilt LKMs won't load. You'll have to add NoMount to your kernel source or build an LKM for your device. The steps are inkernel/README.mdin the repository.
Installation
- Check the kernel requirement above.
- Flash the NoMount zip in KernelSU or APatch and reboot.
- Install your other modules (audio mods, system tweaks and so on) the usual way. At boot, NoMount picks them up and injects their files instead of mounting them.
The WebUI
- Hot load / unload: turn modules on or off without rebooting.
- App exclusion: pick apps from a list. Their UIDs get isolated, so they only see the stock filesystem.
- Global flush: clear every redirection rule at once.
Using the nm command
Everything the WebUI does is also available from a root shell through the nm binary.
| Command | What it does |
|---|---|
nm rule add <virtual> <real> | Serve the real file at the virtual path |
nm rule add --whiteout <virtual> | Hide a file or folder |
nm rule del <virtual> | Remove one rule |
nm uid add <uid> / nm uid del <uid> | Isolate an app's UID, or undo it |
nm rule list (--json) | Show active rules |
nm uid list | Show isolated UIDs |
nm clear all | Drop all rules and UID blocks |
nm version | Show the kernel subsystem version |
Rules you add by hand live in RAM and are gone after a reboot. The metamodule re-creates the rules for your installed modules on every boot.