Difference between revisions of "Patch Over Network"

From AwkwardTV
Jump to: navigation, search
(New page: == Project Goal == An alternative approach to "hacking" the appletv without opening the case. This method would use the build in Apple software updater to install custom hacks and patches....)
 
(Added bits about software update as done by "real" mac os X.)
Line 33: Line 33:
  
 
This is as far as I've gotten.  No combination of variables and formatting in the version.xml seems to work.
 
This is as far as I've gotten.  No combination of variables and formatting in the version.xml seems to work.
 +
 +
== Software Update in MacOS X ==
 +
 +
"Real" Mac OS X connects to swscan.apple.com
 +
 +
Connection can be emulated using wget (or anything else that can alter User-Agent string:
 +
<pre>
 +
wget -U --user-agent="CFNetwork/4.0" http://swscan.apple.com/content/catalogs/index-1.sucatalog
 +
</pre>
 +
 +
It is possible that AppleTV software update expects a similar xml catalogue.

Revision as of 13:04, 4 April 2007

Project Goal

An alternative approach to "hacking" the appletv without opening the case. This method would use the build in Apple software updater to install custom hacks and patches.
Even when the USB method is successful (and that would still be awesome), this method may be better because it would allow server based updates on an on going basis without creating a whole new updating system.

Known Info

When "Update Software" is selected from the settings menu, this file is requested: http://mesu.apple.com/version.xml . As of 2007-04-03 that file contained the following...

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
</dict>
</plist>

Not very helpful.

By adding mesu.apple.com to the hosts file to point to a local web server, we are able to modify this file and make the AppleTV unit download the modified file.

When downloading this file, the following is recorded by syslog...

Apr  3 20:38:47 appletv.local AppleTV FrontRow[113]: T:[0x193fa00] UPD: update check starting
Apr  3 20:38:47 appletv.local AppleTV FrontRow[113]: UPD: checking version info at http://mesu.apple.com/version.xml.
Apr  3 20:38:48 appletv.local AppleTV FrontRow[113]: T:[0x193fa00] downloading file http://mesu.apple.com/version.xml
Apr  3 20:38:48 appletv.local AppleTV FrontRow[113]: finished downloading file http://mesu.apple.com/version.xml
Apr  3 20:38:48 appletv.local AppleTV FrontRow[113]: VERS: comparing OS 10.4.7 with (null)
Apr  3 20:38:49 appletv.local AppleTV FrontRow[113]: VERS: comparing OS build 8N5107 with (null)
Apr  3 20:38:49 appletv.local AppleTV FrontRow[113]: UPD: versions available: OS:(null)/(null) EFI:(null) IR:(null) SI:(null)/(null) valid:1
Apr  3 20:38:49 appletv.local AppleTV FrontRow[113]: T:[0x193fa00] UPD: updating check complete

It seems to be looking for OS, build, EFI, IR, and SI version numbers in the xml file. If it can be determined the format of this xml file, it would be possible to have the AppleTV unit download and install patched versions of the OS automatically.

This is as far as I've gotten. No combination of variables and formatting in the version.xml seems to work.

Software Update in MacOS X

"Real" Mac OS X connects to swscan.apple.com

Connection can be emulated using wget (or anything else that can alter User-Agent string:

wget -U --user-agent="CFNetwork/4.0" http://swscan.apple.com/content/catalogs/index-1.sucatalog

It is possible that AppleTV software update expects a similar xml catalogue.