Repository navigation
Gadget v0.2
ATAK plugin that loads locally-built plugins on official ATAK releases, bypassing signature verification. Eliminates the multi-day TAK pipeline wait during plugin development.
Downloads
Gadget Plugin (Officially signed via TPP)
| File | ATAK Version |
|---|---|
ATAK-Plugin-gadget-0.2--5.5.0-civ-release.apk |
5.5.0 |
ATAK-Plugin-gadget-0.2--5.5.1-civ-release.apk |
5.5.1 |
ATAK-Plugin-gadget-0.2--5.6.0-civ-release.apk |
5.6.0 |
ATAK-Plugin-gadget-0.2--5.7.0-civ-release.apk |
5.7.0 |
ProGuard Mapping (required for local plugin builds)
| File | Contents |
|---|---|
mapping.zip |
mapping.txt files for each ATAK version |
Setup
- Install the mapping: Unzip
mapping.zip, copy the file matching your ATAK version to<SDK>/mapping.txt - Install Gadget:
adb installthe signed Gadget APK
Usage
- Build your plugin:
./gradlew assembleCivRelease(mapping applied automatically) - Install it:
adb install app/build/outputs/apk/civ/release/*.apk - Open Gadget in ATAK, tap Load
How It Works
Gadget uses a JNI-based ART method hook to replace AtakPluginRegistry.verifySignature and verifyTrust with return true, then calls ATAK's own loadPlugin(). ATAK handles all classloader setup,
ProGuard class resolution, and resource management — the loaded plugin runs identically to a pipeline-signed one.
The ProGuard mapping file ensures locally-built plugins use the same obfuscated class names as the official ATAK release (e.g., IServiceController → gov.tak.api.plugin.a).
What's New in v0.2
- JNI hooker for ART method replacement (replaces all previous classloader approaches)
- Support for ATAK 5.5.x, 5.6.x, and 5.7.x
- Card-based UI with load/unload/retry status indicators