Skip to content

v0.4.0

Choose a tag to compare

@fr34aky fr34aky released this 10 Sep 00:22
· 97 commits to main since this release

A Wi-Fi ↔ cellular hand-over no longer drops the mesh. Installs in place over any earlier release via the automatic update prompt, Check for updates, or sideload — identity, settings and app data are kept.

Changes since v0.3.4

  • Network switches are seamless. Until now every move between Wi-Fi and cellular restarted the mesh node: 1–2 s of outage, every session and route dropped, a fresh handshake with every peer. The node now stays up across the switch. The embedded fips daemon detects that the path to each peer moved and heartbeats those peers at once, so they re-pin to the new address; on the Pixel 9 Pro that takes about half a second from the moment Android reports the new network, with sessions, tree position and routes intact. The app tells the daemon the instant the network moved (Android denies apps the kernel event source the daemon would otherwise use), with a 5 s poll as backstop.
  • fips updated to upstream v0.5.1+ (android-hooks @ cc03494), which carries the medium-change detector and, on the peer side, the fix for the stale-socket black hole the restart used to work around.

Two cases still restart the node, as before: an underlying network whose IPv6 status differs from the previous one (the tunnel's routes must change), and a FIPS Hotspot joining or leaving. A peer running a fips build older than September 2026 can still go quiet for up to its own liveness timeout after you switch networks; the fix for that peer is upgrading it.

Install

Sideload the APK matching your device (adb install -r or open it on the phone); min SDK 26 (Android 8.0). Verify the download against the matching .sha256, or update from within the app.

  • universal — all three ABIs in one file. Installs anywhere; larger. Use this if unsure.
  • arm64-v8a — every 64-bit ARM phone from roughly 2016 on; the device-verified build.
  • armeabi-v7a — old 32-bit phones. Compiles and packages; not exercised on real 32-bit hardware.
  • x86_64 — Android emulator, Chromebooks.

Release APKs are signed with the key whose certificate SHA-256 is
aa905e32bd0058874d252990abba26c78ddd8fca018195ebd1cd232a99a7a8e1 — check a
fresh download with apksigner verify --print-certs <apk>. This matters most on a
first install: there is no previously installed signature for Android to
compare against, so the checksum and this fingerprint are the only things
identifying a genuine build. Subsequent updates are enforced against the key
automatically.

Caveats

Only arm64-v8a is exercised on real hardware. armeabi-v7a compiles and packages but has not been run on a 32-bit device; x86_64 is emulator-verified.