Skip to content

Releases: niccellular/gadget

ATAK Plugin Gadget 0.2

Choose a tag to compare

@niccellular niccellular released this 26 Apr 01:41

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

  1. Install the mapping: Unzip mapping.zip, copy the file matching your ATAK version to <SDK>/mapping.txt
  2. Install Gadget: adb install the signed Gadget APK

Usage

  1. Build your plugin: ./gradlew assembleCivRelease (mapping applied automatically)
  2. Install it: adb install app/build/outputs/apk/civ/release/*.apk
  3. 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