Skip to content

v0.6.0

Choose a tag to compare

@fr34aky fr34aky released this 20 Sep 23:32
· 67 commits to main since this release
bc695be

Feature release: mesh names — use home.fips instead of npub1….fips. 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.5.1

  • Mesh names. Overview has a new Mesh names card: an address book that maps a readable name to a node's npub. Give npub1k3ae…wcl6n the name home, and every mesh app can open home.fips — in the browser, in an SSH client, anywhere a hostname goes. It works like a hosts file, and is one: the same name npub format as the fips daemon's /etc/fips/hosts, which an Android app has no way to write, so fips2go keeps its own and resolves the names in its DNS proxy.
    • No reconnect. Adding, re-pointing or removing a name applies to the very next lookup; the mesh stays up.
    • Saving a name that already exists re-points it (tap a row to load it into the fields). Several names may point at one npub. Each row has a copy button for name.fips.
    • A pasted npub1….fips or Home.fips is accepted and tidied up; a bad npub or name is refused with the reason.
    • Names are one label — letters, digits, hyphens — the same rule fips applies. www.home.fips does not resolve.
    • Names live on this device only: they are your address book, not something other nodes see, and they are not part of the identity backup.
  • Diagnostics — the resolve / reachability field takes a mesh name as well as an npub.

No change to the embedded fips daemon (still android-hooks @ 876e62a).

Known issues

  • After the mesh reconnects itself — a mesh-app or relay change, a !FIPS hotspot joining or leaving, an IPv6 route change — the link to a peer can take ~15 s to come back even though Overview already shows Connected. Under investigation; seen since 0.5.0. (Editing mesh names does not reconnect, so it does not trigger this.)
  • Peers listed in Diagnostics still show npubs, not the names you gave them.

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. Mesh names were verified on a Pixel (arm64-v8a) after this release was published, and before that on the Android 14 (x86_64) emulator: with Chrome as the mesh app, home.fips resolved to the mapped node; a second name added while connected resolved on the next lookup with no node restart; and this release's x86_64 APK was installed in place over a release-signed 0.5.1 and the editor exercised in that build. The DNS translation itself is covered by host tests against the fips responder's own code. armeabi-v7a compiles and packages but has not been run on a 32-bit device; x86_64 is emulator-verified.