-
ET Phone Home v0.9.0
StableAll checks were successfulDesktop FreeBSD / macOS (Apple Silicon + Intel) and Windows e2e, on the GitHub mirror (push) Successful in 3sClaims ledger / Every README claim has a test (push) Successful in 55sDesktop FreeBSD / FreeBSD packages (amd64 + aarch64) (push) Successful in 4m31sRelease / Build Linux Release (push) Successful in 3m1sRelease / Build Windows Release (push) Successful in 3m2sRelease / Build FreeBSD Release (pkg, amd64 + aarch64) (push) Successful in 3m8sRelease / Build Desktop GUI (Linux) (push) Successful in 3m28sRelease / Build Android Release (push) Successful in 3m22sRelease / Build OpenWrt router packages (push) Successful in 8m43sDesktop FreeBSD / Real FreeBSD 14 VM against the phone core (push) Successful in 10m51sRelease / Publish Forgejo release (push) Successful in 46sRelease / Attach the macOS package (built + tested on the GitHub mirror) (push) Has been skippedRelease / Sign the APK with the ETPH release key and attach it (push) Successful in 4sRelease / Verify the published release (push) Successful in 0sreleased this
2026-10-20 23:05:42 -07:00 | 62 commits to main since this releaseAdded
- Free and Pro. One app, two tiers. Free: sharing over USB with one computer, no speed cap, no time limit, started and stopped on the phone. ETPH Pro, a one-time in-app purchase in the Google Play app (US$15 or Play's local price; no subscription), adds Wi-Fi and Bluetooth, routers, several computers and routers, auto-start when the computer asks over USB plus waiting for the computer after a disconnect, and a data usage history. "Upgrade to Pro" screen with the feature list and the Play price, Restore purchase; a quiet status line instead of pop-ups. Google Play Billing 9.1: purchases are acknowledged, restored on a reinstall or new phone, pending payments wait for Play, refunds and revocations take Pro away at the next check (every app start, every Start); purchase signatures are checked on the phone; no server (docs/pro.md).
- The phone enforces the split; computers and routers never need a licence. The handshake now carries who the client is (a random client id and its host name; routers say they are routers) and whether the phone has Pro. A refused client gets "Pro required on the phone: ..." and the desktop/router client prints it with "nothing needs to be bought or licensed on this computer or router", keeps retrying once a minute (so buying Pro on the phone just works), the GUI shows it, and LuCI shows whether the phone has Pro. Older clients still connect over USB as one computer.
- Paired computers and routers on the phone, each with Forget (Free works with the computer used last; forget it to switch).
- Auto-start on plug-in (Pro): when the computer finds the phone on USB with nothing listening, it asks the phone to start sharing (
adb shell am start ... AutoStartActivity, also through the routers' built-in ADB host), once per plug-in, so a Stop on the phone is respected until the cable is replugged. Switch "Start when the computer asks" on the phone. - Data usage (Pro): per computer/router (today, this month, 30 days) and by kind of traffic (web, QUIC, DNS, email, SSH, calls, VPN, NTP, ping), kept on the phone only.
- Desktop:
--router(set by OpenWrt'sproto etph),$ETPH_CLIENT_ID/$ETPH_CLIENT_NAME; the status file hasphone_pro. - USB without Developer options (routers and Linux computers). The client talks to the phone as an Android Open Accessory: plug the phone in, tap OK on "Open ETPH ...?" once, and the link comes up; no USB debugging, no adb. The ADB route stays as a fallback (
--usb-link auto|aoa|adb, LuCI "USB link"). The phone coalesces frames into 16 KiB accessory transfers. - USB works in every app mode: a phone in Wi-Fi or Bluetooth mode still accepts a computer or router on USB.
- The phone names what it shares with ("Router: slate (GL.iNet GL-AR750S, OpenWrt)", or the computer's host name).
- Windows installer:
etph-windows-<version>.msi(CLI, tray app, the ETPH tethering service, bundled Wintun) and winget manifests (etph-winget-<version>.zip). - ETPH Pro purchases are checked on the phone against the app's Play licence key: an unsigned or wrongly signed purchase never unlocks Pro.
- FreeBSD 14 packages (amd64, aarch64):
pkg add, an rc.d service andetphonehome ctl, tun(4) + resolvconf(8); tested on a real FreeBSD 14.4 VM.
Known limits
- macOS, pfSense and OPNsense clients come in a 0.9.x update.
- Windows USB still needs USB debugging (the accessory link is Linux/router only).
Changed
- Free: when the computer disconnects, sharing stops (tap Start again); Pro keeps waiting for it.
Fixed
- Desktop/router: a filter rule with an address or port typo (
dest_ip = "10.0.0.0/24/8","010.0.0.1",dest_port = "443-80"or"8o") silently did nothing: the computer never matched it and the phone dropped it, so a BLOCK rule blocked nothing. A profile with such an enabled rule is now refused before connecting, with the rule and field named.
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
2 downloads