AI summary
Android 12+ root module that applies per-app rules to hide selected storage paths through MediaProvider and FUSE. Supports LSPosed/libxposed and Zygisk; hooks internal Android components that may change between releases.
Generated by AI. May contain inaccuracies.
Screenshots
About this app
FuseHide is an Android 12+ storage-visibility module and MediaProvider/FUSE research tool. It injects into the MediaProvider process and hooks the userspace FUSE implementation in libfuse_jni.so, allowing selected apps to see a filtered view of /storage/emulated/0 (/sdcard) according to runtime-configurable, per-UID rules.
FuseHide currently provides two injection backends:
LSPosed / libxposed, using the Android app as an Xposed module.
Standalone Zygisk, using a flashable root-module package and Dobby-based native hooks without requiring LSPosed.
Both backends converge on the same libfusehide.so runtime, the same path policy, and the same configuration model.
FuseHide also keeps the original MediaProvider-oriented Unicode research and mitigation path for Android/data and Android/obb. Normal /sdcard path hiding and the special Android/data / Android/obb path are related to the same MediaProvider process, but they are not the same hook path.
Warning
FuseHide works by hooking internal MediaProvider and FUSE implementation details. These ABIs are not public Android APIs and can change between Android releases, MediaProvider updates, and vendor ROMs. The project deliberately skips unsafe hooks when an ABI cannot be verified instead of blindly applying offsets or layouts.
Features
Hide first-level entries under /storage/emulated/0 for selected packages.
Hide nested relative paths such as Download/private without hiding their visible parent directory.
Define package-specific hide rules in addition to global rules.
Optional stress-test mode for hiding all first-level entries except configured exemptions.
Filter directory enumeration as well as direct lookup/access paths.
Reduce cache-based visibility leaks through entry/attribute timeout control and active invalidation.
Hot-reload hide configuration into the already injected MediaProvider process.
Query the actual native configuration currently applied inside MediaProvider.
LSPosed/libxposed backend and standalone Zygisk backend.
Runtime ELF, file-backed ELF, relocation and verified device-profile based hook resolution.
Compatibility handling for multiple MediaProvider directory-entry ABIs, including newer API 37 layouts.
Debug/probe UI for filesystem operations and Unicode-path experiments.
Requirements
FuseHide currently targets:
Android 12 / API 31 or newer.
MediaProvider package:
com.android.providers.media.module, or
com.google.android.providers.media.module.
For the LSPosed backend, a compatible LSPosed/libxposed environment is required.
For the Zygisk backend, a compatible root environment and Zygisk implementation are required. The packaged installer supports Magisk-compatible installation flows and KernelSU-style module installation; the actual runtime still depends on a working Zygisk implementation on the device.
What's new
- build(deps): bump gradle-wrapper from 9.8.1 to 9.8.2 (#112)
- Bumps [gradle-wrapper](https://github.com/gradle/gradle) from 9.8.1 to 9.8.2. - [Release notes](https://github.com/gradle/gradle/releases) - [Commits](https://github.com/gradle/gradle/compare/v9.8.1...v9.8.2)
- -- updated-dependencies: - dependency-name: gradle-wrapper dependency-version: 9.8.2 dependency-type: direct:production update-type: version-update:semver-patch ...
- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: dependabot[bot] <xiaotong6666@users.noreply.github.com>
About this version
- Version
- 1.193 (193)
- Size
- 7.33 MB
- Requires Android
- 12
- Target SDK
- 31
- Architecture
- arm64-v8a, armeabi-v7a, x86, x86_64
- Downloads
- 11
- Updated
- Oct 25, 2026
- Package
- io.github.xiaotong6666.fusehide
Similar apps
Ratings & reviews
- 50
- 40
- 30
- 20
- 10