Skip to content

jimnoneill/FirePlay

Repository files navigation

FirePlay

FirePlay

Open-source AirPlay 2 Apple Device receiver for Fire TV & Android

InstallWhat It DoesHow It WorksBuildCredits

Fire OS 7 iOS 17/18 AirPlay 2 License GPL-3.0


Why?

AirReceiver, AirScreen, and AirPin all charge you to do AirPlay on Fire TV. Every "open-source AirPlay for Android" project on GitHub was either dead, audio-only, or required a Raspberry Pi. This project fixes that.

┌─────────────┐    mDNS + RTSP    ┌──────────────────────────────────┐
│   iPhone    │◄─────────────────►│          FirePlay (APK)          │
│             │                   │                                  │
│  Music      │    ALAC audio     │   ALACDecoder ──► AAudio out     │
│  Photos     │    H.264 video    │   MediaCodec  ──► SurfaceView   │
│  Video      │    AAC-ELD audio  │   MediaCodec  ──► AAudio out     │
│             │                   │                                  │
│  AirPlay 2  │    FairPlay pair  │   UxPlay protocol lib (GPL-3)    │
└─────────────┘                   └──────────────────────────────────┘

Install

Option 1 — Downloader app (no computer needed)

  1. On your Fire TV, install the free Downloader app from the Amazon Appstore.
  2. Go to Settings → My Fire TV → Developer Options → turn on Install unknown apps for Downloader.
    (No Developer Options? Settings → My Fire TV → About → click "Fire TV" 7 times.)
  3. Open Downloader and type:
    is.gd/fireplay_tv
    
  4. Press Go → Install → Open. You'll see the FirePlay splash screen — it's now listening.
  5. On your iPhone: Music or Photos → tap the AirPlay icon → pick FirePlay.

Option 2 — ADB sideload

adb connect <fire-tv-ip>:5555
adb install fireplay-v0.1.0-debug.apk

APKs attached to every GitHub release.

Option 3 — F-Droid (coming soon)

F-Droid metadata is ready under fastlane/metadata/. Submission planned at v0.2. Amazon Appstore is intentionally not a target — Apple has a history of DMCA-noticing AirPlay reimplementations.


What It Does

iPhone source What you get on the TV
Music app Lossless ALAC audio through TV speakers
Photos (still) Full-resolution photo displayed
Photos (video) H.264 video + AAC-ELD sound
YouTube etc. (legacy AirPlay) HLS video

What it does NOT do (yet)

Feature Status
iPhone screen mirroring (Control Center) Planned for v0.2
Netflix / Disney+ / HBO casting Blocked by Apple FairPlay DRM — no open-source project can do this

Status

Milestone Status
mDNS advertisement (JmDNS)
iOS 17/18 pairing (FairPlay 2-round)
Music — ALAC → AAudio
Photos/Video — H.264 → MediaCodec → Surface
Video sound — AAC-ELD → MediaCodec → AAudio
Per-device identity (no collisions on multi-receiver LANs)
Idle splash screen with branding
iPhone screen mirroring 🚧
F-Droid release 🚧

How It Works

Protocol layer (lib-uxplay/) — vendored from FDH2/UxPlay, GPL-3. Handles SRP-6a pairing, FairPlay emulation, RAOP RTP demux, NTP sync.

Audio (audio_renderer_aaudio.cpp):

  • Music: ALAC packets → Apple's open-source ALACDecoder → PCM → AAudio output
  • Video sound: AAC-ELD packets → Android AMediaCodec → PCM → same AAudio stream

Video (video_renderer_mediacodec.cpp):

  • H.264 NAL units from iPhone → AMediaCodec hardware decoder → ANativeWindow (SurfaceView)
  • Zero CPU-copy rendering path

Discovery:

  • Android's built-in NsdManager is unreliable advertising to Apple clients
  • We use JmDNS with hand-built Bonjour TXT records instead

Build from Source

Requirements: Android NDK r27+, SDK with platforms;android-28, JDK 17.

git clone https://github.com/jimnoneill/FirePlay.git
cd FirePlay
# Windows: edit local.properties with your SDK/NDK paths, then:
gradle assembleDebug
adb install app/build/outputs/apk/debug/app-debug.apk

The build script build.ps1 sets up env vars for Windows ARM64 machines.


Tested on

Device OS Result
Fire TV Cube 3rd Gen (AFTGAZL) Fire OS 7.7.1 ✅ Music + Photos + Video
iPhone 13 iOS 18 (AirPlay/870.14.1) ✅ Full pairing + streaming

The APK ships both armeabi-v7a and arm64-v8a — any Fire TV / Android TV running Android 9+ should work.


Credits


Support

If FirePlay saved you the $5 AirReceiver fee — or if you just think open-source AirPlay on Android should exist — you can help keep it going.

Donate via PayPal


License

GPL-3.0 (inherited from UxPlay). See LICENSE.


Built with relentless determination and Claude Code.

About

Fully open source AirPlay for Amazon Fire TV (Fire Cube, Fire Stick)

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages