Skip to main content

The complete Android APK toolkit — build, reverse engineer, extract metadata, manage devices

Project description

APKDev

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

pip install apkdev

Features

37 commands covering the full APK lifecycle — from zero to running APK, and from APK to modded rebuild.

🏗️ Build

Command What it does
apkdev new MyApp Scaffold a Kotlin + Compose + Material 3 project
apkdev build Compile APK via Gradle
apkdev sign app.apk Sign with debug/release 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

🧪 RE / Modding Pipeline

Command What it does
apkdev decode app.apk Decompile APK to smali with apktool
apkdev rebuild dir/ Rebuild APK from smali directory
apkdev sign app.apk Sign the rebuilt APK

🔬 Native Analysis

Command What it does
apkdev elf lib.so Parse ELF headers, sections, symbols
apkdev disasm lib.so Full ARM64/ARM/x86 disassembly with Capstone v5
apkdev strings lib.so Extract readable strings from binaries
apkdev patch lib.so Binary patching (hex, NOP, find/replace, dump)
apkdev debug lib.so Interactive hex viewer + patcher

🎯 Specialized RE

Command What it does
apkdev dart libapp.so Extract Dart AOT class/method names (Flutter)
apkdev go libgojni.so Extract Go function names (Go backends)

🔧 Setup & Utils

Command What it does
apkdev setup Auto-install Java, SDK, Gradle, aapt2, RE tools
apkdev doctor Check environment health
apkdev info app.apk Dump APK metadata
apkdev icon app.apk Extract app icon
apkdev manifest app.apk Print decoded manifest
apkdev permission app.apk List all permissions
apkdev cert app.apk Show certificate info
apkdev compare a.apk b.apk Diff two APKs

Quick start

# Install
pip install apkdev

# Setup everything (auto-installs Java, SDK, Gradle, RE tools)
apkdev setup

# Create and build a Compose + Material 3 app
apkdev new NotesApp
cd NotesApp
apkdev build      # → NotesApp/app/build/outputs/apk/debug/app-debug.apk

# Or de/reconstruct an existing APK
apkdev decode some.apk -o decoded/
# Edit smali files...
apkdev rebuild decoded/ -o modded.apk
apkdev sign modded.apk
apkdev install modded.apk

Zero-to-APK guarantee

apkdev handles everything automatically:

  • Java: Auto-installed via pkg (Termux), apt (Linux), brew (macOS), choco (Windows)
  • Android SDK: Downloaded + configured with platforms android-34/36
  • Gradle: Embedded wrapper generator
  • aapt2: Automatic ARM64 override for x86_64 JAR conflicts
  • RE tools: jadx, apktool, dex2jar, smali, baksmali, APKEditor, androguard, capstone

Tested zero-to-APK on Termux (ARM64) with full wipe. Works on Linux, macOS, Windows.

Modding workflow

# 1. Decode
apkdev decode target.apk -o decoded/

# 2. Edit smali (e.g., patch a login check)
# Change: if-eqz v4, :cond_0
# To:     if-nez v4, :cond_0

# 3. Rebuild
apkdev rebuild decoded/ -o modded.apk

# 4. Sign & install
apkdev sign modded.apk
apkdev install modded.apk

Tested end-to-end on real Flutter + Go APKs including Spotify-based apps.

Requirements

  • Python 3.8+
  • Android device or emulator (for install/uninstall commands)
  • Internet connection (first apkdev setup downloads SDK + tools)

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

apkdev-2.0.1-py3-none-any.whl (36.2 kB view details)

Uploaded Python 3

File details

Details for the file apkdev-2.0.1-py3-none-any.whl.

File metadata

  • Download URL: apkdev-2.0.1-py3-none-any.whl
  • Upload date:
  • Size: 36.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.13

File hashes

Hashes for apkdev-2.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 c3af168cd930ffaaa0cf5c4e1155f9abdd3fb916c481d75d9e4bcc53e9b0a542
MD5 852514c002a544488335baefe187c8f5
BLAKE2b-256 c4349e568c0afc75d3c88bb2a26def80f4f8944dff853236aabfdb489a26c5b7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page