Root hiding made simple, powerful when you need it. A KernelSU module and WebUI that turns SuSFS into clean config files and toggle switches for everyday use, with strong hiding applied out of the box via built-in spoofing and hiding scripts for one-tap protection, plus a script manager with scheduling for power users who want more, all without leaving the WebUI.
Important
KernelSU Next is not recommended.
KernelSU Next is currently unmaintained and has been observed engaging in anti-competitive behavior, including blacklisting the official ReSuSFS module without technical justification. This is not a security decision, it is a control decision.
Using an unmaintained kernel root solution can lead to:
- Instability and unexpected crashes.
- Bootloops that can leave your device unusable.
- Security vulnerabilities that will never be patched.
- Broken module compatibility as the ecosystem moves forward.
To protect your device and ensure you receive official support:
- Use KernelSU: The upstream, official root solution.
- Use BakaSU: A trusted, community-respected fork.
ReSuSFS is the only official SuSFS module for KernelSU. It is fully supported on KernelSU and BakaSU only.
Do not use KernelSU Next. Choose stability. Choose freedom. Choose official support.
Important
Future Direction
ReSuSFS will gradually move beyond SuSFS management. SuSFS will become optional, while development will focus more on UserHub, giving users greater freedom and control to create, manage, and automate their own scripts and configurations.
- KernelSU
- SuSFS support is optional, pick one:
- GKID Kernel with SuSFS built in
- A supported GKI kernel, ReSuSFS loads the SuSFS LKM for you (see SuSFS LKM)
- Download the latest release
- Flash the zip in KernelSU Manager
- Reboot (a full reboot is required after installing or updating, hot install is not supported)
- Strong hiding is applied automatically, no setup needed
- Optional: edit config files, or use the WebUI to fine-tune
When updating, ReSuSFS asks before touching your existing configs, and only asks for a backup if configs exist.
Note
v26.10.16 removed hidden_api_policy so ReSuSFS no longer enables hidden API access. If you edited your configuration before, review it after updating.
All optional, all live under /data/adb/ReSuSFS/. Missing or empty files mean "nothing to apply" for that feature, no errors. Entries are appended in the order they appear, top line first.
| File | What it does |
|---|---|
sus_paths.txt |
hide static/read-only paths |
sus_paths_loop.txt |
hide frequently changing paths |
sus_maps.txt |
hide mapped library files |
kstat_paths.txt |
spoof file stat for bind mounted paths |
open_redirect.txt |
redirect a path to another path |
uname.txt |
spoof kernel release/version |
cmdline_or_bootconfig.txt |
spoof /proc/cmdline or /proc/bootconfig |
config.txt |
toggle kernel flags (mount hiding, logging, avc spoofing) |
scripts/ |
built-in scripts for spoofing and hiding |
scripts_postfs.txt |
scripts to run at post-fs-data stage |
scripts_bootcompleted.txt |
scripts to run at boot-completed stage |
scripts_cron.txt |
scheduled scripts and their cron expressions |
cron.log |
start time, end time, and exit code of every scheduled run |
Kernels without built-in SuSFS (CONFIG_KSU_SUSFS=y) can still use it through the SuSFS guard LKM from susfs4ksu-lkm.
- Detected automatically from your kernel, nothing to configure
- Downloaded when you flash the module or run Action
- Loaded on every boot at post-fs-data
- Skipped when your kernel already has SuSFS built in
Supported KMIs: android12-5.10, android13-5.10, android13-5.15, android14-5.15, android14-6.1, android15-6.6, android16-6.12, android17-6.18. Custom kernels with a different KMI are not supported.
Files are stored in /data/adb/ReSuSFS_LKM/. If the download fails, ReSuSFS keeps the version you already have.
Pre-made scripts for common spoofing and hiding tasks. They live in /data/adb/ReSuSFS/scripts/ and are enabled by default for set-and-forget users. They can be disabled by removing their filenames from scripts_postfs.txt or scripts_bootcompleted.txt.
Strong hiding is applied out of the box with no configuration needed. Power users can fine-tune individual scripts via the WebUI or by editing the files directly.
| Script | Stage | What it does |
|---|---|---|
ReSuSFS_apply-cmdline-bootconfig.sh |
post-fs-data | hides bootloader unlock state from kernel cmdline/bootconfig |
ReSuSFS_apply-kstat-add.sh |
post-fs-data | hides file stats for framework-managed paths |
ReSuSFS_apply-ksu-settings.sh |
post-fs-data | sets KernelSU features for hiding and compatibility |
ReSuSFS_apply-uname.sh |
post-fs-data | spoofs kernel version and build info from uname |
ReSuSFS_apply-mount-hiding.sh |
boot-completed | hides module mounts redirected to system paths |
ReSuSFS_apply-props.sh |
boot-completed | spoofs root indicators and removes custom ROM fingerprints |
ReSuSFS_apply-settings.sh |
boot-completed | spoofs developer options and debugging states in system settings |
ReSuSFS_apply-sus-maps.sh |
boot-completed | hides zygisk libraries and module font files from memory maps |
ReSuSFS_apply-sus-paths-loop.sh |
boot-completed | hides recovery traces, root tools, and suspicious pty nodes |
ReSuSFS_apply-sus-paths.sh |
boot-completed | hides custom ROM traces and addon.d paths |
ReSuSFS_cleanup-markers.sh |
boot-completed | removes susfs leftover markers from shared storage |
- Strong hiding by default, built-in scripts are pre-enabled for set-and-forget users
- Status dashboard, see if SuSFS is active at a glance, tap for the full enabled-features breakdown straight from the kernel
- Configuration summary, live entry counts per feature and enabled script count, right on the home page
- Built-in code editor, full-screen editor for every config file and user script, no terminal needed
- File manager, browse storage and load a custom file straight into any feature, without overwriting your default
- User-friendly SuSFS configs, every feature exposed as its own clean box: edit, apply, or load custom
- Toggle switches, flip kernel flags (mount hiding, logging, avc spoofing) without touching raw text
- Built-in scripts manager, view, enable, or disable pre-made spoofing and hiding scripts from the WebUI
- UserHub, create, edit, run, and delete your own shell scripts, with per-script toggles to run automatically at post-fs-data and/or boot-completed
- Scheduling, run any script every few minutes, every few hours, or daily, no cron syntax needed
- Script tags, search, and sort, find scripts fast and filter by tag
- Run logs, see when each scheduled script last ran and what it returned, with colored output
- Backup and restore, export your whole config (and any UserHub scripts) into one archive, restore it on any device
- Reboot button, with confirmation, right in the header
- Back gesture support, back closes dialogs, the editor, and terminals before leaving the app, and asks before discarding unsaved changes
- Multi-language support
A tab for managing your own shell scripts without a terminal:
- Create a new script from a blank template, or import an existing
.shfile from storage - Edit any script in the same full-screen code editor used for config files
- Run a script on demand, output streams live in the WebUI
- Toggle a script to run automatically at
post-fs-dataand/orboot-completed - Schedule a script: every N minutes, every N hours, or daily at a set time
- Add tags to scripts, filter by tag, search by name, title, author, or description
- Sort by name, enabled first, or last modified
- See each script's last scheduled run and its exit code, open its full log, or open the combined schedule log from the log button
Scripts live under /data/adb/ReSuSFS/scripts/. Which scripts run at which stage is tracked in scripts_postfs.txt and scripts_bootcompleted.txt under the same directory. Schedules are stored in scripts_cron.txt and run through BusyBox crond. Every scheduled run writes START and END lines with the exit code to cron.log.
Script output follows the bracket tag style, and the WebUI colors it:
| Tag | Meaning |
|---|---|
[+] |
success |
[-] |
error |
[!] |
warning |
[>] |
action |
[*] |
info |
[%] |
banner |
Every command can be run manually via ReSuSFS <flag>. Useful for scripting, debugging, or if you just prefer terminal over WebUI.
_____ _____ _____ ______ _____
| __ \ / ____| / ____| ____/ ____|
| |__) |___| (___ _ _| (___ | |__ | (___
| _ // _ \\___ \| | | |\___ \| __| \___ \
| | \ \ __/____) | |_| |____) | | ____) |
|_| \_\___|_____/ \__,_|_____/|_| |_____/
Authors: ahmed-alnassif, simonpunk@gitlab.com
Version: v2.3.0
[%] status: active ✅ | susfs v2.3.0 (GKI) | features: 9 🧩
usage:
--action full apply (early+late stage)
--stage-early post-fs-data stage only
--stage-late boot-completed stage only
--status show susfs version / variant / enabled features
--status-report silently refresh module.prop's live status line
if [file] is given it is appended (deduped) into the default list, then applied:
--apply-sus-paths [file] add_sus_path from list
--apply-sus-paths-loop [file] add_sus_path_loop from list
--apply-sus-maps [file] add_sus_map from list
--apply-kstat-add [file] stage add_sus_kstat from list
--apply-kstat-update [file] commit update_sus_kstat from list
--apply-open-redirect [file] add_open_redirect from list
--apply-uname [file] set_uname from config
--apply-cmdline-bootconfig [file] set_cmdline_or_bootconfig from file
--apply-toggles <early|late> [file] apply hide_sus_mnts/enable_log/avc_log_spoofing from config
--run-script <file> run a user script from UserHub
--run-postfs-scripts run all UserHub scripts flagged for post-fs-data
--run-bootcompleted-scripts run all UserHub scripts flagged for boot-completed
--help displays this message
Every --apply-* flag accepts an optional file path. Passing one appends that file's contents into the default config file (deduplicated, comments preserved), then applies the merged default. It does not run standalone or get discarded after, it becomes a permanent part of your saved config:
ReSuSFS --apply-sus-paths /sdcard/my_paths.txtCheck status any time to confirm SuSFS is active and see which kernel features are enabled:
ReSuSFS --statusThe WebUI can export all your config files, built-in scripts, and UserHub scripts into a single archive, and restore from one. This makes it easy to share a working setup with the community, hand someone your config, or back it up before flashing something risky. Your strong hiding setup travels with you.
Export creates an archive in /storage/emulated/0/Download/. Send that file to anyone, they load it with Restore, done.
If ReSuSFS is useful to you, consider supporting development.
Join the discussion, get support, and stay up to date on ReSuSFS and other projects:
- Telegram Group: ahmed_alnassif_tg
Want to see ReSuSFS in your language? Head over to Weblate to contribute a translation.
- SuSFS by simonpunk
- susfs4ksu-lkm by inforcqb
- WebUI built on top of bindhosts by the bindhosts team
Ahmed Al-Nassif (@ahmed-alnassif)

