Posted by on Mar 14, 2010 in Hardware

…but only for a short time

( Updated for AppleTV 3.0.2 )

Hello AppleTV, sometimes someone will find you annoying because you happen to do something … or more likely, because you don’t. I don’t want you to change something about yourself just because, and you know, we are all annoying at times, and some people are too quick to criticize. Oh, forget about it, enough is enough … you will get hacked again, NOW!

I have an AppleTV for many months now and even with good tools like Handbrake and the unfortunately discontinued VisualHub, it’s really annoying, having to convert every AVI or DivX encoded movie to make it play on the AppleTV. Other then that, it’s really a great device which doesn’t require much attention.

Meaning the task at hand was to mod. the AppleTV to make it play all sorts of movies, not only those that were encoded in a format that has Apple’s blessing. Nothing more, nothing less.

This used to be accomplished easily. However, the most recent two software update to 3.0.2 broke this added functionality, but not for long …

Patchstick

The 1st step was to enable ssh on the AppleTV. This used to be very hard and required opening the enclosure. Not anymore! The atvusb-creator project (currently at version 1.0b10) describes in detail how to put software onto a USB-Flashdrive that when inserted before the AppleTV boots enables ssh. Again, since Boxee, XBMC, or SoftwareMenu weren’t necessary, I happily opted-out.

  1. Download the AppleTV image here: http://mesu.apple.com/data/OS/061-7495.20100210.TAVfr/2Z694-6013-013.dmg
  2. Download the ATV USB (Patchstick) 1.0.b13 generator here:http://atvusb-creator.googlecode.com/files/atvusb-creator-1.0.b13.zip
  3. Insert a USB Drive, this may not work with all drives and the current data will be overwritten; a Kingston 8GB DataTraveler always works perfectly fine for me.
  4. Disable unnecessary tool, before generating the PatchStick, which should take less than 2 minutes. (see log below)
  5. Insert the Patchstick into the AppleTV and reboot (power down and up) the AppleTV
  6. Wait until the AppleTV booted, remove the Patchstick, and boot again.

AppleTV Firmware Files

1.1.0: 2Z694-5248-45.dmg
2.0.0: 2Z694-5274-109.dmg
2.0.1: 2Z694-5387-25.dmg
2.0.2: 2Z694-5428-3.dmg
2.1.0: 2Z694-5485-1.dmg
2.2.0: 2Z694-5499.dmg
2:3:0: 2Z694-5573-24.dmg
2.3.1: 2Z694-5587-18.dmg
2.4.0: 2Z694-5660-029.dmg
3.0.0: 2Z694-5789-067.dmg
3.0.1: 2Z694-6004-003.dmg
3.0.2: 2Z694-6013-013.dmg

With ssh now enabled, the rest was done in the matter of minutes. And since I had all the required codecs installed on my Macbook already, the remaining tasks were simply to copy the files over to the AppleTV, to put them into the right location, and finally to reboot the device.

ATV USB Creator Log:

2Z694-6013-013.dmg selected
Extracting boot.efi …
Extracting recovery seed …
extracting atv_recv.zip
Creating USB Flash Disk…
umount_disk settling delay (10 seconds)
partition the target disk
umount_disk settling delay (10 seconds)
install recovery onto target disk
copy files to target disk
remove recovery hfsplus GUID
umount_disk settling delay (10 seconds)
change recovery to real GUID
umount_disk settling delay (10 seconds)
install patchstick onto target disk
copy files to target disk
Complete! (0:01:47)

Copy

With ssh available, copying files can be done via scp, or Fugu, or Tranmit, the target location should be the home folder of the frontrow user account:frontrow@AppleTV.local:~

  • ~/Downloads/ATVFiles-1.3.0b1.run.sh (available at http://ericiii.net/sa/appletv/ATVFiles-1.3.0b1.run)
  • /Library/Quicktime/Perian.component
  • /Library/Quicktime/AC3MovieImport.component
  • /Library/Quicktime/Flip4Mac\ WMV\ Import.component .. (optional)
  • /Library/Audio/Plug-ins/Components/A52Codec.component
  • /System/Library/Quicktime/QuickTimeMPEG2.component .. (optional)
  • .. or just copy everything from your Mac’s /Library/Quicktime/ folder over to the ATV’s

Deploy

Next step was to ssh into the AppleTV and run the ATVFiles installer script and move the components into their final destination:

  • sudo sh ~/ATVFiles-1.3.0b1.run.sh
  • sudo mount -uw /
    (sets the file system to read and write)
  • sudo mv ~/Perian.component /Library/Quicktime/
  • sudo mv ~/AC3MovieImport.component /Library/Quicktime/
  • sudo mv ~/Flip4Mac\ WMV\ Import.component /Library/Quicktime/> .. (optional)
  • sudo mv ~/A52Codec.component /Library/Audio/Plug-Ins/Components/
  • sudo mv ~/QuickTimeMPEG2.component /System/Library/QuickTime/ .. (optional)

Reboot

After rebooting the AppleTV via sudo reboot tools like fugu or transmit work well, copying files over to the AppleTV. When watching the AppleTV, there is now a new menu item, Files, which for instance allows browsing of the frontrow user’s home directory structure, the location where movies are best copied to.

If you just want to play a movie every now and then that doesn’t happen to be a mov or mp4 file, this is a quick and easy way to make it happen.
While Boxee or NitoTV are much more capable, they also seem to make the AppleTV more sluggish.

Read More