Modules / meta-hybrid

Hybrid Mount

META

Next Generation Mounting Matemodule with OverlayFS and Magic Mount.

README

Hybrid Mount

Language Platform License Telegram

Hybrid Mount is a next-generation hybrid mount metamodule designed for KernelSU and APatch. Written in native Rust, it orchestrates multiple mounting strategies— OverlayFS and Magic Mount—to provide the ultimate module management experience with superior performance, stability, and stealth.

This project features a modern WebUI built with Svelte, offering real-time status monitoring, granular module configuration, and log inspection.

🇨🇳 中文 (Chinese)


✨ Core Features

🚀 Dual Hybrid Engine

Meta-Hybrid intelligently selects the best mounting strategy for each module:

  1. OverlayFS: Efficient filesystem merging technology that delivers excellent I/O performance.
  2. Magic Mount: A reliable fallback mechanism used when other methods are unavailable, ensuring maximum compatibility.

🛡️ Diagnostics & Safety

  • Conflict Monitor: Detects file path conflicts between modules, helping you resolve overrides effectively.
  • System Health: Built-in diagnostics to identify dead symlinks, invalid mount points, and potential bootloop risks.
  • Smart Sync: Only synchronizes changed modules by comparing module.prop checksums, drastically reducing boot time.

🔧 Advanced Control

  • Dynamic TempDir: Automatically utilizes existing empty system directories (e.g., /debug_ramdisk) as temporary mount points to minimize traces on /data.
  • Umount Strategies: Configurable unmount behaviors to support complex environments (e.g., ZygiskSU coexistence).

⚙️ Configuration

The configuration file is located at /data/adb/meta-hybrid/config.toml. You can edit it manually or via the WebUI.

Key Type Default Description
moduledir string /data/adb/modules/ Directory where modules are installed.
mountsource string KSU Identify the mount source type.
partitions list [] Specific partitions to mount (empty = auto-detect).
enable_nuke bool false Enable aggressive cleanup mode.
force_ext4 bool false Force creation of ext4 images for loop devices.
disable_umount bool false Disable unmounting (for troubleshooting).
allow_umount_coexistence bool false Allow coexistence with other unmount solutions.
dry_run bool false Simulate operations without making changes.
verbose bool false Enable detailed logging.

🖥️ WebUI

Access the WebUI (via KernelSU Manager or browser) to:

  • Dashboard: Monitor storage and kernel version.
  • Modules: Toggle mount modes (Overlay/Magic) per module and view file conflicts.
  • Config: Visually edit config.toml parameters.
  • Logs: Stream the daemon logs in real-time.

🔨 Build Guide

This project uses Rust’s xtask pattern for a unified build process.

Requirements

  • Rust: Nightly toolchain (via rustup)
  • Android NDK: Version r27+
  • Node.js: v20+ (for WebUI)
  • Java: JDK 17 (for environment)

Build Commands

  1. Clone Repository

    git clone --recursive [https://github.com/YuzakiKokuban/meta-hybrid_mount.git](https://github.com/YuzakiKokuban/meta-hybrid_mount.git)
    cd meta-hybrid_mount
    
  2. Full Build (Release) Compiles WebUI, Rust binaries (arm64, x64, riscv64), and packages the ZIP:

    cargo run -p xtask -- build --release
    

    Artifacts will be in output/.

  3. Binary Only Skip WebUI build for faster iteration on Rust code:

    cargo run -p xtask -- build --release --skip-webui
    

🤝 Contributions & Credits

  • Thanks to all contributors in the open-source community.
  • License: This project is licensed under the GPL-3.0 License.

Release History

v2.0.51

Published on January 14, 2026
Download

v2.0.51

Changes since v2.0.5:

  • fix: resolve clippy collapsible_if error in sync logic
  • feat: implement atomic sync and limit thread concurrency
  • feat: prune empty directories after module sync
  • fix: remove unused import of bail from anyhow
  • webui: fix modules filter
  • Refactor: Implement robust try_umount fallback strategy
  • chore(release): bump version to v2.0.5 [skip ci]

v2.0.47

Published on January 13, 2026
Download

v2.0.47

Changes since v2.0.46:

  • chore: add remove personal id from modules.json

v2.0.5

Published on January 14, 2026
Download

v2.0.5

Changes since v2.0.47:

  • webui(fix): remove box shadow in ModulesTab
  • Fix: Enhance sync reliability, stability and xattr detection
  • chore(release): bump version to v2.0.47 [skip ci]

v2.0.45

Published on January 13, 2026
Download

v2.0.45

Changes since v2.0.41:

  • webui: refactor modulestab

v2.0.4

Published on January 13, 2026
Download

v2.0.4

Changes since v2.0.25:

  • Fix: Enhance system stability and sync reliability
  • fix: make clippy happy
  • fix: magic mount sync logic
  • Add Ukrainian localization and fix Config UI (#120)
  • chore: update license headers [skip ci]
  • Reapply "fix(mount): register missing mount points to umount list"
  • Revert "fix(mount): register missing mount points to umount list"
  • fix(core): set mount propagation to private for storage
  • fix: remove /apex from BUILTIN_PARTITIONS
  • fix(mount): register missing mount points to umount list
  • chore(release): bump version to v2.0.3 [skip ci]
  • fix dead code warnings in executor and utils
  • fix: make clippy happy
  • refactor(core): use hybrid_mnt_dir for magic mount workspace
  • fix(webui): fix storage status retrieval by reading state file directly
  • fix: make clippy happy
  • Revert "Refactor: Implement OverlayLayout strategy and enforce strict storage containment"
  • fix: make clippy happy
  • fix: add const remove by mistake
  • Fix: remove unused ensure_clean_dir and resolve clippy lints
  • Fix: prevent accidental deletion of modules directory
  • chore: remove make ext4 during install
  • 添加模块释放文件 (#119)
  • chore: remove unused const
  • fix: make clippy happy
  • fix: make clippy happy
  • Refactor: Remove deprecated overlayfs mount helpers
  • Backport(it): Sync upstream storage logic and utils
  • Refactor: Remove hardcoded OVERLAY_SOURCE and propagate mount source from config
  • Refactor: Implement OverlayLayout strategy and enforce strict storage containment
  • feat: support APatch by making KernelSU dependency optional
  • refactor(storage): integrate overlayfs mount utilities
  • chore: remove post apatch support
  • fix: resolve dead code and clippy warnings
  • fix(mount): clean unused import and fix OsStr conversion
  • workflow: remove java setup
  • fix(mount): migrate log to tracing and fix compilation errors
  • backport(it): refactor mount architecture and update executor
  • fix: make clippy happy
  • chore: use tracing instead of logger
  • refactor: unify logging system to tracing
  • chore(deps): bump libc from 0.2.179 to 0.2.180 (#116)
  • chore(deps): bump toml from 0.9.10+spec-1.1.0 to 0.9.11+spec-1.1.0 (#117)
  • chore(deps): bump ksu from f6b9700 to 47459ed (#118)
  • chore(release): bump version to v2.0.25 [skip ci]

v2.0.25

Published on January 10, 2026
Download

v2.0.25

Changes since v2.0.24:

  • fix: make clippy happy
  • fix: make clippy happy
  • feat(webui): replace donation link with interactive dialog containing contributor QR codes
  • Revert "feat: enhance security and robustness of filesystem operations"
  • Revert "chore(webui): remove legacy svelte artifacts"
  • Revert "chore(webui): remove legacy svelte artifacts and improve rust safety"
  • add org to authors
  • chore(release): bump version to v2.0.24 [skip ci]

v2.0.3

Published on January 11, 2026
Download

v2.0.3

Changes since v2.0.24:

  • fix: make clippy happy
  • fix: make clippy happy
  • feat(webui): replace donation link with interactive dialog containing contributor QR codes
  • Revert "feat: enhance security and robustness of filesystem operations"
  • Revert "chore(webui): remove legacy svelte artifacts"
  • Revert "chore(webui): remove legacy svelte artifacts and improve rust safety"
  • add org to authors
  • chore(release): bump version to v2.0.24 [skip ci]

v2.0.23

Published on January 8, 2026
Download

v2.0.23

Changes since v2.0.22:

  • fix:make clippy happy
  • refactor: migrate KernelSU logic to ksu crate
  • chore(deps): bump clap from 4.5.53 to 4.5.54 (#110)
  • chore(deps-dev): bump vite from 7.3.0 to 7.3.1 in /webui (#111)
  • chore(deps): bump libc from 0.2.178 to 0.2.179 (#112)
  • chore(deps): bump serde_json from 1.0.148 to 1.0.149 (#113)
  • chore(release): bump version to v2.0.22 [skip ci]

v2.0.22

Published on January 7, 2026
Download

v2.0.22

Changes since v2.0.21:

  • feat: enhance tmpfs xattr detection and sync supported modes to WebUI
  • chore(release): bump version to v2.0.21 [skip ci]

v2.0.21

Published on January 7, 2026
Download

v2.0.21

Changes since v2.0.2:

  • chore: set owner to org
  • chore(release): bump version to v2.0.2 [skip ci]

v2.0.11

Published on January 3, 2026
Download

v2.0.11

Changes since v2.0.1:

  • fix: use correct mkfs.erofs path
  • feat(webui): add dynamic logo for development versions
  • chore(release): bump version to v2.0.1 [skip ci]

v2.0.2

Published on January 6, 2026
Download

v2.0.2

Changes since v2.0.11:

  • fix: resolve clippy lints and dead code warnings
  • enhance(overlay): improve stealth, reliability and .replace support
  • fix(overlay): prevent incorrect umount of overlay root and remove chdir side-effect
  • feat: enhance theme engine and disable viewport zooming
  • 清理安装后的无用文件减少模块占用 (#107)
  • chore: update license headers [skip ci]
  • fix(core): remove inconsistent ZygiskSU check in try_umount
  • chore(release): bump version to v2.0.11 [skip ci]

v2.0.1

Published on January 3, 2026
Download

v2.0.1

Changes since v2.0.0:

  • fix: make clippy happy
  • Fix critical concurrency, atomicity, and panic issues
  • fix: make clippy happy
  • fix: restore ksu_nuke_sysfs and resolve utils compilation errors
  • refactor(mount): backport overlayfs API v2 and magic mount improvements
  • chore(deps): bump ksu from 23c3219 to f6b9700 (#102)
  • Reapply "fix: use extattr to test overlay" (#99)
  • Revert "fix: use extattr to test overlay" (#99)
  • style(ui): add smooth transition for navbar adaptation
  • fix: initialize TMPFS static in executor
  • fix: make clippy happy
  • feat: migrate to ksu crate for umount handling
  • workflow: remove pnpm cache
  • dropped repair_rw_contexts (#98)
  • chore(release): bump version to v2.0.0 [skip ci]

v2.0.0

Published on December 31, 2025
Download

v2.0.0

Changes since v1.9.55:

  • chore(deps): bump serde_json from 1.0.147 to 1.0.148 (#96)
  • workflow: use pnpm
  • feat(ui): optimize animations and ux
  • webui: rewrite webui with solidjs
  • chore(release): bump version to v1.9.55 [skip ci]

v1.9.55

Published on December 31, 2025
Download

v1.9.55

Changes since v1.9.53:

  • chore: fmt
  • fix: use extattr to test overlay
  • add rustfmt.toml
  • style: Follow the standards
  • feat: sync meta-overlayfs (#94)
  • chore: update license headers [skip ci]
  • chore(release): bump version to v1.9.53 [skip ci]

v1.9.53

Published on December 28, 2025
Download

v1.9.53

Changes since v1.9.41:

  • chore (#93)
  • 补充描述 (#92)
  • chore(release): bump version to v1.9.52 [skip ci]
  • utils: fix SELinux permission denied on tmpfs/EROFS
  • fix(core): smart selinux context repair for system/vendor partitions
  • chore(release): bump version to v1.9.51 [skip ci]
  • feat: support trusted.overlay.opaque xattr for replace dir detection
  • fix: log phase
  • Revert "refactor(utils): simplify selinux handling to match cp -a behavior"
  • deps: removed unused deps (#90)
  • chore(release): bump version to v1.9.5 [skip ci]
  • fix: fix mount overlayfs lower error (#89)
  • fix: fix module files execute failed (#87)
  • Update and rename metainstall.sh to post-fs-data.sh
  • Update and rename metamount.sh to service.sh
  • Delete module/metauninstall.sh
  • Update customize.sh
  • Enhance uninstall script with module checks
  • feat: allow customizing mount point path
  • feat: divide && move
  • feat: add KernelSU check (#83)
  • refactor(utils): simplify selinux handling to match cp -a behavior

v1.9.52

Published on December 28, 2025
Download

v1.9.52

Changes since v1.9.51:

  • utils: fix SELinux permission denied on tmpfs/EROFS
  • fix(core): smart selinux context repair for system/vendor partitions
  • chore(release): bump version to v1.9.51 [skip ci]

v1.9.51

Published on December 28, 2025
Download

v1.9.51

Changes since v1.9.5:

  • feat: support trusted.overlay.opaque xattr for replace dir detection
  • fix: log phase
  • Revert "refactor(utils): simplify selinux handling to match cp -a behavior"
  • deps: removed unused deps (#90)
  • chore(release): bump version to v1.9.5 [skip ci]

v1.9.33

Published on December 27, 2025
Download

v1.9.33

Changes since v1.9.32:

  • Fix(granary): correct state file path for backups and refactor mount parsing logic to utils
  • Refactor: centralize module ID extraction logic into utils to eliminate code duplication
  • Refactor(storage): remove duplicated unsafe SELinux logic and reuse utils implementation

v1.9.32

Published on December 27, 2025
Download

v1.9.32

Changes since v1.9.31:

  • Refactor: merge SELinux context repair into recursive file copy to reduce IO overhead
  • chore(release): bump version to v1.9.31 [skip ci]

Module Details

Module ID
meta-hybrid
501
Stars
20
Releases

Latest Version

v2.0.51
Released 1/14/2026
Download Now