Skip to content

Releases: norsehorse-dev/RelayPonyAndroid

RelayPony 2.1

Choose a tag to compare

@norsehorse-dev norsehorse-dev released this 12 Aug 18:18

RelayPony 2.1

Google TV support, broadcast peer discovery, and Direct Share, merged from two lines of work into one build.

Google TV
Installable on Android TV / Google TV, with a leanback launcher entry and D-pad navigation throughout.
Opens on the Receive tab, sized for the big screen: the pairing QR fits a landscape two-pane layout instead of a portrait scroll.
Camera and document-picker features are detected and hidden when absent, so a TV never shows a "pick files" button that goes nowhere.
Devices with no Wi-Fi Direct stack (some TVs, some emulators) no longer crash on startup.
Peer discovery
A UDP broadcast beacon finds peers where mDNS can't: a phone's own hotspot, or a guest network that filters multicast.
Hotspot detection: starting a hotspot and Wi-Fi Direct discovery at the same time now reports a clear reason instead of a bare "framework busy" error.
Send by address: when discovery still can't cross the network, type in a paired device's address and port directly.
Pairing and sharing
Direct Share: paired devices show up as one-tap share targets from any app's share sheet.
Identity backup: export your device identity and paired devices to a passphrase-protected file, and import it on another device.
SAS verification: pairing now shows a six-digit code on both devices for a mutual check, alongside QR scanning.
Fixes
The inbox Open button now works for images and video with a missing or generic mime type, using a chooser instead of a silent failed launch.
Wi-Fi Direct discovery failures report a specific reason: Wi-Fi off, a hotspot conflict, or the underlying framework error.

RelayPony 2.0

Choose a tag to compare

@norsehorse-dev norsehorse-dev released this 30 Jul 20:26

Devices find each other on networks where they used to give up

The headline: transfers now work over a phone's own hotspot. Previously the phone would share a
hotspot, the other device would join it, and neither could see the other — with no way to force it.

The cause was that Android's device discovery follows the phone's default network. While
tethering, that's mobile data, so the phone was announcing itself over cellular and never touching
the subnet it was actually sharing. No amount of retrying on the other device could have helped.

RelayPony now runs a second discovery mechanism alongside the original one, using broadcast rather
than multicast and sending from each network interface explicitly instead of whichever one the system
considers default. It also survives guest and hotel Wi-Fi that filters multicast.

Discovery is no longer the only way through

Even with two mechanisms, some networks isolate clients from each other entirely. So discovery is now
a convenience rather than a requirement:

  • Send by address — pick a paired device, type its address, send. Same encryption, same pairing
    requirement; only the way the connection is found is different.
  • The Receive screen shows this phone's address, so there's something to type on the other side.
  • A fixed transfer port (45789) instead of a different one every launch, so an address stays
    valid and a firewall rule stays written.

Wi-Fi Direct explains itself

Wi-Fi Direct couldn't start while the phone was sharing a hotspot — a phone's radio can't be a
hotspot and a Wi-Fi Direct device at the same time — and it reported this as
Discover failed (framework busy, try again), which pointed nowhere. It now says what's actually
wrong, and retries a transient failure instead of giving up immediately.

Notes

  • Pairings and identities are unchanged; this is not a breaking update.
  • The new discovery publishes this device's name and its public key on the local network — the same
    facts the previous discovery already published, and nothing more. Files are still encrypted to a
    pinned key, so an impostor announcement gains nothing.
  • New interface text is English-only for now; other languages fall back until translated.

Thanks to @Vikranttiw, whose report is the reason all of this exists.

RelayPony 1.0

Choose a tag to compare

@norsehorse-dev norsehorse-dev released this 25 Jun 21:52

First public release of RelayPony.

RelayPony sends files straight from one Android phone to another, encrypted, with no servers, no account, and no cloud in between. It works over your local Wi-Fi, or over Wi-Fi Direct when there's no shared network at all.

Highlights:

  • End-to-end encryption using the age standard
  • Pair once by scanning a QR code, then send with a single tap
  • Send to several devices at the same time
  • Works offline over Wi-Fi Direct, no internet needed
  • Received files auto-save to Downloads and show up in an in-app Inbox
  • Available in English, Hindi, Spanish, German, French, Japanese, and Portuguese
  • No ads, no tracking, no in-app purchases
  • Open source under Apache-2.0

The age crypto core is shared with AgePony and built from source as part of this repository.