StackDroid is a Python-based CLI tool to analyze Android APK files and detect the underlying tech stacks and frameworks used (e.g., Flutter, Unity, React Native, Cordova, Kotlin, Firebase, etc.).
It uses apktool to decompile APKs and scans file names, paths, and contents for known tech signatures.
- Detects Android frameworks: Flutter, Unity, React Native, Cordova, Capacitor, Xamarin, etc.
- Uses signature-based matching via customizable JSON config.
- Categorized into three main types: Native, Web based, Hybrid
Requires: Python 3.6+,
apktoolin your system path.
git clone https://github.com/as33r/stackdroid.gitMake sure apktool is installed and available globally:
sudo apt install apktool # Debian/Ubuntupython stackdroid.py <apk_path> [options]
📋 Options
Option Description
-o, --output Output directory for apktool decompilation (default: /tmp/decompiled_apk)
-s, --signatures JSON file containing tech stack signatures (default: tech_stacks.json)
-v, --verbose Show exact file paths and line numbers for matched signatures
🧪 Example
python stackdroid.py sample_game.apk -v
Expected output:
[*] Loading tech stack signatures...
[*] Running apktool to decompile the APK...
[*] Detecting tech stacks used in the APK...
[MATCH:PATH] Flutter ← 'flutter_assets' matched in path: /tmp/decompiled_apk/assets/flutter_assets
[MATCH:CONTENT] Firebase ← 'firebase-config' found in /tmp/decompiled_apk/AndroidManifest.xml:45
[+] Detected Tech Stacks:
🔹 Flutter
🔹 Firebase
[✓] Cleaned up: removed temporary directory '/tmp/decompiled_apk'
You can edit tech_stacks.json to add, update, or remove tech signatures.
Example format:
{
"Flutter": ["libflutter.so", "flutter_assets", "dart:core"],
"Unity": ["libunity.so", "UnityPlayerActivity", "com/unity3d/player"]
}