Contributing
March 24, 2026 ยท View on GitHub
Ways to contribute
- Bug reports -open an issue with steps to reproduce
- New detection artifacts (PIF/Zygisk/Frida variants)
- Bypasses found -open a
[SECURITY]issue or contact the maintainer directly before going public - Code improvements, refactoring, tests
Build
./gradlew assembleDebug
./gradlew installDebug
./gradlew assembleRelease
Requires Android Studio Hedgehog+, NDK r25+, SDK 35.
Signature hash setup
Building from source means the APK integrity check will reject your binary since the signing key differs. To fix it:
- Add this temporarily to
MainActivity.ktinsideonCreate:
try {
val pi = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES)
pi.signatures?.forEach { sig ->
android.util.Log.w("SIG_HASH", "Hash: ${sig.hashCode()}")
}
} catch (_: Exception) {}
adb logcat | grep SIG_HASHto grab the value- Replace
EXPECTED_SIG_HASHinnative-lib.cppwith your hash - Remove the log block and rebuild
Code style
- Kotlin: standard Android conventions, no wildcard imports
- C++: C++17, explicit
std::, RAII for all resources, no debug logging in native code
Pull requests
- Fork and branch off
main - Test on a real device where possible
- Make sure
./gradlew assembleReleasepasses before opening the PR
License
Contributions are licensed under GPL-3.0.