Columba 0.10.9
Installation
Download the APK matching your device's CPU architecture.
Architecture-specific APKs (recommended — smaller download):
| APK | Architecture | Devices |
|---|---|---|
columba-0.10.9-armeabi-v7a.apk
| armeabi-v7a | Older 32-bit ARM phones & tablets |
columba-0.10.9-arm64-v8a.apk
| arm64-v8a | Most modern Android phones & tablets |
columba-0.10.9-x86_64.apk
| x86_64 | Chromebooks, emulators, some tablets |
columba-0.10.9-universal.apk
| All | Universal fallback (larger download) |
Telemetry variants:
Each architecture also has a -no-sentry variant without crash reporting for maximum privacy.
Not sure which to pick? Most Android phones use arm64-v8a. If unsure, use the universal APK.
Verification
See SECURITY.md for verification instructions.
Signing Certificate Fingerprints:
SHA-256: 02:2B:12:20:48:63:A3:1F:BF:07:5B:C9:F9:34:1E:33:52:78:80:2E:80:C9:27:A4:75:46:E4:7E:2F:4A:0C:5F
SHA-1: 0A:6B:AE:58:4E:D7:B5:D0:35:8B:3C:7B:65:11:D6:3A:81:21:0D:CE
SHA256 Checksums:
0030b86e0285f486bf2f1dd9a7ab59681efd0aa1b0802416d4cdf979cf2ef4f4 columba-0.10.9-arm64-v8a-no-sentry.apk
55677de3fa877b3ae42ece6bb4f2050794fb07fa47dc0690393f0ab659aa3ede columba-0.10.9-arm64-v8a.apk
229b4da5e7d8a1a58ce72b2f2c690d33794c1492f472ff1706366c4245f953b6 columba-0.10.9-armeabi-v7a-no-sentry.apk
593306d0d734d10e5755ccdc4f64325c81706fd456d248a34f13d81d535c3652 columba-0.10.9-armeabi-v7a.apk
9cb0ad1b1a15cc437f7e876464c498dec1c436259c1d3d81779191ce07c1d14a columba-0.10.9-universal-no-sentry.apk
8fe3306e5b627ecdf269edc7cb5f1dfa210a664c2656c2a08668ef82299d491e columba-0.10.9-universal.apk
09277c84d56f770d3ac3bb1389feb32ded422d51c4e93ceb38d872c0f3520931 columba-0.10.9-x86_64-no-sentry.apk
a19c7cb1956d8eb38145d9dd55518128df722e6ecc8350aaaef44620735d5328 columba-0.10.9-x86_64.apk
Important Note
This will be the last release of the Python RNS backed version of Columba. The next stable release will be v1.0, which will replace all python with kotlin code. This will also be a new "app" on your Android devices, appearing alongside the v0.x version of Columba. You can read more about this here: #800
What's new in v0.10:
- Nomadnet browser. Accessed by filtering the Contacts->Network view for Nodes, and tapping one to browse. Supports three different reading modes, depending on whether you want preserved ASCII art, or an optimized reading experience
- Create a wifi hotspot and share the Columba APK with others locally, peer to peer
- Block incoming messages from peers. Optionally blackhole them too when transport is enabled.
- Add an Offline banner when the Reticulum service is offline
- New map pin clustering when pins are too close together to be rendered without overlapping, feat @MatthieuTexier
- New button in chat view when the other person is sharing their location with you, to let you view their location on the map, feat @MatthieuTexier
- Background permission flow, feat @MatthieuTexier
- RNode flasher expanded to allow CE and custom rnode firmware sources
- Get a notification when RNode device is disconnected
- Show outbound interface in message details
- Add IFAC params to RNode interfaces
- Automatically add IFAC params to discovered interfaces when copying config, feat @taprootmx
- Add map pins for discovered interfaces if they include their coordinates
- Bumped RNS to 1.1.9
- Lots of bugfixes
What's Changed
- deps: bump Chaquopy 16.1.0 → 17.0.0 for Gradle 9 compat by @torlando-tech in #643
- feat(map): declutter overlapping contact markers by @MatthieuTexier in #572
- feat: add background location permission flow in Location Sharing settings by @MatthieuTexier in #600
- feat: add 'Locate on Map' to Chats, Messaging, and Contacts screens by @MatthieuTexier in #597
- fix: prevent binder buffer exhaustion causing crash loop by @torlando-tech in #652
- feat: add offline mode banner (#623) by @torlando-tech in #626
- fix: show notifications when app backgrounded on active conversation by @torlando-tech in #649
- fix: sort messages by local receive time to prevent clock-drift reordering by @torlando-tech in #645
- ci: split module tests into separate job to prevent shard 0 timeouts by @torlando-tech in #655
- Prevent duplicate message notifications on service restart by @torlando-tech in #650
- feat: add block & blackhole peer protection by @torlando-tech in #601
- feat: clean up stale announces, add PHONE NodeType and cross-link buttons by @torlando-tech in #581
- feat: add WiFi hotspot sharing for APK distribution without existing network by @torlando-tech in #632
- ci: trigger CI on release/* branches by @torlando-tech in #660
- fix: catch SecurityException when location permission revoked while backgrounded by @torlando-tech in #662
- feat: multiple firmware sources + custom firmware in RNode flasher (#485) by @torlando-tech in #582
- feat: RNode disconnect notification by @torlando-tech in #628
- fix: path persistence + proactive path resolution by @torlando-tech in #665
- chore: bump GitHub Actions dependencies to latest versions by @torlando-tech in #667
- feat: show outbound interface in message details (#646) by @torlando-tech in #666
- feat: NomadNet browser with Micron rendering, URL bar, and URI handler by @torlando-tech in #671
- ci: Bump reactivecircus/android-emulator-runner from 2.36.0 to 2.37.0 by @dependabot[bot] in #682
- fix: prevent crash on corrupted interface in edit dialog by @torlando-tech in #710
- fix: replace modal restart dialog with inline banner by @torlando-tech in #711
- fix: preserve settings state when combine flow re-fires (#688) by @torlando-tech in #712
- feat: add IFAC network_name and passphrase support for RNode interfaces by @torlando-tech in #718
- fix: prevent identity file loss and add opportunistic key backup by @MatthieuTexier in #717
- test: add regression tests for identity recovery edge cases by @torlando-tech in #720
- fix: prevent initial camera from overriding Locate on Map by @MatthieuTexier in #715
- fix: show address for auto-discovered backbone interfaces by @torlando-tech in #722
- fix: handle inline field=value variables in Micron links by @torlando-tech in #723
- feat: improve NomadNet page request reliability and status reporting by @torlando-tech in #724
- feat: add NomadNet file download support by @torlando-tech in #725
- Add micron parser audit comparing Columba against NomadNet and micron-parser-js by @torlando-tech in #678
- fix: prevent stale page request from overwriting current page by @torlando-tech in #726
- feat: render discovered interfaces as map pins with type filtering by @torlando-tech in #729
- fix: prevent announce list scroll jumps when new announces arrive by @torlando-tech in #727
- chore: upgrade to Gradle 9.4.1 and AGP 9.1.0 by @torlando-tech in #730
- fix: deduplicate path requests with hasPath guard by @torlando-tech in #735
- ci: bump gradle/actions from 5 to 6 by @dependabot[bot] in #731
- deps(deps): Bump the compose group with 2 updates by @dependabot[bot] in #684
- deps(deps): Bump cameraX from 1.5.2 to 1.5.3 by @dependabot[bot] in #685
- ci: bump codecov/codecov-action from 5 to 6 by @dependabot[bot] in #732
- fix: scope MapViewModel announce query to location senders by @torlando-tech in #737
- Fix/sentry gradle hang by @torlando-tech in #776
- fix: harden Room DB against process-kill corruption (COLUMBA-8C) by @torlando-tech in #798
- fix: route all PRAGMAs through db.query() so Android accepts them by @torlando-tech in #802
- Backport: guard PRAGMA journal_mode and synchronous against Room transactions by @torlando-tech in #810
- fix: limit startup path requests to 3 most recent conversations by @torlando-tech in #742
- Bump Python RNS to 1.1.9 (rebased fork + upstream IFAC autoconnect fix) by @torlando-tech in #845
- Auto-populate IFAC network name on discovered interfaces (fixes #770) by @torlando-tech in #844
- Fix BleGattServer NPE on null-boxed offset (COLUMBA-6Q) by @torlando-tech in #843
Full Changelog: v0.9.18...v0.10.9