An Android security tool that detects whether Play Integrity Fix or related tampering modules are active on a device. Built in native C++ and Java with a custom bytecode VM, runtime string obfuscation, and multi-layer behavioral detection.
- Play Integrity Fix — scans
/proc/self/mapsfor injected PIF classes, checks known system properties and config file paths - Zygisk / Magisk — maps scan for zygisk libs,
rwxppermission anomalies onlibandroid_runtime.so, env vars, system properties - Frida / Xposed —
/proc/net/unixsocket scan, parent process cmdline check - Debuggers —
TracerPidfrom/proc/self/status - Unlocked bootloader —
ro.boot.verifiedbootstate,ro.boot.veritymode,ro.boot.flash.locked - APK tampering — signing certificate hash pinned in native code, debuggable flag check
PIF runs as a Zygisk module and:
- Hooks
__system_property_read_callbackto spoof build properties (ro.build.version.sdk,ro.build.version.security_patch,ro.build.id) - Injects
classes.dexat runtime intocom.google.android.gms.unstable - Uses reflection to modify
android.os.Buildfields and inject a customKeyStoreSpiprovider into AndroidKeyStore
Detection logic runs inside a custom VM with 30+ opcodes rather than direct function calls, making it harder to hook individual checks. Sensitive strings are XOR + Base64 encoded and decoded at runtime only. The JNI entry point uses a random function name with class/method names decoded in JNI_OnLoad.
app/src/main/
├── java/.../MainActivity.java — UI, background thread runner
└── cpp/
├── CMakeLists.txt
└── native-lib.cpp — VM, detection engine, JNI bridge
Return values from the native layer:
| Value | Meaning |
|---|---|
-1 |
Debugger or Frida detected |
0 |
Clean |
1 |
PIF, Zygisk, or compromised bootloader |
./gradlew installDebug # debug build + install
./gradlew assembleRelease # release buildRequires NDK r25+, Android Studio Hedgehog or later, SDK 35.
If you build from source with your own signing key, update
EXPECTED_SIG_HASHinnative-lib.cpp. See CONTRIBUTING.md for how.
- Android 7.0+ (API 24)
See CONTRIBUTING.md.
| Name | GitHub |
|---|---|
| Ir0nByte | @IR0NBYTE |
GPL-3.0 — derivative works must stay open source.
This tool is for defensive security research. Use it only on devices you own or have permission to test.