How to Hack Apple TV
>> Tuesday, October 05, 2010
I decided to limit myself to just a couple of hours of Apple TV hacking this morning as I have books that need writing, children who need feeding, a house that needs cleaning and, lord almighty, you wouldn't believe the laundry.....
So again, this is going to be a quick update rather than an in-depth exploration of all things Apple TV.
As you know, the 2nd gen iOS Apple TV has already been jailbroken. While tools have not yet been released, you can watch a video posted earlier today showing command line access to the unit.
I do not have jb access so have limited my explorations to the tools I have available. I used Kevin Ballard's superb Bonjour Browser to scan for Apple TV services. At this time, there appear to be two. First, there is the standard AirTunes "raop" service. RAOP stands for the remote audio output protocol, which has been used for some time with Airport audio streaming. There's a nice discussion of the protocolover at CocoaDev.
Second is a new Apple TV service called _appletv-v2._tcp, which I am guessing offers video transport to augment the AirTunes audio elements. I'm not sure about any of the service details but was able this morning to connect to the Apple TV server using standard Bonjour calls. Beyond that, I'd have to communicate with the appropriate protocol, which apparently remains private at this time.
Over on the DFU/Jailbreak front, StealthBravo tweeted how to put your unit into DFU (Device Firmware Update) mode. He writes that you must first plug in a micro USB cable into the device and then hold Menu and the Down arrow for six seconds on the Apple remote. This reboots the device. Immediately upon rebooting, hold down Menu + Play.
David Martin, who I believe is currently over at Cult of Mac these days, pinged me this morning to ask if activating the device would prevent its use with PhoneView. I did find that working with the Apple TV did interrupt its ability to provide the AFC service that PhoneView relies on but a simple power cycle (unplug and plug, no need for hard rebooting) brought back the service just fine.
That's about it for now. Let me know if you have any specific test requests below in the comments!