# Remote for Apple TV: rebuilding Companion Link control on Android

> Remote for Apple TV implements Apple TV control on Android through Kotlin modules for Companion Link pairing, encrypted OPACK commands, and an MRP-over-AirPlay media tunnel. Its protocol module and desktop CLI cover discovery, remote keys, text entry, and now-playing data; the project credits pyatv for protocol values and reference vectors.

- Type: Case study
- Targets: Protocol
- Category: Independent reconstruction cases
- Relationship: Independent reconstruction project
- Sources reviewed: 2026-11-08
- Added to the catalog: 2026-11-08
- Original resource: <https://github.com/msthind04/AppleTV-Remote>
- Primary source: <https://github.com/msthind04/AppleTV-Remote/blob/d72fd6d75d4ba0a9fb140c85136985e8bdf4fcba/README.md>
- Catalog page: <https://awesomerea.org/resources/apple-tv-remote-android-case/>
- Record JSON: <https://awesomerea.org/resources/apple-tv-remote-android-case/record.json>
- Chinese version: [简体中文](https://awesomerea.org/zh/resources/apple-tv-remote-android-case/index.md)

## Requirements & limits

- **Prerequisites:** Android 8.0 or later and an Apple TV on the same Wi-Fi network; pairing uses the code shown on the TV.
- **Prerequisites:** Building requires JDK 21 and Android SDK platform 35.
- **Testing evidence:** The author reports end-to-end testing on Apple TV 4K running tvOS 26.6; other modern models are untested, and Apple TV 3rd generation or earlier is unsupported.
- **License:** Apache License 2.0.

## Primary sources

1. <https://github.com/msthind04/AppleTV-Remote/blob/d72fd6d75d4ba0a9fb140c85136985e8bdf4fcba/README.md>
2. <https://github.com/msthind04/AppleTV-Remote/blob/d72fd6d75d4ba0a9fb140c85136985e8bdf4fcba/THIRD_PARTY_NOTICES.md>
3. <https://github.com/msthind04/AppleTV-Remote/blob/d72fd6d75d4ba0a9fb140c85136985e8bdf4fcba/LICENSE>

## More in Protocols

- [panelbeater: reconstructing ScanSnap iX1500 panel control](https://awesomerea.org/resources/panelbeater-case/index.md) · Case study
- [VT-Ragnaros: reconstructing Redragon SS552 USB control](https://awesomerea.org/resources/vt-ragnaros-case/index.md) · Case study
- [PixMob Wave2: reconstructing RF wristband commands for Flipper Zero](https://awesomerea.org/resources/pixmob-wave2-flipper-zero-case/index.md) · Case study
- [Goodix 55a4: reconstructing a Linux fingerprint driver](https://awesomerea.org/resources/goodix-27c6-55a4-fingerprint-case/index.md) · Case study
- [allmiibo-sync: reconstructing Pixl.js Bluetooth file synchronization](https://awesomerea.org/resources/allmiibo-sync-case/index.md) · Case study
- [EBO for Home Assistant: reconstructing Enabot cloud control](https://awesomerea.org/resources/ha-enabot-case/index.md) · Case study

## About this entry

The description was reviewed against primary sources.
Original editorial content: MIT. Linked projects, papers and assets retain their own rights and licenses.
