Open-source TAK (Team Awareness Kit) client for Android, built with Kotlin + Jetpack Compose.
OmniTAK speaks Cursor-on-Target (CoT) over TLS to any TAK Server, supports tactical map rendering via MapLibre, ADS-B traffic display, Meshtastic radios, drawing tools, and more — designed for search-and-rescue, civil defense, and outdoor operations.
Bring your own TAK Server. OmniTAK is a client. Stand up TAK Server (community CIV edition), OpenTAKServer, or taky and point OmniTAK at it.
OmniTAK for Android is in Google Play closed testing, and every tester helps push it toward the public Play Store release. The iOS build is already live on the App Store.
To test the Android build: drop your Google-account email in the Beta section at omnitak.engindearing.soy and you will get the install link by email. Free, no ads, Apache 2.0.
Current release: v0.38.0 (versionCode 97) — 2D map rendering batch: dropped markers, contacts, and operator drawings now render on the 2D map across all GPUs, imported KML renders fully (points, lines, and polygons) with clustering for large files, markers refresh instantly on create/edit/delete, and tap-to-edit + lasso select/delete reliably hit dropped markers. Builds on 0.37.0 (KML pins, red-framed coords, offline regions, icon-pack import, FEMA symbols, QR enrollment, EN/PL/DE/FR).
- Signed APK (sideload): OmniTAK-0.38.0-vc97.apk
- Always-latest APK: releases/latest
- Google Play (closed testing): sign up at omnitak.engindearing.soy with your Google-account email
Upgrading? versionCode is monotonic — every release ratchets the integer up. Android allows in-place upgrade as long as the signing cert is unchanged.
Verify the APK before installing — signing cert SHA-256 should be 9f3b1fd54ad4eb1dc5b45d91deac4699869617d3d2ac425a1b70337aa0eb13af:
apksigner verify --print-certs OmniTAK-0.38.0-vc97.apk| KML pins + labels | Red-framed coordinates | Large KML (1,286 placemarks) |
|---|---|---|
![]() |
![]() |
![]() |
- TAK Server connectivity — TCP / TLS / mTLS with client-certificate enrollment
- Cursor-on-Target — full CoT XML parser, marker rendering, server messaging
- Tactical map — MapLibre Native Android with custom layers (contacts, drawing, aircraft, mesh nodes, grid, measurement)
- ADS-B traffic — aircraft overlay with bring-your-own provider
- Meshtastic — TCP connection to Meshtastic mesh radios
- Drawing tools — points, lines, polygons, range/bearing, measurement
- Multi-server management — connect to multiple TAK servers
- Radial menu — quick actions on map long-press
- Material 3 dark theme — tactical color palette
- Android 8.0 (API 26) or later
- Android Studio Ladybug or later (for development)
- JDK 17
- A TAK Server you can reach (BYO — see above)
git clone https://github.com/engindearing-projects/OmniTAK-Android.git
cd OmniTAK-Android
./gradlew assembleDebugThe debug APK lands at app/build/outputs/apk/debug/app-debug.apk.
To install on a connected device:
./gradlew installDebugOr open the project in Android Studio and run normally — debug builds work out-of-the-box without any signing key configuration.
To produce a release APK signed with your own upload key:
- Generate an upload keystore:
keytool -genkey -v -keystore my-upload.jks -keyalg RSA -keysize 2048 -validity 10000 -alias upload
- Copy
keystore.properties.exampletokeystore.properties(gitignored) and fill in your values - Build:
./gradlew assembleRelease
If keystore.properties is absent, release builds gracefully fall back to the debug signing config so the project always builds.
app/src/main/kotlin/soy/engindearing/omnitak/mobile/
├── data/ # Models + persistence (TAKServer, CoTEvent, ChatMessage, …)
├── domain/ # State stores (ServerManager, ChatStore, ContactStore, …)
└── ui/
├── screens/ # Top-level screens (Map, Servers, Chat, Meshtastic, Settings, …)
├── components/ # Reusable layers and widgets (TacticalMap, RadialMenu, …)
├── navigation/ # Compose Navigation graph
└── theme/ # Material 3 theme + tactical colors
The app is pure Kotlin + Compose with no native bridge. A future release will integrate the shared OmniTAK Rust core via JNI — its source is being prepared for separate open-source release as OmniTAK-Core.
OmniTAK ships a compile-time plugin SDK (:plugins:plugin-sdk) and a reference
plugin (:plugins:example-adsb, the ADS-B aircraft overlay). Plugins are
statically-linked Gradle modules — no dynamic/remote code, so the app stays
Play-Store compliant. See docs/PLUGIN_AUTHORING.md
for the contract, the host seams (map overlay / radial / CoT / settings), and a
step-by-step "add a plugin" guide. Plugin authoring mirrors the iOS SDK so a
plugin ports across platforms in about a day.
plugins/
├── plugin-sdk/ # OmniTAKPlugin, PluginHost, PluginRegistry, value types
└── example-adsb/ # ADS-B reference plugin (OpenSky overlay + settings)
| Permission | Why |
|---|---|
INTERNET |
TAK Server connectivity |
ACCESS_NETWORK_STATE |
Detect connectivity changes |
ACCESS_FINE_LOCATION |
Self-location reporting (PPLI), GPS-aware tools |
ACCESS_COARSE_LOCATION |
Fallback for users who deny precise location |
No tracking, no analytics, no third-party SDKs.
- All TAK Server connections are TLS 1.2+ by default
- Client certificates are stored in Android Keystore
- No outbound traffic except to user-configured TAK Servers and ADS-B providers
Found a vulnerability? See SECURITY.md for responsible disclosure.
Contributions welcome. See CONTRIBUTING.md. For larger changes, please open an issue first.
Apache License 2.0. See LICENSE.
Free to use, modify, and share, with no separate permission needed. Apache 2.0 covers personal, volunteer, commercial, and government use at no cost. It only asks that you keep the existing copyright and license notice in place, and note any changes you make to the source. Translations and other contributions are welcome.
OmniTAK-Android uses the following open-source components:
- MapLibre Native Android — BSD 2-Clause
- AndroidX — Apache 2.0
- kotlinx.serialization — Apache 2.0
- Jetpack Compose — Apache 2.0
- Unishox2 (siara-cc) — Apache 2.0 — pure-Kotlin port for Meshtastic TAKPacket string compression
Built by Engindearing. Inspired by ATAK, iTAK, OpenTAKServer, and the broader TAK community.
The companion iOS client is OmniTAK-iOS.
OmniTAK is not affiliated with or endorsed by the U.S. Department of Defense, the TAK Product Center, or any other organization.


