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) or FreeTAKServer and point OmniTAK at it.
Current release: v0.2.2 (versionCode 18) — foreground service holds the TLS socket warm during backgrounding so Doze / app-standby can no longer kill the read loop within ~10s. Carries forward v0.2.1's coordinate / units pickers, map camera preservation, and resume-reconnect; v0.2.0's auto-PPLI, live counters, and zip sideload.
- Signed APK (sideload): OmniTAK-0.2.2-vc18.apk
- Always-latest APK: releases/latest
- Google Play (closed testing): ask J for an invite
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.2.2-vc18.apk- 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.
| 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.
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
Built by Engindearing. Inspired by ATAK, iTAK, FreeTAKServer, 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.