A library to control whether an Apple TV 4K boots to DFU or Normal mode using an Advanced Breakout.
libtvcontrol and tvcontrolutil are licensed under the MIT license included in the LICENSE
file.
libcyusbserial.a
is licensed under the GNU Lesser General Public License, version 2.1, also included in the LICENSE_CYPRESS
file. The static object compiled from the source supplied by Cypress in USB-Serial Software Development Kit and includes both libcyusbserial and libusb-1.0.9 sources from the Cypress archive.
Current platform and architecture combinations supported:
- macOS x86-64
- Linux x86-64
Coming soon:
- Linux i486
- Linux arm
- Linux arm64
TODO:
- Windows x86-64
Documentation for usage of the library is coming soon, tvcontrolutil.c
is an example implementation that can be referred to until documentation is available.
Usage for tvcontrolutil is:
./tvcontrolutil [OPTIONS | MODE]
Options
-h, --help Prints usage info
-t, --toggle Toggles USB mode
Modes
0, off Sets USB mode to 'Normal Mode'
1, on Sets USB mode to 'DFU Boot'
* When no arguments are provided the tool will print the current USB mode.
After setting boot mode to DFU entry reboot your Apple TV with the Siri remote, or idevicediagnostics to enter DFU. Any reboot will automatically enter DFU until the mode is changed, or the advanced breakout USB is unplugged.
Building requires clang and related libraries on Linux, and Xcode Command Line Tools on macOS.
All contributions are welcome. Merge requests will be evaluated on their merits and all decisions will be discussed if rejected.
Contributions should follow the following guidelines:
- Follow consistent indentation and code styles with the rest of the project.
- Commit messages should be descriptive of the change where possible.
Apple, Apple TV, Siri, Mac, and macOS are trademarks of Apple Inc.
Thanks to Dany Lisiansky for adding a build system, and usability improvements to the library.