{"id":46453867,"url":"https://github.com/enginex0/zeromount","last_synced_at":"2026-04-15T04:03:02.795Z","repository":{"id":335242425,"uuid":"1144500031","full_name":"Enginex0/zeromount","owner":"Enginex0","description":"Mountless module loading for rooted Android. Kernel-level VFS path redirection — zero mount table pollution. SUSFS integration, WebUI, bootloop guard, and strategy fallback.","archived":false,"fork":false,"pushed_at":"2026-03-24T05:41:14.000Z","size":44476,"stargazers_count":50,"open_issues_count":0,"forks_count":7,"subscribers_count":4,"default_branch":"master","last_synced_at":"2026-03-25T05:46:13.543Z","etag":null,"topics":["android","android-root","kernel","kernel-module","kernelsu","magisk-module","root","susfs","vfs"],"latest_commit_sha":null,"homepage":"https://t.me/superpowers9","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Enginex0.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-28T18:39:42.000Z","updated_at":"2026-03-24T17:47:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/Enginex0/zeromount","commit_stats":null,"previous_names":["enginex0/zeromount"],"tags_count":5,"template":false,"template_full_name":null,"purl":"pkg:github/Enginex0/zeromount","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enginex0%2Fzeromount","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enginex0%2Fzeromount/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enginex0%2Fzeromount/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enginex0%2Fzeromount/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Enginex0","download_url":"https://codeload.github.com/Enginex0/zeromount/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Enginex0%2Fzeromount/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31825514,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-14T18:05:02.291Z","status":"online","status_checked_at":"2026-04-15T02:00:06.175Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["android","android-root","kernel","kernel-module","kernelsu","magisk-module","root","susfs","vfs"],"created_at":"2026-03-06T01:09:00.764Z","updated_at":"2026-04-15T04:03:02.775Z","avatar_url":"https://github.com/Enginex0.png","language":"Rust","readme":"\u003cp align=\"center\"\u003e\n  \u003ch1 align=\"center\"\u003e👻 ZeroMount\u003c/h1\u003e\n  \u003cp align=\"center\"\u003e\u003cb\u003eMountless Module Loading for Rooted Android\u003c/b\u003e\u003c/p\u003e\n  \u003cp align=\"center\"\u003eYour modules. Stock mount tables. Zero traces.\u003c/p\u003e\n  \u003cp align=\"center\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/status-beta-orange?style=for-the-badge\" alt=\"Beta\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/KernelSU-supported-green?style=for-the-badge\u0026logo=android\" alt=\"KernelSU\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/Telegram-community-blue?style=for-the-badge\u0026logo=telegram\" alt=\"Telegram\"\u003e\n  \u003c/p\u003e\n  \u003cp align=\"center\"\u003e\n    English | 简体中文 | 繁體中文 | Türkçe | Português (Brasil) | 한국어 | Français | Bahasa Indonesia | Русский | Українська | ภาษาไทย | Tiếng Việt | Italiano | Polski | Български | 日本語 | Español | العربية | हिन्दी | Deutsch | Nederlands | Ελληνικά | Svenska | Norsk | Dansk\n  \u003c/p\u003e\n\u003c/p\u003e\n\n---\n\n\u003e [!WARNING]\n\u003e **ZeroMount is in beta.** Core functionality is tested end-to-end, but edge cases are expected across different devices, ROMs, and kernels. If something breaks, [open an issue](https://github.com/Enginex0/zeromount/issues).\n\n---\n\n## What is ZeroMount?\n\nZeroMount is a **mount orchestration engine** for rooted Android. It takes over your entire module loading pipeline — detecting kernel capabilities, scanning modules, planning mount strategies, executing with automatic fallback, applying stealth protections, and monitoring system health — all in a single coordinated boot sequence. The goal: load every module with zero trace.\n\nTraditional root modules use bind mounts or OverlayFS, which leave entries in `/proc/mounts` and `/proc/self/mountinfo` that detection apps find. ZeroMount's primary engine works at a lower level: it intercepts the kernel's VFS layer at `getname()`, redirecting file paths *before* the filesystem even processes them. Module files appear at stock system paths. Mount tables stay clean. Detection apps see a stock device.\n\nWhen the VFS driver isn't available, ZeroMount doesn't stop — it cascades through OverlayFS and MagicMount automatically, applying SUSFS stealth layers on top to hide whatever traces remain. It coordinates with peer modules, reconciles external SUSFS configurations, and guards against bootloops with multi-stage health monitoring. Every phase is orchestrated, every fallback is planned.\n\n\u003e **This is not a port of NoMount.** ZeroMount shares the same goal — kernel-level VFS redirection without mount pollution — but the architecture is entirely different in every layer: a custom kernel driver, a Rust userspace binary, SUSFS integration, a WebUI, and a multi-phase boot pipeline. Built from scratch.\n\n---\n\n## Features\n\n### Mount Engine\n- **VFS path redirection** — module files load at stock system paths, zero mount table entries\n- **3 mount strategies** — VFS (primary) → OverlayFS (fallback) → MagicMount (last resort), auto-selected based on kernel capabilities\n- **Per-module override** — force a specific mount strategy for individual modules\n- **Directory entry injection** — module files appear in `ls` and `readdir` as stock\n- **SELinux context injection** — redirected files carry correct labels, no AVC denials\n- **statfs spoofing** — system partitions report expected EROFS/ext4 magic\n\n### Stealth \u0026 Anti-Detection\n- **SUSFS integration** — path hiding, kstat spoofing, mount hiding, `/proc/maps` hiding, AVC log spoofing — all toggleable from the WebUI\n- **Property spoofing** — nukes or spoofs `ro.debuggable`, verified boot state, build fingerprint, serial number, and custom ROM markers via stealth `resetprop`\n- **Uname \u0026 cmdline spoofing** — kernel release, version, and `/proc/cmdline` can match stock values\n- **Process camouflage** — the ZeroMount binary appears as `[kworker/0:2]` in process listings\n- **d_path \u0026 mmap clean** — `/proc/PID/maps` and fd symlinks show unmodified metadata\n\n### Module Management\n- **Auto-scan** — discovers and loads all active modules from `/data/adb/modules/` at boot\n- **Hot load / unload** — add or remove module VFS rules at runtime without rebooting\n- **Module exclusions** — blacklist specific modules from loading entirely\n- **App exclusions** — exclude specific apps (by UID) from seeing redirected files\n- **Conflict resolution** — detects overlapping files across modules, last-installed wins\n- **Peer orchestration** — intercepts installs and uninstalls of other modules to maintain VFS compatibility\n\n### Safety \u0026 Recovery\n- **Bootloop guard** — monitors boot timeout, zygote stability, and SystemUI health; auto-disables the module and reboots on crash loops\n- **Volume-key safe mode** — hold both volume keys during boot for immediate recovery\n- **Config backup \u0026 rollback** — config is backed up before every boot pipeline and auto-restored on failure\n- **Recovery lockout** — after a guard trigger, ZeroMount stays disabled until explicitly re-enabled\n\n### WebUI\n- **Dashboard** — engine status, active rule count, hidden paths/maps count, capabilities, activity log\n- **Module manager** — scan, hot-load, and hot-unload modules\n- **App exclusions** — searchable per-app VFS bypass with one-tap exclude/include\n- **Module exclusions** — prevent specific modules from loading\n- **SUSFS panel** — 20+ toggles for path hiding, kstat, maps, mounts, uname, cmdline, and more\n- **Settings** — mount strategy, storage backend, property spoofing, guard thresholds, performance tuner\n- **Theming** — dark, light, AMOLED, system-auto; 6 accent colors or system color; adjustable glass effect\n- **Config export / import** — full backup and restore of your configuration\n\n### Extras\n- **Custom emoji fonts** — replace system emoji with NotoColorEmoji, with per-app injection for Facebook, GBoard, and GMS\n- **Performance tuner** — optional CPU governor tuning with input-boost daemon\n- **ADB root** — root shell in ADB via Axon injection, no global property changes\n- **OTA updates** — in-manager updates via `updateJson`\n\n---\n\n## How It Works\n\nZeroMount runs a multi-phase pipeline on every boot:\n\n1. **Detect** — probes the kernel for VFS driver, SUSFS capabilities, OverlayFS support, and storage backends. Writes a capability snapshot used by every phase that follows.\n2. **Scan \u0026 Plan** — discovers all modules in `/data/adb/modules/`, classifies every file, resolves cross-module conflicts, and generates a per-partition mount plan.\n3. **Execute** — selects the optimal mount strategy based on detected capabilities and applies it. Falls back automatically if a strategy fails — even per-module.\n4. **Stealth** — applies SUSFS protections: path hiding, kstat spoofing, maps hiding, mount hiding, AVC log spoofing, property spoofing, uname/cmdline spoofing. Layers stack based on what the kernel supports.\n5. **Guard** — spawns health monitors for boot timeout, zygote stability, and SystemUI. If any crash-loops, ZeroMount auto-disables itself and reboots to a safe state.\n\n### Mount Strategies\n\n| Strategy | Method | Mount table trace | Requires |\n|---|---|---|---|\n| **VFS** | Per-file redirection rules injected into a custom kernel driver (`/dev/zeromount`). Paths resolve before the filesystem sees them. | **None** | ZeroMount kernel driver |\n| **OverlayFS** | Per-partition overlay mounts with staged lower directories. | Visible (SUSFS can hide) | OverlayFS kernel support |\n| **MagicMount** | Individual bind mounts per file. | Visible | Nothing (always available) |\n\nThe cascade is automatic: VFS if the driver exists → OverlayFS if not → MagicMount as last resort. You can override the strategy globally or per-module from the WebUI.\n\n---\n\n## Requirements\n\n\u003e [!IMPORTANT]\n\u003e The VFS engine requires a **custom kernel** with the ZeroMount driver and SUSFS patches. Without it, ZeroMount still works via OverlayFS or MagicMount — but you won't get mountless redirection.\n\n1. Rooted Android device with an unlocked bootloader\n2. A supported root manager (KernelSU, APatch, or Magisk)\n3. A kernel with ZeroMount + SUSFS patches → **[Super-Builders](https://github.com/Enginex0/Super-Builders)**\n\n---\n\n## Compatibility\n\n### Tested Kernels\n\n| Android Version | Kernel | Status |\n|---|---|---|\n| Android 12 | 5.10.209 | ✅ Tested |\n| Android 15 | 6.6.66 | ✅ Tested |\n\n### Root Managers\n\n| Manager | Status | Notes |\n|---|---|---|\n| KernelSU | ✅ Tested | Full metamodule support |\n| APatch | ⚠️ Untested | Metamodule hooks present but not verified |\n| Magisk | ⚠️ Untested | Fallback pipeline exists but not verified on device |\n\n\u003e Tested on an unlisted combo? Let us know.\n\n---\n\n## Quick Start\n\n1. **Build or download a kernel** with ZeroMount + SUSFS patches from [Super-Builders](https://github.com/Enginex0/Super-Builders)\n2. **Flash the kernel** to your device\n3. **Install ZeroMount** — download the ZIP and install via your root manager\n4. **Reboot**\n5. **Open the WebUI** — root manager → ZeroMount → ⚙️\n\nThe dashboard shows engine status, detected capabilities, loaded modules, and everything is configurable from the Settings tab.\n\n---\n\n## Community\n\n```bash\n$ zeromount --connect\n\n ██████╗ ██████╗ ███╗   ██╗███╗   ██╗███████╗ ██████╗████████╗\n██╔════╝██╔═══██╗████╗  ██║████╗  ██║██╔════╝██╔════╝╚══██╔══╝\n██║     ██║   ██║██╔██╗ ██║██╔██╗ ██║█████╗  ██║        ██║\n██║     ██║   ██║██║╚██╗██║██║╚██╗██║██╔══╝  ██║        ██║\n╚██████╗╚██████╔╝██║ ╚████║██║ ╚████║███████╗╚██████╗   ██║\n ╚═════╝ ╚═════╝ ╚═╝  ╚═══╝╚═╝  ╚═══╝╚══════╝ ╚═════╝   ╚═╝\n\n [✓] SIGNAL    ──→  t.me/superpowers9\n [✓] CHANNEL   ──→  t.me/superpowers99\n [✓] UPLINK    ──→  kernel builds · bug triage · feature drops\n [✓] STATUS    ──→  OPEN — all operators welcome\n```\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://t.me/superpowers9\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/⚡_GROUP-SuperPowers_Telegram-black?style=for-the-badge\u0026logo=telegram\u0026logoColor=cyan\u0026labelColor=0d1117\u0026color=00d4ff\" alt=\"Telegram Group\"\u003e\n  \u003c/a\u003e\n  \u0026nbsp;\n  \u003ca href=\"https://t.me/superpowers99\"\u003e\n    \u003cimg src=\"https://img.shields.io/badge/📢_CHANNEL-SuperPowers_Updates-black?style=for-the-badge\u0026logo=telegram\u0026logoColor=cyan\u0026labelColor=0d1117\u0026color=00d4ff\" alt=\"Telegram Channel\"\u003e\n  \u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## 🙏 Credits\n\n- **[NoMount](https://github.com/maxsteeel/nomount)** — the project that inspired ZeroMount's approach to mountless module loading\n- **[BRENE](https://github.com/rrr333nnn333/BRENE)** — SUSFS automation\n- **[Hybrid Mount](https://github.com/Hybrid-Mount/meta-hybrid_mount)** by Hybrid Mount Org — metamodule architecture and frontend/backend structural design\n- **[HymoFS](https://github.com/Anatdx/HymoFS)** by Anatdx — hybrid mounting and kernel-level path manipulation\n- **[Mountify](https://github.com/backslashxx/mountify)** by backslashxx — mount solution and module management\n- **[Magisk](https://github.com/topjohnwu/Magisk)** by topjohnwu — the root solution that started it all\n- **[KernelSU](https://github.com/tiann/KernelSU)** by tiann — next-gen kernel root and module framework\n\n---\n\n## 📄 License\n\nThis project is licensed under the [GNU General Public License v3.0](LICENSE).\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cb\u003e👻 GHOST mode — because the best mounts are the ones nobody can find.\u003c/b\u003e\n\u003c/p\u003e\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenginex0%2Fzeromount","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fenginex0%2Fzeromount","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fenginex0%2Fzeromount/lists"}