Skip to content

solo12345689/APKInsight

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

APKInsight 🔍📱

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.


🚀 Key Features

  • 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 .so library exported symbols.
  • 📊 Multi-Format Export & Comparison: Generates interactive HTML dashboards, structured JSON pipeline logs, CSV metrics, and side-by-side APK diff comparison reports.

🛠️ Architecture Overview

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

💻 Installation & Setup

Prerequisites

  1. Python 3.12+ installed on your system.
  2. Java Runtime Environment (JRE / JDK 11+) available in system PATH.
  3. 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 inside tools/apktool/ and JADX inside tools/jadx/.

Quickstart

# 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.py

Note: Running main.py without any arguments opens the interactive Desktop GUI. If arguments are passed, it runs in command-line (CLI) mode.


🖥️ Desktop GUI Usage

To launch the CustomTkinter visual dashboard interface:

  1. Open your terminal in the project directory.
  2. Run:
    python main.py
  3. Use the GUI to:
    • Select a target .apk file 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.

🖥️ Command Line Usage (CLI)

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/

🧪 Testing & Quality Assurance

APKInsight features a zero-regression unit test suite:

python -m unittest discover tests

📄 License

Distributed under the MIT License. See LICENSE for details.

About

APKInsight is a high-performance, enterprise-grade Android APK reverse engineering, static analysis, and architectural auditing platform

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages