Releases: josepacelli/opendisplay-android
Release list
v0.0.31
What's new
- Release builds are now shrunk and obfuscated with R8 — the release APK dropped from 11.1M to 1.6M, and no longer decompiles to readable class/method names. (#55)
Full diff: v0.0.30...v0.0.31
v0.0.30
What's new
- Picture-in-Picture (v0.0.29) can now be turned off in Settings — a new "Picture-in-Picture" toggle, on by default, for anyone who doesn't want the app auto-floating when they leave it connected. (#53)
Full diff: v0.0.29...v0.0.30
v0.0.29
What's new
- Picture-in-Picture: leave the app while connected — home button, switch apps — and the video keeps playing in a floating window, same as Netflix/Prime Video. Auto-enters, no setting needed. (#51)
- CI on every PR and push to main: unit tests + debug build now run automatically.
- Bug and feature request issue templates for the repo.
- GitHub Sponsors link to Ko-fi.
- README and landing page restyled with a clearer "two apps that work together" install flow.
Full diff: v0.0.28...v0.0.29
v0.0.28
- Fixed Mirror mode aspect ratio on some Qualcomm decoders (#44): the client now parses the real coded size from the H.264 SPS itself instead of trusting
MediaCodec's reported output format, which some decoders just echo the configured seed back through. - About (version, license, links) is now its own screen reachable from the idle screen, instead of a section buried in Settings — added a link to the Mac sender's site (opendisplay.app) alongside the existing GitHub link.
- Settings polish: the Name field lays out label + text field on one line, several labels got shorter ("Tela cheia" instead of "Tela cheia imersiva", "Nome do equipamento" instead of a long explanatory sentence), and the wide two-column layout's row dividers now line up correctly (#48 follow-up).
v0.0.27
- Reorganized the Settings dialog so it stops growing taller with every new toggle (#48): read-only reference info (Status, Network, How to connect) now collapses behind a single "Details" disclosure, closed by default. The actionable settings (notification, perf overlay, immersive fullscreen, name) lay out in two columns on windows 600dp+ wide instead of always stacking in one column.
v0.0.26
- Optional immersive fullscreen while connected (#45): new Settings toggle hides the status/navigation bars so the video can use the whole panel — off by default, bars stay reachable with a swipe.
- Documented SCR-008 (SCR-006's cellular-binding gap) and stopped versioning SECURITY.md.
- Moved inline rationale comments to RATIONALE.md, documented classes/functions with KDoc (#42, #43).
v0.0.25
Fixes the video going black for a minute or two after switching away from the app and back (cursor kept moving fine, but the rest of the screen stayed dark). Switching apps rebuilds the video surface from scratch, which means a brand-new decoder with nothing to show yet — it was just sitting there waiting for the Mac's own periodic keyframe, up to 60 seconds away. It now asks the Mac for one immediately instead of waiting, the same way an actual decoder error already did. Recovery is down to a few seconds, confirmed live with a real Mac connection.
Reported by @gaeaearth on a Galaxy Note10+ (Android 12).
v0.0.24
Fixes a real security gap: the "WiFi" listener used to bind to whatever network interface happened to be up first. On a device with WiFi off and mobile data on, that meant the unauthenticated video/control socket landed on the carrier's network — confirmed live on real hardware before this fix (bound to a real LTE IP address instead of failing closed).
Now the listener only binds to WiFi or Ethernet. If neither is available the status honestly says so ("No WiFi network. Turn on WiFi or connect over USB.") instead of the misleading "Listening" text it showed before. And if WiFi drops mid-session, the listener now notices within about a second and drops the stale binding, instead of sitting stuck on a dead address indefinitely.
None of this touches the loopback (adb forward) or USB accessory (AOA) paths — both were already independent of WiFi state and keep working exactly the same.
Also: the landing page and README now credit @jpbhdrey for the USB accessory (AOA) transport shipped in the previous release, and the USB copy that still described the old adb-forward-only workflow got fixed.
v0.0.23
Connect over USB with no cable dance. The wired path used to mean developer options, USB debugging, an adb forward command, and a UserDefaults override on the Mac every single time. Now it's just: plug the cable, tap the system's accessory prompt, done.
Under the hood the connection is abstracted behind a Link interface, so the same handshake/framing/perf code runs identically over WiFi or the cable. Needs a Mac build with matching USB accessory (AOA) support — not yet in the published Mac app, so for now this works against the development fork. Against the stock Mac app, the adb forward trick from previous releases still works as a fallback.
v0.0.22
Segurança
- Clampa as dimensões do cursor sprite recebido do peer antes de decodificar — um Mac malicioso podia mandar dimensões absurdas e causar OOM/DoS no receiver (SCR-007).
Novidades
- Overlay de desempenho (fps/latência/RTT) agora é opcional, com toggle em Configurações (#36) — reportado por @gaeaearth.
Full Changelog: v0.0.21...v0.0.22