Take 2 Full Update
includes updates for 2.0.1
What follows are step by step instructions for upgrading your Apple TV to the 2.0 (Take 2) software, and then loading back on all the "extras". First thing to do is grab all the required files and put them in a folder called AppleTVUpdate which is located on your desktop.
- 1 Required Hardware
- 2 Required Files
- 3 1) Install Apple TV Take 2 update from your Apple TV
- 4 2) Install SSH
- 5 3) Install ATVFiles
- 6 Alternate 3 to 8
- 7 4 Install Perian and other Quicktime Components
- 8 5) Install AFP
- 9 6) Reboot AppleTV
- 10 7) Install USB
- 11 8) Install MacFUSE/sshfs
- 12 9) Install mount_smbfs
- 13 10) Create rc.local
- 14 11) Enable VNC
- 15 12) Disable Updates
- 16 13) Reboot the AppleTV
- 17 Watchdog
- 18 Aftermath
- Apple TV running the Take2 update firmware version 1, since version 1.1 doesn't have AFP and VNC support.
- Intel Mac - there are ways to do this on PC's and PPC Macs, and we have tried to cover them as much as we can
- USB "thumb drive" of at least 128 MB. Some users have reported problems with drives with more than 2 GB.
- AC3MovieImport.component - provides ac3 sound for perian (bundled in perian install)
- A52Codec.component - (bundled in perian install)
- Perian.component - provides divx, xvid, flv,mkv, srt support
- Flip4Mac WMV Import.component - provides windows media support
Note: The above files (with exception of the .DMG) can be found under /Library/Audio/Plug-Ins/Components and /Library/QuickTime, if you have Perian (and Flip4Mac) installed on your Intel Mac.
From MacOS X 10.4.9 Combo Updater (Download and mount, open the pkg with Pacifist):
Note: The above files can be found inside /System/Library/Extensions inside the package mentioned above using Pacifist.
Note: The above files can be found inside /sbin inside the package mentioned above using Pacifist.
--Emanuele.mazza 15:29, 6 August 2008 (CEST) I have downloaded the above and opened it with HFSExplorer, and neither mount_smbfs nor the other files are available. Any hint ?
Before you begin:
- All commands are to be run one at a time. Do not try pasting everything in and running all at once.
- If you plan on attaching an external USB drive to a 2.0/2.1 Apple TV, you probably want to be able to transfer files via AFP. If so, you need to create a restore.dmg from a 1.0 factory Apple TV before you go to step 1.
- Create a new folder on your desktop and name it AppleTVUpdate. Put all of the required files in this folder.
Ready? Let's get started:
1) Install Apple TV Take 2 update from your Apple TV
2) Install SSH
3) Install ATVFiles
scp -1 -r ~/Desktop/AppleTVUpdate/ATVFiles-1.0.take2b1.run frontrow@AppleTV.local:~
sudo sh ~/ATVFiles-1.0.take2b1.run
Alternate 3 to 8
- Copy MacOS X 10.4.9 Combo Updater to ~/Documents folder on AppleTV
- Install nitoTV http://forum.awkwardtv.org/viewtopic.php?f=6&t=1262
For those without unzip installed on your ATV, open up a terminal window on your Mac and do the following;
Mac-i) # wget http://nitosoft.com/nitoTVInstaller_tt.zip Mac-ii) # mkdir atvnito; unzip nitoTVInstaller_tt.zip -d atvnito;tar -cf nitoTV.tar atvnito/ Mac-iii) # scp -1 nitoTV.tar frontrow@AppleTV-IP: Mac-iv) # ssh -1 frontrow@AppleTV-IP:
The SSH password is frontrow you should now be logged onto your AppleTV to perform the below steps.
ATV-v) # tar xf nito.tar; cd atvnito/nitoTV\ Take\ Two/ ATV-vi) # sudo sh installme
- From the AppleTV menu go to nitoTV -> Settings -> Install Software and install in the below order.
- Perian, say NO when asked to use Perian h.264 instead of Quicktime's
- mplayer codecs
- Turbo's Kextloader
- Smart Installer (not the updater) - MacOSXUpdCombo10.4.9Intel.dmg and "recovery.dmg" (thanks to docbrown at boxee:forum) must be placed in /Users/frontrow/Documents/ on your AppleTv.
- Jump to step 9
4 Install Perian and other Quicktime Components
scp -1 -r ~/Desktop/AppleTVUpdate/AC3MovieImport.component frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/Flip4Mac\ WMV\ Import.component frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/Perian.component frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/A52Codec.component frontrow@AppleTV.local:~
sudo mount -uw / sudo mv ~/AC3MovieImport.component /Library/Quicktime/ sudo mv ~/Flip4Mac\ WMV\ Import.component /Library/Quicktime/ sudo mv ~/Perian.component /Library/Quicktime/ sudo mv ~/A52Codec.component /Library/Audio/Plug-Ins/Components/
5) Install AFP
Both the processes listed below (Auto and Manual) presume a 1.0 recovery partition on the AppleTV, and have been tailored towards that. Many of the files can likely be gotten from the 10.4.9 combo updater, but probably not all (this needs to be verified)--BonesSK 03:16, 9 April 2008 (CEST). A full install of 10.4.9 on an Intel Mac would also do nicely, but both the script and the manual process would need to be tweaked in order to properly get and place the files.
If you are running leopard 10.5+, you may want to install 10.4 onto an external drive (USB drive, firewire, iPod etc) to get files. --BonesSK 03:30, 9 April 2008 (CEST)
At this time there seems to be more success with the manual process, than with the automatic process. --BonesSK 03:30, 9 April 2008 (CEST)
Download the script.
scp -1 -r ~/Desktop/AppleTVUpdate/afpinstall.sh frontrow@AppleTV.local:~
sudo sh afpinstall.sh
Because the sed command wasn't working, we'll just create out own hostconfig file.
Create a text file with the following contents:
AFPSERVER=-YES- AUTHSERVER=-NO- AUTOMOUNT=-YES- CUPS=-AUTOMATIC- NFSLOCKS=-AUTOMATIC- NISDOMAIN=-NO- TIMESYNC=-YES- QTSSERVER=-NO- WEBSERVER=-NO- SMBSERVER=-NO- SNMPSERVER=-NO- SPOTLIGHT=-YES-
Name it "hostconfig" (no quotes, no extension) and place it in your AppleTVUpdate folder on your desktop.
scp -1 -r ~/Desktop/AppleTVUpdate/hostconfig frontrow@AppleTV.local:~
For Apple TV v1.0 - Out of the box
(Must be a AppleTV Version1.0 Factory box to work - if yours came with 1.1 or 2.0 pre-installed, you may need to do the steps 15 lines below):
sudo mount -uw / sudo touch /.readwrite cd ~ sudo dd if=/dev/disk0s2 of=recovery.dmg bs=1m hdiutil mount recovery.dmg hdiutil attach -owners on /Volumes/Recovery/OS.dmg sudo cp -pRvn /Volumes/OSBoot\ 1/* / echo -ne 'Installing the Filesystem Extensions...\n' sudo ln -s /System/Library/Filesystems/AppleShare/afpfs.kext /System/Library/Filesystems/afpfs.fs echo -ne 'Installing into /usr/sbin...\n' sudo ln -s /System/Library/CoreServices/AppleFileServer.app/Contents/MacOS/AppleFileServer /usr/sbin/AppleFileServer echo -ne 'Updating /etc/hostconfig to start AFP at boot...\n' echo -en 'AFPSERVER=-YES-\nAUTHSERVER=-NO-\nAUTOMOUNT=-YES-\nCUPS=-AUTOMATIC-\nNFSLOCKS=-AUTOMATIC-\nNISDOMAIN=-NO-\nTIMESYNC=-YES-\nQTSSERVER=-NO-\nWEBSERVER=-NO-\nSMBSERVER=-NO-\nSNMPSERVER=-NO-\nSPOTLIGHT=-YES-' sudo mv hostconfig /etc/hostconfig sudo chown root:wheel /etc/hostconfig echo -ne 'Done!\n'
For Apple TV v1.1 or later - Out of the box
If you have a recovery partition of 1.1 or later, look for OS.dmg from a factory 1.0 AppleTV (find a friend with one) and copy it into the same folder as afpinstall.sh and comment out these:
cd ~ sudo dd if=/dev/disk0s2 of=recovery.dmg bs=1m sudo hdiutil mount recovery.dmg
Make sure the path to OS.dmg is correct, then run sudo sh afpinstall.sh
For Apple TV v2.0 or later (including 3.0) - Out of the box
This is my trick to get AFP working on my AppleTV 2.3 and might also work on previous versions. Now i can mount my ATV disks and manage it's content more easy. It's inspired on kupan787's script. Instead of the 10.4.9 update.dmg that kupan787 uses i picked my 10.4.8 update DVD from my macbook.
It works on AppleTV 3.0
## created by CousinCocaine ## spring 2009 ## credits for the author below, cause this is based on his work ## Author: kupan787 ## The files with: "##### NOT ON THE 10.4.8 DVD." are not necessary to get stuff working. I did not use them myself. ## my fix to get AFP running on ATV. ## from now on you can mount your ATV disks ## get the files from your OSX install DVD 10.4.8 ## - extract the Archive.pax.gz achive. ## - copy the files to the right place on your ATV ## - edit /etc/hostconfig and set: AFPSERVER=-YES- ## - reboot your ATV ## - logon to your ATV -> Finder -> Command-K -> afp://appletv.local (frontrow:frontrow) ## - say thnx ;) From archive to ATV -> System/Library/Frameworks/AppleShareClient.framework /System/Library/Frameworks/ From archive to ATV -> System/Library/Frameworks/AppleShareClientCore.framework /System/Library/Frameworks/ From archive to ATV -> System/Library/Frameworks/AppleTalk.framework /System/Library/Frameworks/ From archive to ATV -> System/Library/Filesystems/AppleShare /System/Library/Filesystems/ Create symbolic link -> System/Library/Filesystems/AppleShare/afpfs.kext /System/Library/Filesystems/afpfs.fs From archive to ATV -> System/Library/CoreServices/Tokenizers /System/Library/CoreServices/ From archive to ATV -> System/Library/CoreServices/AppleFileServer.app /System/Library/CoreServices/ From archive to ATV -> System/Library/PrivateFrameworks/ByteRangeLocking.framework /System/Library/PrivateFrameworks/ From archive to ATV -> System/Library/PrivateFrameworks/BezelServices.framework /System/Library/PrivateFrameworks/ From archive to ATV -> System/Library/PrivateFrameworks/CommonCandidateWindow.framework /System/Library/PrivateFrameworks/ From archive to ATV -> System/Library/PrivateFrameworks/DMNotification.framework /System/Library/PrivateFrameworks/ From archive to ATV -> System/Library/PrivateFrameworks/OpenTransport.framework /System/Library/PrivateFrameworks/ From archive to ATV -> System/Library/PrivateFrameworks/Calculate.framework /System/Library/PrivateFrameworks/ From archive to ATV -> System/Library/PrivateFrameworks/ContentIndex.framework /System/Library/PrivateFrameworks/ From archive to ATV -> System/Library/PrivateFrameworks/LatentSemanticMapping.framework /System/Library/PrivateFrameworks/ From archive to ATV -> System/Library/PrivateFrameworks/SystemUIPlugin.framework/ /System/Library/PrivateFrameworks/ From archive to ATV -> usr/bin/a2p /usr/bin/ From archive to ATV -> usr/bin/atlookup /usr/bin/ ##### NOT ON THE 10.4.8 DVD. It doesn't needed in my ATV 3.0 From archive to ATV -> usr/bin/certtool /usr/bin/ From archive to ATV -> usr/lib/libXplugin.1.0.dylib /usr/lib/ From archive to ATV -> usr/lib/libXplugin.1.dylib /usr/lib/ From archive to ATV -> usr/lib/libXplugin.dylib /usr/lib/ From archive to ATV -> usr/lib/pam/pam_afpmount.so /usr/lib/ From archive to ATV -> usr/lib/pngtclConfig.sh /usr/lib/ From archive to ATV -> usr/lib/sqlite3/libtclsqlite3.dylib /usr/lib/sqlite3/ From archive to ATV -> usr/lib/tcldomxmlConfig.sh /usr/lib/ From archive to ATV -> usr/lib/tdomConfig.sh /usr/lib/ From archive to ATV -> usr/lib/tifftclConfig.sh /usr/lib/ From archive to ATV -> usr/lib/tkimgConfig.sh /usr/lib/ From archive to ATV -> usr/lib/xsltConf.sh /usr/lib/ From archive to ATV -> usr/lib/zlibtclConfig.sh /usr/lib/ Create symbolic link -> System/Library/CoreServices/AppleFileServer.app/Contents/MacOS/AppleFileServer /usr/sbin/AppleFileServer From archive to ATV -> usr/sbin/appletalk /usr/sbin/ ##### NOT ON THE 10.4.8 DVD. It doesn't needed in my ATV 3.0 From archive to ATV -> usr/sbin/automount /usr/sbin/ ##### NOT ON THE 10.4.8 DVD. It doesn't needed in my ATV 3.0 From archive to ATV -> usr/sbin/blued /usr/sbin/ ##### NOT ON THE 10.4.8 DVD. (bluetooth connection, not necessary i guess.). It doesn't needed in my ATV 3.0 From archive to ATV -> usr/sbin/named /usr/sbin/ From archive to ATV -> usr/sbin/named-checkconf /usr/sbin/ From archive to ATV -> usr/sbin/named-checkzone /usr/sbin/ From archive to ATV -> usr/sbin/portmap /usr/sbin/ ##### NOT ON THE 10.4.8 DVD. It doesn't needed in my ATV 3.0 From archive to ATV -> usr/sbin/slp_reg /usr/sbin/ From archive to ATV -> usr/sbin/slpd /usr/sbin/ From archive to ATV -> usr/sbin/tim /usr/sbin/ From archive to ATV -> usr/sbin/timutil /usr/sbin/ From archive to ATV -> usr/sbin/xinetd /usr/sbin/ From archive to ATV -> sbin/mount_afp /sbin/ ##### It doesn't needed in my ATV 3.0
--Yargok 18:49, 5 March 2008 (CET) Does anyone have a similar procedure for those who have a recovery partition of 1.1?
--pheno 14:20, 12 March 2008 (CET) Please note if you will use the command "sudo cp -pRvn /Volumes/OSBoot\ 1/* /" to run aftwards "/usr/sbin/diskutil repairPermissions" --Elchubi 09:10, 6 April 2008 (CEST) With the "owners on" flag when attaching the OS.dmg, the repairPermissions it is no longer required. Take 2 plus all the 1.0 files ! :)
6) Reboot AppleTV
7) Install USB
- Download the update DMG that corresponds to the 2.x version you are currently running on your Apple TV. For example if you are running 2.3 download Take 2.3 DMG and mount it.
Apple doesn't keep online older update DMGs, Apple TV firmwares has links to most versions that are still available from Apple.
- Download the kernel patcher for intel mac (or follow similar steps using kernel patcher for windows), and extract the three files into a folder
- Copy the file mach_kernel.prelink from the mounted image (it is in the root directory) and place it in the same folder as the kernel patcher files you just extracted.
- Open up terminal and do the following:
cd (to the directory you have the kernel patching files) ./do_usb_patch.sh
--Bloo 08:49, 9 March 2008 (CET) Running ./prelink_tool -d mach_kernel.prelink mach_kernel_patched.bin fails with: Bus error.. thoughts?
--blues 08:46, 16 March 2008 (CET) Problem occurs because of binary incompatibility with the tools. One solution is to recompile source on your system.
--topshotta 17:09, 19 April 2008 (EST) If you don't have a recovery dmg see iClarified for instructions. Works for 2.0.2 as well.
Note: the offsets have changed in 2.0.1 and higher (tested up to 2.3), thanks to jphelp32 on the forum for clarifying this.
Mac users need to update the offsets in do_usb_patch.sh
# # ==== patch the decompressed kernel # echo ======== patch kernel ========= ./poke mach_kernel_patched.bin 0x52055e 0x75:0x75 0x34:0x30 if [ $? -ne 0 ]; then exit 1; fi ./poke mach_kernel_patched.bin 0x52123e 0x75:0x75 0x34:0x30 if [ $? -ne 0 ]; then exit 1; fi ./poke mach_kernel_patched.bin 0x520576 0x75:0x75 0x1c:0x18 if [ $? -ne 0 ]; then exit 1; fi ./poke mach_kernel_patched.bin 0x521256 0x75:0x75 0x1c:0x18 if [ $? -ne 0 ]; then exit 1; fi
Windows Users need to update the same offsets in do_usb_patch.bat
Once the kernel is patched, rename it to mach_kernel.prelink and place it in your AppleTVUpdate folder on your desktop
Download Turbo's Apple TV kernel extension enabler turbo_atv_enabler.bin and place it in your AppleTVUpdate folder on your desktop. Rename it to turbo_kext_enabler.bin (this is for compatibility as most guides and scripts refer to this enabler by it's old file name)
Once all the files are ready in the AppleTVUpdate folder on your desktop, copy them to your Apple TV using scp:
scp -1 -r ~/Desktop/AppleTVUpdate/mach_kernel.prelink frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/turbo_kext_enabler.bin frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/IOUSBMassStorageClass.kext frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/smbfs.kext frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/udf.kext frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/msdosfs.kext frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/ntfs.kext frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/IOStorageFamily.kext frontrow@AppleTV.local:~ scp -1 -r ~/Desktop/AppleTVUpdate/IOSCSIArchitectureModelFamily.kext frontrow@AppleTV.local:~
sudo mv /mach_kernel.prelink /mach_kernel.prelink.bak sudo mv ~/mach_kernel.prelink /mach_kernel.prelink sudo mv ~/turbo_kext_enabler.bin /sbin/ sudo mv ~/IOUSBMassStorageClass.kext /System/Library/Extensions/ sudo mv ~/smbfs.kext /System/Library/Extensions/ sudo mv ~/udf.kext /System/Library/Extensions/ sudo mv ~/msdosfs.kext /System/Library/Extensions/ sudo mv ~/ntfs.kext /System/Library/Extensions/ sudo mv ~/IOStorageFamily.kext /System/Library/Extensions/ sudo mv ~/IOSCSIArchitectureModelFamily.kext /System/Library/Extensions/ sudo chown -R root:wheel /System/Library/Extensions/*.kext sudo chmod -R 755 /System/Library/Extensions/*.kext sudo chmod 755 /sbin/turbo_kext_enabler.bin sudo defaults write /Library/Preferences/SystemConfiguration/autodiskmount AutomountDisksWithoutUserLogin -bool true
8) Install MacFUSE/sshfs
This will allow you to access appletv files from your mac. If you have an external hard disk, instead of attaching it to your machine, attach it to your apple tv. Your apple tv can access the media and your laptop can access the files wirelessly from anywhere. Also avoids using the command line and good for copying files back to your laptop from your apple tv.
One problem with Take 2 is that installing kerberos is a big pain, so you always need to use ssh v1. To make sure sshfs understands this, edit your ~/.ssh/config (or create it) and add
Host appletv.local HostName appletv.local User frontrow Protocol 1
After that, you can run sshfs and in connect dialog, put in hostname as AppleTV.local, password as frontrow. I put in the optional root dir as / but you can leave it empty and it will default to the home dir on apple tv.
9) Install mount_smbfs
scp -1 -r ~/Desktop/AppleTVUpdate/mount_smbfs frontrow@AppleTV.local:~
sudo mv ~/mount_smbfs /sbin/ sudo chown root:wheel /sbin/mount_smbfs sudo chmod +s /sbin/mount_smbfs
10) Create rc.local
Create a text file with the following contents:
# rc.local # enable USB /sbin/turbo_kext_enabler.bin /sbin/kextload -v /System/Library/Extensions/IOUSBMassStorageClass.kext /sbin/kextload -v /System/Library/Extensions/smbfs.kext /sbin/kextload -v /System/Library/Extensions/udf.kext /sbin/kextload -v /System/Library/Extensions/msdosfs.kext /sbin/kextload -v /System/Library/Extensions/ntfs.kext # enable cron /usr/sbin/cron
Name it "rc.local" (no quotes) and place it in your AppleTVUpdate folder on your desktop.
scp -1 -r ~/Desktop/AppleTVUpdate/rc.local frontrow@AppleTV.local:~ scp -1 /usr/bin/crontab frontrow@AppleTV.local:~ scp -1 /usr/bin/nano frontrow@AppleTV.local:~ scp -1 /usr/sbin/cron frontrow@AppleTV.local:~
sudo mv ~/rc.local /etc/ sudo chown root:wheel /etc/rc.local sudo mv ~/crontab /usr/bin sudo mv ~/nano /usr/bin sudo mv ~/cron /usr/sbin sudo chown root:wheel /usr/bin/crontab sudo chown root:wheel /usr/bin/nano sudo chown root:wheel /usr/sbin/cron sudo chmod 4555 /usr/bin/crontab sudo chmod 555 /usr/bin/nano sudo chmod 555 /usr/sbin/cron
11) Enable VNC
echo 71463E00FFDAAA95FF1C39567390ADCA > /Library/Preferences/com.apple.VNCSettings.txt
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart \ -configure -clientopts -setvnclegacy -vnclegacy yes
sudo /System/Library/CoreServices/RemoteManagement/ARDAgent.app/Contents/Resources/kickstart -activate -configure -access -on -restart -agent -privs -all
--PatentBoy 01:15, 28 March 2008 (CET) Where can I grab the ARDAgent.app? From Tiger or Leopard install, for example?
--Kheops 18:22, 28 March 2008 (GMT+7) You can copy the RemoteManagement folder from the recovery.dmg:
sudo mount -uw / sudo touch /.readwrite cd ~ sudo dd if=/dev/disk0s2 of=recovery.dmg bs=1m sudo hdiutil mount recovery.dmg sudo hdiutil mount /Volumes/Recovery/OS.dmg sudo cp -pr /Volumes/OSBoot\ 1/System/Library/CoreServices/RemoteManagement/ /System/Library/CoreServices/RemoteManagement/ sudo cp -pr /Volumes/OSBoot\ 1/System/Library/Perl/ /System/Library/Perl/ sudo cp -pr /System/Library/Perl/Extras/5.8.6/ /System/Library/Perl/5.8.6/
Then you will be able to run the 'kickstart' commands above, but still I didn't succeed to connect (the ARDAgent is running, but I have "connection refused(16001)" from my VNC client
--Jzahn 18:33, 12 April 2008 (CEST)I managed to run vnc on 2.0.1 by just throwing: ssh /System/Library/CoreServices/AppleVNCServer.bundle/Contents/MacOS/AppleVNCServer
Oh, yes, and starting it also helps: /System/Library/CoreServices/RemoteManagement/AppleVNCServer.bundle/Contents/MacOS/AppleVNCServer &
--ColdCowboy 06:06, 11 September 2008 (CEST) Once you're sharing a screen with your ATV how do you control it? Keyboard and mouse don't work
11 September 2008 - Ya how do you control it, i tried rebooting finder but no luck is there something im missing? all i want to do is install SimplifyMedia.dmg so i can share my music with my iPhone
12) Disable Updates
To prevent future updates from breaking your custom Apple TV don't forget to add the Apple update site to your hosts file as a loop back:
a) on AppleTV
sudo bash -c 'echo "127.0.0.1 mesu.apple.com" >> /etc/hosts'
13) Reboot the AppleTV
a) on AppleTV
--Elchubi 09:55, 6 April 2008 (CEST) Success! Watchdog is on the kernel... Just replace /mach_kernel.prelink with the one from 1.0 and follow the same steps from that version. Some things stop working like AirTunes, so it is a tradeoff
At this point your AppleTV should come back up with full 1080i/1080p support, AirTunes working, HD Rentals working, AFP running, USB working (and the drive should automount), ATVFiles should be running, and ssh should be working. You can access your apple tv from your laptop just like some other shared disk.