vault / meshtastic-android / v2.8.3
meshtastic-android @ v2.8.3
integrity
- size
- 40.2 MiB
- downloaded
- last checked
release notes
Highlights
Radios on firmware older than 2.5.14 stay connected and lead straight to the firmware update, which is now required. Back up and restore the app database. Failed messages resend in place. Reactions get their own notification channel. Radio settings open without a radio, and search lands on the setting. Site Planner coverage runs on the phone. Many stability fixes.
What's Changed
🏗️ Features
- feat(network): a hidden showcase scenario for Demo Mode by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7377
- feat(app): shell-only debug launch switches for onboarding and the trust dialog by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7375
- feat(settings): raise the coding rate over a modem preset by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7405
- feat(firmware): show installed vs latest bootloader before an upgrade by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7409
- feat(auto): notification messaging on Android Auto by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7417
- feat(map-maplibre): start with collapsed attribution strip on seconda… by @Tha14 in https://github.com/meshtastic/Meshtastic-Android/pull/7424
- perf(store-screenshots): wait for the map to draw instead of a fixed 45 seconds by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7501
- feat(desktop): add draggable scrollbars to node and message lists by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7506
- feat(notifications): post reactions on their own channel by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7507
- feat(admin): add Reboot into DFU mode admin action for nRF52 nodes by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7504
- feat(remote-shell): mesh terminal for the firmware DMShell module by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/6862
- feat(firmware): play Chirpy Hop while a firmware update runs by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7545
- feat(settings): schema labels for presets and regions, keyword search, diy_only pins by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7544
- feat(map): route MapLibre's log through Kermit on desktop by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7606
- feat(settings): let radio settings be opened and read without a radio by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7621
- feat(connections): keep an old radio connected and gate the app on the firmware update by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7623
- feat(settings): region preset fallback and fixed-precision override frequency by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7626
- feat(connections): show the LoRa preset and region on the connected radio card by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7625
- feat(settings): land a search result on the control it names by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7627
- feat(settings): color picker and swatch for ambient lighting by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7619
- feat(desktop): reactions and new waypoints notification toggles by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7624
- feat(settings): back up and restore the app database by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7629
- feat(node): record observed and inbound traceroutes in the node's history by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7643
🖥️ Desktop
- fix(mqtt): remove noop mqtt to allow the mqtt proxy to work on the desktop builds by @Tha14 in https://github.com/meshtastic/Meshtastic-Android/pull/7400
- fix(notifications): put every notification on its own channel and tap target by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7415
- fix(database): delete old mesh logs in bounded batches by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7423
- fix: keep WiFi credentials, addresses and coordinates out of app logs by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7419
- fix: data correctness fixes from the Android audit by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7429
- fix(node): show the real traceroute map on desktop by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7425
- refactor: keep one copy of shared code across platforms by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7432
- fix(ui): localize UI strings, fix stale effect captures, one EmptyState by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7430
- fix(notifications): end low-battery episodes when the tray is cleared by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7546
- Fix/desktop linux tray by @jp-bennett in https://github.com/meshtastic/Meshtastic-Android/pull/7569
- fix(desktop): keep LWJGL whole through ProGuard by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7605
- fix(app): stop declaring Android Auto support by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7645
🛠️ Fixes
- fix(map): keep the node track map responsive on long tracks by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7373
- fix(konsist): anchor the scanned-source inputs at the source roots by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7382
- fix(map): frame the mesh clear of the map's own controls by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7385
- fix(node): drop the filter bar's own background inside the list header by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7386
- fix(appfunctions): index functions where AppSearch has no dynamic schema by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7402
- fix(ui): split the link colour per mode by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7406
- fix(settings): stop profile import dropping Mesh Beacon settings by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7416
- fix(database): never publish a replacement pool while the write lock is held by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7418
- fix(prefs): recover corrupt Android prefs files and make toggles atomic by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7420
- fix(navigation): keep each tab's state across tab switches by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7421
- fix(discovery): keep an unheard node's SNR distinct from 0 dB by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7422
- fix(service): correct phone position units and omit missing readings by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7437
- fix(wifi-provision): release the BLE peripheral on retry and on leaving by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7453
- fix(map-maplibre): clear warnings and collect state with lifecycle by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7460
- fix(takserver): log a route export that failed to write by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7459
- fix(node): leave positions without a fix out of the GPX track by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7457
- fix(service): stop the inbound pipeline waiting on node writes by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7464
- fix(app): check a shared map file before importing it by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7463
- fix(ui): show byte sizes in decimal units, formatted for the locale by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7469
- fix(app): stop cleanly on devices the bundled SQLite can't run on by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7470
- fix(service): keep the last-heard write off the inbound lock by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7474
- fix(takserver): keep one route file across reinstalls by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7475
- fix(ui): show transfer rates and file limits in decimal units by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7476
- fix(ble): keep device addresses out of logs by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7478
- fix(ble): export the bond wait receiver so bond broadcasts reach it by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7484
- fix(firmware): show the percent while a maintenance UF2 downloads by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7485
- fix(messaging): let a pinned conversation be unpinned by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7492
- fix(app): restore the Apache HTTP legacy library for Google Maps by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7499
- fix(metrics): break power chart lines across gaps in readings by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7505
- fix(analytics): drop the package from RUM view names by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7525
- fix(node): keep verified contacts verified by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7531
- fix(settings): stop calling Balanced packet authenticity recommended by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7535
- fix(map): show offline manager loading and failure in the offline sheet by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7570
- fix: frequency slot for non-ASCII channel names, mark auto slot by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7580
- fix: restore key backups after a factory reset by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7581
- fix(ci): link protobufs bump summary PRs to the protobufs repo by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7595
- fix(discovery): scan public presets on the default public channel and slot by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7600
- fix(config): refresh the node DB after a live LoRa save by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7620
- fix(node): name unknown traceroute hops by their node id by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7628
- fix(messaging): resend a failed message in place by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7622
- fix(settings): land a search result on the row and highlight it by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7637
- fix(node): use the traceroute map colors in the traceroute chart by @garthvh in https://github.com/meshtastic/Meshtastic-Android/pull/7631
- fix(settings): cap the long name at the 24 bytes firmware 2.8 keeps by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7641
- fix(node): show unknown traceroute hops as unknown and cool down long-press traceroute by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7640
- fix(node): remember Keep on the unheard-nodes banner by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7646
- fix(settings): show GPS pin settings on commercial boards again by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7655
- fix(settings): hide GPS pin settings only on boards whose maker wired the GPS by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7656
- fix(messaging): show seconds in full message timestamps by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7660
- fix(node): remove every unheard node from the banner's Remove by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7667
📝 Other Changes
- refactor(data): page the log export, remove dedupe leftovers by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7449
- refactor(map): share the Web Mercator projection with node clustering by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7483
- refactor(ui): share the remote shell's keyboard sink from core/ui by @jamesarich in https://github.com/meshtastic/Meshtastic-Android/pull/7526
New Contributors
- @Tha14 made their first contribution in https://github.com/meshtastic/Meshtastic-Android/pull/7400
Full Changelog: https://github.com/meshtastic/Meshtastic-Android/compare/v2.8.2...v2.8.3
download
unix · zip
curl -fL -o v2.8.3.zip https://ratatoskr.space/pkg/meshtastic-android/v2.8.3.zip
printf '%s %s\n' '31c4de69215fcd070d390991c0894c1f6133e8119f65140c0183541d264826ba' 'v2.8.3.zip' | sha256sum -c -
windows · zip
$url = "https://ratatoskr.space/pkg/meshtastic-android/v2.8.3.zip"
$out = "v2.8.3.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "31c4de69215fcd070d390991c0894c1f6133e8119f65140c0183541d264826ba") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v2.8.3.tar.gz https://ratatoskr.space/pkg/meshtastic-android/v2.8.3.tar.gz
printf '%s %s\n' 'f8dc4b61c71d6a587dc38b0fcbea7735e1fbee83be5d2936f55a57f3411337ac' 'v2.8.3.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "https://ratatoskr.space/pkg/meshtastic-android/v2.8.3.tar.gz"
$out = "v2.8.3.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "f8dc4b61c71d6a587dc38b0fcbea7735e1fbee83be5d2936f55a57f3411337ac") { throw "sha256 mismatch" }
download via yggdrasil mesh
unix · zip
curl -fL -o v2.8.3.zip http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meshtastic-android/v2.8.3.zip
printf '%s %s\n' '31c4de69215fcd070d390991c0894c1f6133e8119f65140c0183541d264826ba' 'v2.8.3.zip' | sha256sum -c -
windows · zip
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meshtastic-android/v2.8.3.zip"
$out = "v2.8.3.zip"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "31c4de69215fcd070d390991c0894c1f6133e8119f65140c0183541d264826ba") { throw "sha256 mismatch" }
unix · tar.gz
curl -fL -o v2.8.3.tar.gz http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meshtastic-android/v2.8.3.tar.gz
printf '%s %s\n' 'f8dc4b61c71d6a587dc38b0fcbea7735e1fbee83be5d2936f55a57f3411337ac' 'v2.8.3.tar.gz' | sha256sum -c -
windows · tar.gz
$url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meshtastic-android/v2.8.3.tar.gz"
$out = "v2.8.3.tar.gz"
Invoke-WebRequest -Uri $url -OutFile $out
if ((Get-FileHash $out -Algorithm SHA256).Hash.ToLowerInvariant() -ne "f8dc4b61c71d6a587dc38b0fcbea7735e1fbee83be5d2936f55a57f3411337ac") { throw "sha256 mismatch" }
| artifact | format | size | hashes |
|---|---|---|---|
| v2.8.3.zip | zip | 40.0 MiB |
blake3-24 c1806ede0965db54e59266344477e47ce8d13420e274aa08
sha256 31c4de69215fcd070d390991c0894c1f6133e8119f65140c0183541d264826ba
sha1 65b0c7c6ae390e5595e96181cbfd5712b93ce1ad
|
| v2.8.3.tar.gz | tar.gz | 36.2 MiB |
blake3-24 1aab9cea2dffdf80956d83c887b4309eb0b7b23efbc650f1
sha256 f8dc4b61c71d6a587dc38b0fcbea7735e1fbee83be5d2936f55a57f3411337ac
sha1 995b307b1c8a7c896e8cbedfd4b4b92513c17d8e
|
install
bazel
http_archive(
name = "meshtastic-android",
urls = ["https://ratatoskr.space/pkg/meshtastic-android/v2.8.3.tar.gz"],
integrity = "sha256-+NxLYccdalh9w4sPy+p3NeH77oO+XSk29VpX80ETN6w=",
strip_prefix = "meshtastic-android-v2.8.3",
)
zig
.url = "https://ratatoskr.space/pkg/meshtastic-android/v2.8.3.tar.gz",
install via yggdrasil mesh
bazel
http_archive(
name = "meshtastic-android",
urls = ["http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meshtastic-android/v2.8.3.tar.gz"],
integrity = "sha256-+NxLYccdalh9w4sPy+p3NeH77oO+XSk29VpX80ETN6w=",
strip_prefix = "meshtastic-android-v2.8.3",
)
zig
.url = "http://14cc7d57b5e70f679b851fe5b272ce17c70632ff4beb5b35ab64bc706b2485af.pk.ygg/pkg/meshtastic-android/v2.8.3.tar.gz",