Metadata-Version: 2.4
Name: apkdev
Version: 2.0.0
Summary: The complete Android APK toolkit — build, reverse engineer, extract metadata, manage devices
Author: cyberdash
License: MIT
Project-URL: Homepage, https://github.com/earendil-works/apkdev
Project-URL: Source, https://github.com/earendil-works/apkdev
Project-URL: BugTracker, https://github.com/earendil-works/apkdev/issues
Keywords: android,apk,reverse-engineering,apktool,jadx,smali,mobile,security
Classifier: Development Status :: 5 - Production/Stable
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Information Technology
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: Android
Classifier: Operating System :: POSIX :: Linux
Classifier: Operating System :: MacOS :: MacOS X
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.8
Classifier: Programming Language :: Python :: 3.9
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Programming Language :: Python :: 3.13
Classifier: Topic :: Security
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Embedded Systems
Classifier: Topic :: Utilities
Requires-Python: >=3.8
Description-Content-Type: text/markdown
Requires-Dist: click>=8.0
Requires-Dist: rich>=13.0

# APKDev

📱 **The complete Android APK toolkit** — build, reverse engineer, extract metadata, and manage devices.  
One `pip install` and you have everything you need to work with APKs.

```bash
pip install apkdev
```

## Features

**29 commands** covering the full APK lifecycle:

### 🏗️ Build
| Command | What it does |
|---------|-------------|
| `apkdev new MyApp` | Scaffold a Kotlin + Gradle project |
| `apkdev build` | Compile APK via Gradle |
| `apkdev sign app.apk` | Sign with debug key |
| `apkdev optimize app.apk` | Zipalign + sign in one step |

### 📲 Device (ADB)
| Command | What it does |
|---------|-------------|
| `apkdev install app.apk` | Install to device |
| `apkdev uninstall com.example` | Remove app |
| `apkdev pull com.example` | Pull APK from device |
| `apkdev packages` | List installed packages |
| `apkdev devices` | List connected devices |

### 🔍 Reverse Engineering
| Command | What it does |
|---------|-------------|
| `apkdev decode app.apk` | Decompile to smali/resources (apktool) |
| `apkdev rebuild dir/` | Rebuild APK from decoded dir |
| `apkdev decompile app.apk` | Decompile to Java source (jadx) |
| `apkdev baksmali classes.dex` | Disassemble to smali |
| `apkdev smali dir/` | Assemble smali → dex |
| `apkdev jar app.apk` | Convert DEX/APK to JAR |
| `apkdev apkeditor ...` | APKEditor (merge/split/modify) |

### 🔎 Inspection
| Command | What it does |
|---------|-------------|
| `apkdev inspect app.apk` | Full metadata (package, version, permissions, activities...) |
| `apkdev manifest app.apk` | AndroidManifest.xml dump |
| `apkdev permissions app.apk` | Permission list |
| `apkdev strings app.apk` | Resource string pool |
| `apkdev resources app.apk` | Resource table |
| `apkdev cert app.apk` | Signing certificate info |
| `apkdev ls app.apk` | List files inside APK |
| `apkdev extract app.apk` | Extract APK contents |
| `apkdev analyze app.apk` | Deep analysis (androguard + aapt2) |

### ⚙️ System
| Command | What it does |
|---------|-------------|
| `apkdev info` | Show installed tool versions |
| `apkdev doctor` | Check environment |
| `apkdev setup` | Auto-install everything |
| `apkdev completion` | Shell tab-completion |

## Requirements

- **Python 3.8+** is all you NEED
- **Java 17+** for building & RE (apkdev can install it)

## Quick Start

```bash
# Install
pip install apkdev

# Without Java — these 6 commands work immediately:
apkdev ls someapp.apk          # List files inside APK
apkdev extract someapp.apk     # Extract APK to folder
apkdev new MyApp               # Create new project
apkdev info                    # Check installed tools
apkdev doctor                  # Check what's missing

# Install Java + everything else:
apkdev setup                   # Auto-installs Java, SDK, all tools

# With Java — full power:
apkdev build                   # Build APK
apkdev decode someapp.apk      # Decompile to smali
apkdev decompile someapp.apk   # Decompile to Java
apkdev inspect someapp.apk     # Full metadata
```

## How Java Gets Installed

`apkdev setup` bootstraps Java via your platform's package manager:

| Platform | Method |
|----------|--------|
| **Termux/Android** | `pkg install openjdk-21` |
| **Linux (Debian)** | `sudo apt-get install openjdk-21-jdk` |
| **Linux (Fedora)** | `sudo dnf install java-21-openjdk-devel` |
| **Linux (Arch)** | `sudo pacman -S jdk21-openjdk` |
| **macOS** | Installs Homebrew → `brew install openjdk@21` |
| **Windows** | Installs Chocolatey → `choco install openjdk21` |

If auto-install fails, it tells you exactly what to do.

## Smart Abbreviations

All commands support unique prefixes:
```
apkdev n          → new
apkdev deco       → decode (ambiguous: decode/decompile → shows choices)
apkdev decom      → decompile
apkdev ins        → inspect
apkdev inf        → info
apkdev per        → permissions
```

## Why APKDev?

- **Complete** — 29 commands covering build, RE, inspection, device management
- **Zero compilation** — pure Python, works anywhere Python runs
- **Beautiful output** — rich tables, panels, syntax highlighting
- **Smart** — auto-patches platform-specific issues (aapt2 on ARM)
- **20KB wheel** — tiny footprint
