First of all, let's be clear about the goal: I'm attempting to jailbreak an AppleTV 2 (the black hockey puck one) to an untethered jailbreak with a functioning XBMC (Xbox Media Center) install running on it. For those new to this, untethered means you don't have to have the ATV2 connected to anything via USB in order to get it to boot for use once you've finished the jailbreak.
First let's gather the gear.
You'll need, to do this:
So. If you've got all the above, don't worry, it's not that complicated. The only gotcha to worry about is the MicroUSB cable. Apparently, some cables aren't high enough quality or just don't have 'the magic' and won't work. We'll deal with that when it comes.
Step 1: Set up Seas0npass
Download the Seas0npass jailbreak utility from here for your Mac. Note: I'm using version 0.78 which will perform an untethered jailbreak of the ATV2 4.3 software. Unzip it and run it. It'll offer you two options: 'Create IPSW' or 'Boot Tethered.' Select 'Create IPSW.' It will begin downloading the IPSW from Apple's update servers (assuming it's still available).
If Seas0npass tells you that you have UI Scripting disabled, and asks to enable it, tell it OK. It needs to be able to control iTunes via scripting events to finish its job.
Eventually, Seas0npass will finish downloading the IPSW, and do a bunch of surgery to it automagically which it will tell you about using cryptic status messages. When it's ready, it will say 'Waiting for device to enter DFU mode...' and give you a helpful graphic prompting you to plug in your ATV2. Here's the rub: It doesn't mention the power cord and may, in fact, specifically tell you not to plug that in. However, if you're using a MacBook/MacBook Pro, your USB connection won't have enough power, so be ready in the next step.
Step 2: DFU
When Seas0npass is waiting for DFU mode, here's what I had to do to get it to work. Once the dialog came up, I plugged in the MicroUSB, then quickly plugged in the power cable. Then I took the remote and pointed it at the ATV2 and held down the 'Down' control and the 'Menu' button for 6-7 seconds. At the end of those seconds, the 'status' LED on the ATV was blinking fast. Once that fast blink was visible, I let go both of the remote buttons and then held down 'Menu' and 'Play/pause' on the remote (like the dialog said to) for seven seconds. Seas0npass detected the AppleTV going into DFU mode and started installing the jailbreak.
If you have trouble getting it into DFU mode, you should be able to try unplugging the ATV2 and replugging it in to try again without having to restart Seas0npass. It'll just sit there waiting until it sees the USB signature of an ATV2 in DFU mode before continuing. If the sequence above doesn't work for you, you can try skipping the 'Down/Menu' remote sequence and seeing if just the 'Menu/Play-pause' sequence works.
If you *still* can't get it into DFU mode, it's possible your MicroUSB cable isn't working (remember we talked about that). To see if it is or not, quit Seas0npass and start iTunes. When iTunes is up, plug in the AppleTV 2. iTunes should immediately see it and offer to let you restore it. If the AppleTV 2 doesn't come up in iTunes, your cable probably isn't working - try another one. I've found that yes, pricier cables in this case are more likely to work. I have no idea why.
Once Seas0npass starts messing with the ATV2, you can let go of the remote. It'll go through a bunch of steps, including opening iTunes. Don't worry; let it handle it - it should remotely instruct iTunes to open the modified system restore file it just created and install that to the ATV2. You shouldn't have to do anything. In my case, be warned - it did a restore, then tried to do another restore - and the second restore failed with an error. Don't panic. When it's done, unplug the ATV2 from everything.
Step 3: NitoTV and XBMC
Now, plug the ATV2 into your TV using HDMI and boot it. It should come up and look like a completely normal ATV2 and ask you to select a language, etc. etc. Don't worry. This version of Seas0npass, for what reason I have no idea, doesn't install a menu in the FrontRow on the ATV2. but it *is* jailbroken. Go into the 'Settings' menu, and into 'About' -> 'Network.' Make a note of the IP address the ATV2 is using.
On your mac, open a terminal window and ssh into the ATV2 like so. In this example, the IP address of the ATV is 10.0.1.2:
ssh root@10.0.1.2
When asked for a password, use the default AppleTV2 password of alpine. You should see a prompt that looks something like this:
Apple-TV:~ root#
Great. Now lets install NitoTV, which will give us a handy FrontRow menu system for managing software. Type the following:
apt-get update
...that should have it pull down a bunch of new config information and then return to the same prompt. When that prompt comes back, tell it:
apt-get install com.nito.nitoTV
...that should trigger an install procedure. It might ask you to confirm the install (type 'Y'). When that's done, it'll drop back to the prompt again. At this point, type
rebootand the AppleTV 2 should restart.
Wait for it to come back up on your TV. When it does, there should be a new menu in the interface named 'NitoTV.' Go there. There's an option to 'Install software.' Hooray! Use that, and one of the options is 'UpdatebeGone' (which you want to install because it disables Apple's automatic update nagware, which crashes XBMC). When that's installed, select 'XBMC' and install that. When that finishes installing, it should restart Front Row, and bam - there should be an option 'XBMC' in the main menu. Congratulations.
Once you've done all this, you shouldn't need to do it again unless you nuke/restore your AppleTV's system software. So you can put away your cables and etc. :-) Enjoy!