APKInsight is a high-performance, enterprise-grade Android APK reverse engineering, static analysis, and architectural auditing platform built with Python 3.12+ and CustomTkinter.
It performs 100% offline decompilation, structured static code auditing, security scanning, resource mapping, and UI reconstruction to produce comprehensive interactive HTML, JSON, and CSV reports.
- ⚡ Single-Pass Parallel Analyzer Pipeline: Concurrent multi-threaded plugin execution across shared in-memory bytecode & AST contexts.
- 🛡️ Automated Security Audit: Detects hardcoded API keys (AWS, Google, Firebase), dynamic class loading (
DexClassLoader), reflection exploits, and unsafe WebViews. - 🌐 Network & API Mapping: Reconstructs Retrofit endpoints, OkHttp interceptors, authorization headers, and GraphQL/REST request targets.
- 🗄️ Database Intelligence: Reconstructs Room entities, DAOs, SQLite queries, and relational schemas.
- 🎨 UI Hierarchy & Modern Android: Deep inspection for Jetpack Compose, Navigation graphs, Material themes, ViewBinding, and Activity/Fragment component lifecycles.
- ⚛️ React Native & Native Libraries: Resolves React Native modules, navigation routes, and JNI
.solibrary exported symbols. - 📊 Multi-Format Export & Comparison: Generates interactive HTML dashboards, structured JSON pipeline logs, CSV metrics, and side-by-side APK diff comparison reports.
The codebase follows a modular single-responsibility design:
APKInsight/
├── main.py # Primary Application Launcher & CLI Entrypoint
├── src/
│ ├── core/ # Analysis Engine Core
│ │ ├── analyzer_manager.py # Orchestrator & Parallel Worker Pool Manager
│ │ ├── apk_extractor.py # Decompilation Wrapper (APKTool & JADX)
│ │ ├── manifest_parser.py # AndroidManifest.xml Schema Inspector
│ │ ├── resource_parser.py # Layouts, Drawables, Strings & Theme Inspector
│ │ ├── code_analyzer.py # Decompiled Java/Kotlin AST Structure Analyzer
│ │ ├── advanced_analyzer.py# Deep Asset, Screen Hierarchy & Proof Generator
│ │ └── plugins/ # Specialized Analyzer Plugins (Security, DB, Network, Arch, etc.)
│ ├── gui/ # Modern Dark/Light CustomTkinter Desktop Interface
│ └── utils/ # Workspaces, Logging, Configuration & Caching
├── tools/ # Default Host Directory for APKTool & JADX Binaries
├── reports/ # Target Output Directory for HTML, JSON & CSV Reports
└── tests/ # Full Unit Test & Accuracy Regression Suite
- Python 3.12+ installed on your system.
- Java Runtime Environment (JRE / JDK 11+) available in system PATH.
- Decompilation binaries (APKTool & JADX):
- Option A (System PATH - Recommended): Install via
scoop/brew/apt(scoop install apktool jadx). - Option B (Local Bundled): Place
apktool.jar/ wrapper insidetools/apktool/and JADX insidetools/jadx/.
- Option A (System PATH - Recommended): Install via
# Clone the repository
git clone https://github.com/solo12345689/APKInsight.git
cd APKInsight
# Install Python dependencies
pip install -r requirements.txt
# Run the Desktop Application GUI (Default mode)
python main.pyNote: Running main.py without any arguments opens the interactive Desktop GUI. If arguments are passed, it runs in command-line (CLI) mode.
To launch the CustomTkinter visual dashboard interface:
- Open your terminal in the project directory.
- Run:
python main.py
- Use the GUI to:
- Select a target
.apkfile using the file browser. - View live Log streams, memory allocation charts, and progress bars.
- Customize JADX/APKTool execution paths in the Settings view.
- Open the explorer panel to browse decompiled components.
- Select a target
Perform headless batch analysis or generate pipeline reports directly from the terminal:
# Standard Analysis (Generates HTML & JSON in reports/)
python main.py -f path/to/application.apk
# Custom Output Directory with CSV Export
python main.py -f path/to/application.apk -o output/directory/ --csv
# Compare Two APKs Side-by-Side (Diff Analysis)
python main.py --compare app_v1.apk app_v2.apk -o reports/comparison/APKInsight features a zero-regression unit test suite:
python -m unittest discover testsDistributed under the MIT License. See LICENSE for details.