Android app that receives AirPlay screen mirroring from a Mac, so a tablet can act as a wireless second display.
- Discoverable on the LAN as AirPlay Monitor (mDNS
_airplay._tcp+_raop._tcp) - AirPlay mirror handshake (pairing, FairPlay, SETUP / RECORD)
- H.264 video decrypt + hardware decode (MediaCodec)
- Fullscreen display when a stream starts
- Foreground service keeps the receiver alive while streaming
- Android 7.0+ (API 24)
- Mac and tablet on the same Wi‑Fi (client isolation / guest networks usually break discovery)
- Android NDK 27 (used to build the FairPlay native library)
./gradlew :app:assembleDebug
adb install -r app/build/outputs/apk/debug/app-debug.apk- Install and open AirPlay Monitor on the tablet; grant notification / nearby-device permissions if asked.
- Confirm the service is running (status shows the device IP and port 7000).
- On the Mac: Control Center → Screen Mirroring → AirPlay Monitor.
- Choose Mirror or Use As Separate Display.
- The tablet opens a fullscreen view when video starts.
app/src/main/java/com/airplaymonitor/app/
protocol/ AirPlay server, pairing, FairPlay, mirror stream
service/ Foreground receiver + mDNS
video/ Frame bus + MediaCodec decoder
ui/ Main screen + fullscreen display
app/src/main/cpp/playfair/ FairPlay ekey decrypt (JNI)
- Audio is not rendered yet
- DRM content (e.g. Apple TV app) cannot be decrypted
- Multicast-blocked networks hide the device from the Mac
adb logcat | grep -iE 'airplay|fairplay|mirror|pair'| Issue | Things to check |
|---|---|
| Not listed on Mac | Same Wi‑Fi; restart the app; no AP isolation |
| Connects then drops | Pair / FairPlay errors in logcat |
| Black screen | Stream logs present? Try Open Display in the app |
See THIRD_PARTY.md.
- Protocol reference: RPiPlay, UxPlay, shairplay
- Vendored: PlayFair under
app/src/main/cpp/playfair/(upstream license) - Gradle deps: JmDNS, Bouncy Castle, AndroidX
No git submodules are required to build.
- Application code: MIT (unless noted otherwise)
- PlayFair: see
app/src/main/cpp/playfair/LICENSE.md
Not affiliated with Apple Inc. AirPlay is a trademark of Apple Inc.