PhairPlay v1.1.0-mh.1
Pre-release
Pre-release
Fork release based on upstream v1.0.0-beta.1 (mazer666/PhairPlay).
Fixed
- mDNS name conflict left
_airplay._tcpunregistered forever. Newer Android does not auto-rename on a conflict; when the requested name collides with a record on the same device (e.g. the TV's own Google Cast registration),MdnsAdvertisergets stuck probing and never delivers any callback — the TV never appears in AirPlay pickers.MdnsServicenow runs a 5s watchdog per registration attempt and retries with a numbered suffix ("Name (2)", max 3 attempts) on both explicit failures and silent stuck probes. Verified on a Nokia Streaming Box 8010. - mDNS restart race escalated the advertised name to "(2)/(3)" after every streaming session;
restart()now waits for both asynchronous unregistrations (2s timeout) before re-registering. - RTSP message limit rejected the iOS mirror-stream SETUP (~77 KB binary plist from iOS 26 vs a 64 KB cap) — raised to 1 MB (also submitted upstream as mazer666/PhairPlay#11).
Changed
- Receiver-appliance lifecycle: backing out of the app or swiping it from recents no longer stops the foreground service — the TV stays visible in AirPlay pickers. Stop the receiver via the in-app protocol toggles.
Added
- On-device diagnostics (ported from JObersi10/PhairPlay, trimmed): persistent
files/phairplay.log+ crash hook (LogBuffer), and LAN log access — full dump on port 8001, live tail on port 8002 (curl http://<tv-ip>:8002). Logging is active in release builds too.
Installation
Side-load the APK that matches your device:
- PhairPlay-v1.1.0-mh.1-googletv.apk — Google TV / Android TV (Android 10+)
- PhairPlay-v1.1.0-mh.1-firetv.apk — Amazon Fire TV (Android 7.1+)
Full changelog: CHANGELOG.md