Columba 0.9.0-beta
Installation
Download the APK matching your device's CPU architecture.
Architecture-specific APKs (recommended — smaller download):
| APK | Architecture | Devices |
|---|---|---|
columba-0.9.0-beta-armeabi-v7a.apk
| armeabi-v7a | Older 32-bit ARM phones & tablets |
columba-0.9.0-beta-arm64.apk
| arm64-v8a | Most modern Android phones & tablets |
columba-0.9.0-beta-x86_64.apk
| x86_64 | Chromebooks, emulators, some tablets |
columba-0.9.0-beta-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. 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:
d93499d7207a32db948fdfff4d97b68ce5d47ad9c78126d40960819a9b248603 columba-0.9.0-beta-arm64-no-sentry.apk
dccbea025f8cfa99b199ab041ad104d2ef8a33608a2b465215975ba2de525072 columba-0.9.0-beta-arm64.apk
e22fa5bed58df7fd5f430df751129b6e3152a7942120c7ad1a0a835f23acae32 columba-0.9.0-beta-armeabi-v7a-no-sentry.apk
54cac0a03238b3226426a54c2e5e7b438d641d5c4446dd6522b94bf46de21034 columba-0.9.0-beta-armeabi-v7a.apk
d50888e6b1e05e2e1bf9140d403c9aab1dfcb0bfbfc8b1f3df40a1b479adb245 columba-0.9.0-beta-universal-no-sentry.apk
c13c310f3b47fdde359812776a9a7250f288a8fdc8daef063e1bf02a36c89941 columba-0.9.0-beta-universal.apk
c0107f2b9184e3c9f371bbd63f6bc30c0f29ceb8d1c58c9e0660171fb36dc55c columba-0.9.0-beta-x86_64-no-sentry.apk
4c8c6bae7d8c9ca663c61e93b07710103fdc6ea26ec9f6288d6fd476b7ca0279 columba-0.9.0-beta-x86_64.apk
What's Changed
v0.9.x adds these features:
- Add APK sharing feature with local HTTP server and QR code
- Add QR code dialog UX improvements - share and scan ID QR codes from the Chats view
- Add experimental Tor/Orbot SOCKS5 proxy support for .onion addresses
- security: Encrypt migration export files with AES-256-GCM by @MatthieuTexier
- Improve message input UX with adaptive attachment buttons by @MatthieuTexier
- Add filtering by interface options for announce notifications
- Replace share intent with SAF file save dialog for exports
- Add draft message auto-save feature for conversations
- Add option to unset group host in location sharing settings
- Add MBTiles file import functionality to offline maps
- Add viewport persistence and default offline map region support
- fix: support raster MBTiles import (as exported from MeshChatX) and derive center from bounds
- feat: add image sharing from external apps by @MatthieuTexier
- feat: double-back-to-exit on root tab screens by @MatthieuTexier
- security: Encrypted Reticulum identity key storage
- perf: reduce battery drain
- Lots of bug fixes
See the release notes below for details.
What's Changed
- docs: add Strangler Fig migration skill for Python extraction by @torlando-tech in #466
- fix: move URL regex off main thread in MessagingScreen by @torlando-tech in #468
- Encrypt migration export files with AES-256-GCM by @MatthieuTexier in #467
- Improve message input UX with adaptive attachment buttons by @torlando-tech in #429
- Add filtering options for announce notifications by @torlando-tech in #426
- Replace share intent with SAF file save dialog for exports by @torlando-tech in #425
- Add draft message auto-save feature for conversations by @torlando-tech in #433
- fix: disable RNodeCompanionService on pre-API 31 devices by @torlando-tech in #471
- Add LocationCompat utility for graceful GMS fallback on devices without Play Services by @torlando-tech in #469
- fix: Oboe SIGSEGV on OpenSL ES + speaker toggle for native stream by @torlando-tech in #470
- Add option to unset group host in location sharing settings by @torlando-tech in #473
- Add MBTiles file import functionality to offline maps by @torlando-tech in #428
- Add viewport persistence and default offline map region support by @torlando-tech in #427
- fix: support raster MBTiles import and derive center from bounds by @torlando-tech in #474
- Add APK sharing feature with local HTTP server and QR code by @torlando-tech in #430
- Add Password keyboard type to password input fields by @torlando-tech in #475
- feat: add image sharing from external apps by @MatthieuTexier in #435
- feat: double-back-to-exit on root tab screens by @MatthieuTexier in #457
- Add Tor/Orbot SOCKS5 proxy support for .onion addresses by @torlando-tech in #424
- feat: full-screen incoming call screen with ringtone & vibration by @MatthieuTexier in #452
- feat: Encrypted Reticulum identity key storage by @torlando-tech in #276
- fix: make announce filter dialog scrollable on short displays by @torlando-tech in #482
- fix: make announce filter dialog scrollable on short displays by @torlando-tech in #483
- fix: keep geohash field and Next button visible when keyboard opens by @torlando-tech in #492
- fix: don't request Bluetooth permission for USB-connected RNodes by @torlando-tech in #494
- fix: add post-flash firmware verification by @torlando-tech in #497
- fix: nRF52 DFU flashing and frequency band detection by @torlando-tech in #506
- fix: use build-time config for copyright year by @torlando-tech in #510
- fix: remove OLED references and fix flaky CI submodule checkout by @torlando-tech in #509
- ReviewConfigStep.kt - remove the word OLED by @serialrf433 in #499
- fix: QR scanning fails on LineageOS due to camera row stride mismatch by @torlando-tech in #500
- fix: resolve DeadObjectException, OOM, and ANR from Sentry by @torlando-tech in #502
- fix: send pending file notification eagerly on propagation fallback by @torlando-tech in #514
- fix: use Dispatchers.IO for EventHandler coroutines by @torlando-tech in #516
- Add QR code dialog UX improvements by @torlando-tech in #518
- feat: message font zoom via text size dialog in conversation view by @MatthieuTexier in #505
- perf: reduce battery drain by 88% fewer timer wake-ups by @torlando-tech in #504
- fix: announce interface identification when transport disabled by @torlando-tech in #519
- fix: shutdown now stops foreground service (#455) by @torlando-tech in #521
- fix: move AIDL binder calls off main thread to prevent ANR (COLUMBA-3X) by @torlando-tech in #524
- fix: RNode announces via BLE shown with Bluetooth icon by @torlando-tech in #525
- fix: restore foreground notification after user swipe on Android 13+ by @torlando-tech in #527
- fix: eliminate BLE keepalive coroutine accumulation (COLUMBA-40) by @torlando-tech in #530
- fix: strip URI scheme prefixes from hostname input by @torlando-tech in #532
- fix: prevent delivered message status from regressing by @torlando-tech in #535
- fix: strip port from pasted URLs, sanitize RNode/UDP hosts by @torlando-tech in #537
- fix: use colon count instead of IPv6 regex for port-stripping guard by @torlando-tech in #539
- Enhance README with voice app details and new features by @torlando-tech in #541
- fix: move app initialization off main thread to prevent ANR (COLUMBA-26) by @torlando-tech in #544
- fix: debounce reachable count to prevent binder saturation by @torlando-tech in #548
- fix: prevent LazyColumn duplicate key crash (#542) by @torlando-tech in #550
- fix: detect all nRF52 bootloader PIDs during DFU flash by @torlando-tech in #553
- fix: wipe nRF52 EEPROM before provisioning to initialize LittleFS by @torlando-tech in #555
- fix: remove hardcoded VID filter from nRF52 EEPROM wipe reconnect by @torlando-tech in #556
- fix: add @jvmoverloads to KotlinUSBBridge.connect() for USB RNode by @torlando-tech in #561
Full Changelog: v0.8.8-beta...v0.9.0-beta