Enable SSH Without Opening the Apple TV
Parts Needed
- External USB drive
- boot.efi from appletv
- licensed copy of os x for intel
- usb hub w/ external power
Instructions
THE METHOD DESCRIBED BELOW ASSUMES THE USB DRIVE OR IPOD YOU ARE INSTALLING TO IS EMPTY AND HAS NO DATA THAT YOU CARE ABOUT. PLEASE USE CAUTION
1. Install full osx onto the ipod, using semthex's kernel and instructions detailed here: http://www.appletvhacks.net/2007/04/01/mac-os-x-running-on-apple-tv/
2. Modify the AppleFileSystemDriver
Very special thanks to Turbo for this patch, without him I might still be trying to get the boot to complete
Add:
<dict> <key>Content Hint</key> <string>5265636F-7665-11AA-AA11-00306543ECAC</string> <key>Leaf</key> <true/> </dict> <dict> <key>Content Hint</key> <string>Apple_Recovery</string> <key>Leaf</key> <true/> </dict>
into: /System/Library/Extensions/AppleFileSystemDriver.kext/Contents/Info.plist in the IOPropertyMatch array section
If you skip this step then OSX wont boot and will complain that it is waiting for the root device
Now we are going to change the partition info to that of a recovery system
(THIS PART VARIES ON EACH SYSTEM)
2. sudo gpt show /dev/disk1
You should get results such as:
start size index contents 0 1 PMBR 1 1 Pri GPT header 2 32 Pri GPT table 34 6 40 409600 1 GPT part - C12A7328-F81F-11D2-BA4B-00A0C93EC93B 409640 116538416 2 GPT part - 48465300-0000-11AA-AA11-00306543ECAC 116948056 262151 117210207 32 Sec GPT table 117210239 1 Sec GPT header
index 1 is the EFI partition
index 2 is the osx installation
now do this to set it up to work as recovery partition
THIS ASSUMES /dev/disk1 is your external drive you can break your system if it isnt
gpt remove -i 2 /dev/disk1
Then take the numbers from above and plug them in respectively, for me the start point is 409640 and the size is 116538416
gpt add -b 409640 -i 2 -s 116538416 -t 5265636F-7665-11AA-AA11-00306543ECAC /dev/disk1
Now unmount the drive and connect it to the appletv, and boot up with menu and -
Make whatever changes you want, you will want to use a USB hub so you can hookup a keyboard as well. I used appletv-install.sh to copy the necessary files (gdb will probably fail, that is ok you can ignore it). Be sure to enable ssh on your OSX install before you run this script so that it copies the ssh.plist file that has sshd enabled and not disabled.