PhairPlay is a free, open-source, ad-free AirPlay 2 receiver for Android TV and Fire TV. It lets your macOS or iOS/iPadOS device mirror its screen and audio directly to your TV — no Apple TV required.
macOS (Monterey+) Android TV / Fire TV
iOS / iPadOS (16+) ┌──────────────────────┐
┌────────────────┐ AirPlay │ │
│ [Your Screen] │ ────────► │ [Your TV Screen] │
│ │ │ │
└────────────────┘ └──────────────────────┘
Click AirPlay → PhairPlay
Select your TV → (this app)
Done. ✓
PhairPlay's AirPlay 2 receiver is fully implemented and available as a signed beta release. Download the APK directly from the GitHub Releases page.
The AirPlay 2 stack is complete end-to-end: mDNS advertising, RTSP handshake, HomeKit-style pairing, FairPlay key decryption, H.264 mirroring, AAC-ELD/AAC-LC/ALAC audio, NTP A/V sync, and DACP reverse remote. Real-device validation with macOS and iOS senders is the current focus.
Miracast and Google Cast receiver stacks are in progress (control-plane implemented; media playback pending).
/play content) + transport controls (play/pause/scrub)On your TV:
On your Mac:
Network:
Go to the Releases page and download the APK for your device:
| APK | Device |
|---|---|
PhairPlay-vX.Y.Z-googletv.apk | Google TV, Android TV (Android 10+) |
PhairPlay-vX.Y.Z-firetv.apk | Amazon Fire TV (Android 7.1+) |
Then install it via ADB (see the Sideloading Guide below) or a sideloading app like Downloader on Fire TV.
Install prerequisites
# Install Android Studio from https://developer.android.com/studio
# Install JDK 17 or later
Clone the repository
git clone https://github.com/mazer666/PhairPlay.git
cd PhairPlay
Build the APK
# For Google TV:
./gradlew assembleGoogletvDebug
# Google TV with a registered Cast App ID:
./gradlew assembleGoogletvDebug -Pphairplay.castAppId=<APP_ID>
# For Fire TV:
./gradlew assembleFiretvDebug
The APK will be in app/build/outputs/apk/.
To run the same local checks used by CI before testing on a TV:
./gradlew :test-runner:test
./gradlew :app:lintGoogletvDebug :app:lintFiretvDebug \
:app:assembleGoogletvDebug :app:assembleFiretvDebug
Install via ADB
# Enable ADB on your TV first (see below)
adb connect <TV-IP-ADDRESS>
# Google TV:
adb install app/build/outputs/apk/googletv/debug/app-googletv-debug.apk
# Fire TV:
adb install app/build/outputs/apk/firetv/debug/app-firetv-debug.apk
adb connect <TV-IP>
adb install app-googletv-debug.apk
adb connect <FireTV-IP>
adb install app-firetv-debug.apk
For real-device failures, run tools/collect-device-logs.sh before restarting the app. It captures package state, memory, CPU, and filtered PhairPlay logs into device-test-logs/.
Contributions are welcome! Please read docs/CONTRIBUTING.md before submitting a pull request.
Key points:
Apache License 2.0 — see LICENSE for details.
C
48.8%
Kotlin
48.0%
C++
2.3%
PhairPlay is a free, open-source, ad-free AirPlay 2 receiver for Android TV and Fire TV. It lets your macOS or iOS/iPadOS device mirror its screen and audio directly to your TV — no Apple TV required.
macOS (Monterey+) Android TV / Fire TV
iOS / iPadOS (16+) ┌──────────────────────┐
┌────────────────┐ AirPlay │ │
│ [Your Screen] │ ────────► │ [Your TV Screen] │
│ │ │ │
└────────────────┘ └──────────────────────┘
Click AirPlay → PhairPlay
Select your TV → (this app)
Done. ✓
PhairPlay's AirPlay 2 receiver is fully implemented and available as a signed beta release. Download the APK directly from the GitHub Releases page.
The AirPlay 2 stack is complete end-to-end: mDNS advertising, RTSP handshake, HomeKit-style pairing, FairPlay key decryption, H.264 mirroring, AAC-ELD/AAC-LC/ALAC audio, NTP A/V sync, and DACP reverse remote. Real-device validation with macOS and iOS senders is the current focus.
Miracast and Google Cast receiver stacks are in progress (control-plane implemented; media playback pending).
/play content) + transport controls (play/pause/scrub)On your TV:
On your Mac:
Network:
Go to the Releases page and download the APK for your device:
| APK | Device |
|---|---|
PhairPlay-vX.Y.Z-googletv.apk | Google TV, Android TV (Android 10+) |
PhairPlay-vX.Y.Z-firetv.apk | Amazon Fire TV (Android 7.1+) |
Then install it via ADB (see the Sideloading Guide below) or a sideloading app like Downloader on Fire TV.
Install prerequisites
# Install Android Studio from https://developer.android.com/studio
# Install JDK 17 or later
Clone the repository
git clone https://github.com/mazer666/PhairPlay.git
cd PhairPlay
Build the APK
# For Google TV:
./gradlew assembleGoogletvDebug
# Google TV with a registered Cast App ID:
./gradlew assembleGoogletvDebug -Pphairplay.castAppId=<APP_ID>
# For Fire TV:
./gradlew assembleFiretvDebug
The APK will be in app/build/outputs/apk/.
To run the same local checks used by CI before testing on a TV:
./gradlew :test-runner:test
./gradlew :app:lintGoogletvDebug :app:lintFiretvDebug \
:app:assembleGoogletvDebug :app:assembleFiretvDebug
Install via ADB
# Enable ADB on your TV first (see below)
adb connect <TV-IP-ADDRESS>
# Google TV:
adb install app/build/outputs/apk/googletv/debug/app-googletv-debug.apk
# Fire TV:
adb install app/build/outputs/apk/firetv/debug/app-firetv-debug.apk
adb connect <TV-IP>
adb install app-googletv-debug.apk
adb connect <FireTV-IP>
adb install app-firetv-debug.apk
For real-device failures, run tools/collect-device-logs.sh before restarting the app. It captures package state, memory, CPU, and filtered PhairPlay logs into device-test-logs/.
Contributions are welcome! Please read docs/CONTRIBUTING.md before submitting a pull request.
Key points:
Apache License 2.0 — see LICENSE for details.
C
48.8%
Kotlin
48.0%
C++
2.3%