Open Shelf…

ATV Loader

Note: ATV Loader currently does not offer support for Apple TV version 2.0. I hope to remedy this in the near future, along with a similar update to the BackRow Developers’ Kit. The latter will require Xcode v3.1, so any releases will have to wait for that to be officially released.

Some time ago, during one of my first few visits to the AwkwardTV IRC channel, while talking to macTijn about the potential actions of the Patchstick installation method, I suggested that the ideal solution would be to install a UI-based thing of some kind, which would allow the user to interactively choose to enable SSH or AFP, to install plugins, QuickTime components, and the like.

The original ideas were to use scripts to install various things, so a user would setup their patchstick with whichever installer scripts they chose, or would be provided with a single script to do everything. I felt that this was a little out of character for the AppleTV, and suggested that all Patchstick needed to do was to install the UI for the user to perform any useful actions. And so it was that ATVLoader was born (or to give it its title in the menu, the ‘AwkwardTV’ appliance).

Let’s take a tour, shall we? Click on the images to see a full-size version.

A Visual Guide

;AwkwardTV

Firstly we have here the main menu, with the lovely icon created by BigBaconAndEggs from the AwkwardTV channel1. Selecting this brings us to:

AwkwardTV Loader Menu

From here we can browse the available plugins from plugins.awkwardtv.org, we can enable or disable SSH and AFP access to the AppleTV, and we can look at the plugin’s information screen.

When selecting one of the SSH or AFP options, the user is presented with a screen which gives them some information on what they’re doing and allows them to toggle its state. This happens immediately, it doesn’t require the user to restart the AppleTV.

Disable SSH

The About screen shows a little information about the plugin, such as its version and release date, along with the license information and legal disclaimer:

About ATVLoader Screen

If you go into the plugin browser, you’ll have to wait while the information downloads, after which you’ll be presented with a menu showing the available plugins. As you scroll through them, their icons or a screenshot (if available) will be presented to the left of the list, like so:

Plugin Browser Screen

Upon selecting an item, you will be presented with some information about it provided by the plugin’s author. Here you’ll see a better screenshot (depending on the plugin) along with the information and a button to install it.

Plugin Info Screen

Installation requires that you restart the AppleTV, so choosing the Install option will alert you to this requirement. If you accept, the download will begin. You’ll be able to see the URL used for the download, as well as its progress.

Download Screen

Once it has downloaded, the archive will be decompressed, and the appliance will be installed by a helper tool. In the event of an error, a dialog will be displayed explaining exactly what went wrong, but if nothing does go wrong, you’ll be faced with this:

Install Complete Screen

Where’s The Download Link?

It’s around here someplace. You know. Chilling. Getting its mojo together before the Big Event.

But I should talk a little about future plans. You’re probably thinking, “what about uninstalling appliances? What about QuickTime codecs? What about screen savers?” Well, all those things are indeed on the cards. While I don’t plan on making this appliance a sort of Hacker’s Toolkit for the AppleTV, I will be adding such functionality, and in fact already have installer code for doing just that. The uninstaller will be a feature for version 1.1, I think, and codecs & screensavers will be supported once I have a repository from which to get them, similar to the Plugins Browser now.

So When Do I Get To Try It Out?

Oh, I’d say, something in the region of real soon now, I think.

But first I should point out a few technical details about the nature of the appliance and about the means of installing it.

Since ATV Loader needs root access to install other appliances, it has a small sub-program which is set to always run as the root user to do this for it. If at any point you get an error saying that it doesn’t have sufficient privileges to perform the operation, and that you might want to re-run the Patchstick install process, then this little app needs tweaking. Here’s what you can do, via SSH, to repair that (lines beginning with # are comments):

# Make the root filesystem writable
sudo mount -uw /

# Go to the location of the helper tool
cd /System/Library/CoreServices/Finder.app/Contents/PlugIns
cd AwkwardTV.frappliance/Contents/Resources

# Change the ownership of the item
sudo chown root:wheel SetupHelper

# Change the permissions, including set user-id on execution
sudo chmod 4555 SetupHelper

# Go back where we came from
cd ~

# Make root filesystem read-only again
sudo mount -ur /

So Do I Get It Now, Or What?

Patience, Grasshopper. The time nears. No, really. But first I must tell you about the installation process, just to make sure.

The download contains a readme file with some instructions, a Mac OS X installer package, and a shell script file called installme. As the ReadMe file will tell you, in the interests of saving you the palaver outlined above, you need to copy the decompressed folder to your AppleTV somewhere (the frontrow user’s home folder is as good a place as any), connect via SSH and go into that folder, then run the following command:

sudo sh installme

It’ll ask for the frontrow user’s password, and when you enter it it will make OSBoot writable, run the installer, and make OSBoot unwritable again. If you have made your AppleTV writable all the time, you can install the package directly from the same folder by doing:

sudo installer -pkg ATVLoader.pkg -target /

That should be all that’s required. Thanks to my ever-patient testers macTijn and Dakaix, this appears to do the trick.

Yes, Yes, But When Can I Get It?

Well, now.

Erm……. really?

Yes. It’s right here:

ATVLoader Version 1.0.8, 26th June 2007

Package Image Download the ATV Loader appliance

Be good and play nicely, young Grasshopper. And if in future you should need me, just visit irc://irc.moofspeak.net/awkwardtv and look for me, as I’m almost always there.

Unless of course I’m not.

;)


  1. BigBaconAndEggs provided all the icons for this appliance, along with graphics for all the AwkwardTV sites, and more. Go to irc://irc.moofspeak.net/awkwardtv now and tell him how great he is.