A02
Root hiding (DenyList, Shamiko)Validated
Magisk DenyList hides su and the root mounts, but an unlocked bootloader and the Magisk app still give the device away.
How to read this page
A scenario is one test case: prepare the environment, run the steps, then compare the expected result (written before the run) with the observed result (copied from the run, with screenshots).
- A02 · A
- Run on a real phone that's been attacked or modified — rooted, jailbroken, hooked or hidden.
- Validated
- Run, and the result matched what was expected.
Why it matters
Client-side checks can be hidden. Publishing what evades them is part of an honest threat model.
Environment
- App
- Example app, library 0.3.0
- Device
- OnePlus Nord 3 (CPH2493), Android 15, bootloader unlocked
- Root
- Magisk 31 with Zygisk on and the example app in the DenyList
Setup
Prepare the environment.Then run the steps.
- 01Enable Zygisk in Magisk and reboot.
- 02Turn on Enforce DenyList and add the example app.
- 03Optional: Shamiko, for stronger hiding (not yet tested).
Steps
What to run.What to read.
- 01Open the app.
- 02Record which signals remain.
Expected result · written before the run
No single pass/fail status.No signals.
Outcome is a documented result, not a pass/fail.
Observed result · copied from the run
Status: compromisedObserved 2026-10-02.
DenyList unmounted Magisk's files for the app, so root_su_binary and root_magisk_files disappeared (both fire with no hiding). bootloader_unlocked (verified boot state orange) and root_management_apps (the Magisk app is installed) survived, so the device still reports compromised. Renaming the Magisk app and spoofing the boot properties with resetprop would hide those too.
Status: COMPROMISED · Duration: 115 ms · Ignored: 0 · Signals (2) · [environment] bootloader_unlocked: The device bootloader is unlocked · [root] root_management_apps: A root or privilege-management app is installed
Limitations
Some or all root signals may be hidden. That is a known limitation of client-side detection.
Shamiko and a renamed (hidden) Magisk app have not been tested yet; they are expected to remove root_management_apps as well.
Checks this scenario covers
Every check this test case touches — including ones that aren't expected to fire here. The expected and observed results above say which ones should and did. Each links to how the check works.