Difference between revisions of "Patchstick"
m (Added XML header tags, re-indented) |
m (Fixed a formatting bug) |
||
Line 37: | Line 37: | ||
<item> | <item> | ||
... | ... | ||
+ | </item> | ||
</pre> | </pre> | ||
Line 51: | Line 52: | ||
<screenshot url="http://example.com/downloads/icon" /> | <screenshot url="http://example.com/downloads/icon" /> | ||
<enclosure url="http://example.com/downloads/mygreatnewfrappliance.tgz" md5="5655cc6f7d1ba118665fe14be41ad296" length="5650889" type="application/tgz" /> | <enclosure url="http://example.com/downloads/mygreatnewfrappliance.tgz" md5="5655cc6f7d1ba118665fe14be41ad296" length="5650889" type="application/tgz" /> | ||
− | <guid>mygreatnewfrappliance/guid> | + | <guid>mygreatnewfrappliance</guid> |
<version>1.0v1</version> | <version>1.0v1</version> | ||
<pubDate>Wed, 8 Jun 2005 19:00:00 GMT</pubDate> | <pubDate>Wed, 8 Jun 2005 19:00:00 GMT</pubDate> |
Revision as of 19:44, 2 April 2007
This is the page about Project Patchstick, a 100% legal way to open up the ATV for hacking without having to open the case.
Primary Goals
- Build our own Darwin kernel that boots on the ATV
- Build our own sshd (probably dropbear)
- Install sshd on the ATV, enable it
Secondary goals
- Add an awkwardtv.frappliance that shows screenshots, descriptions of frappliances and installs them online
- add more hacks (ericIII's ATVFiles comes to mind)
- make it work from a (small) USB stick
- create an image that can be put on a USB-stick even under Windoze (the no-brain-needed part)
- install wget (or similar) to simplify installation of further features
- ...
Steps to be taken
- get a homebrew Darwin kernel to boot up
- build boot scripts that upload the sshd binary to the ATV, and enable it
Artwork
- Artwork from BigBaconAndEggs for the boot screen
XML format
The idea is to have an XML format for fetching information on available plugins that is as easy as possible and as flexible as necessary. Please comment.
<?xml version="1.0" encoding="utf-8"?> <item> <category>Communication</category> <title>My Great New Frappliance</title> <shortname>mygreatnewfrappliance</shortname> </item> <item> ... </item>
Once the user clicks that, mygreatnewfrappliance XML gets loaded:
<?xml version="1.0" encoding="utf-8"?> <item> <category>Communication</category> <title>My Great New Frappliance</title> <shortname>mygreatnewfrappliance</shortname> <author>Joe Doe</author> <icon url="http://example.com/downloads/icon" /> <screenshot url="http://example.com/downloads/icon" /> <enclosure url="http://example.com/downloads/mygreatnewfrappliance.tgz" md5="5655cc6f7d1ba118665fe14be41ad296" length="5650889" type="application/tgz" /> <guid>mygreatnewfrappliance</guid> <version>1.0v1</version> <pubDate>Wed, 8 Jun 2005 19:00:00 GMT</pubDate> <copyright>© Copyright 2007 Joe Doe</copyright> <license>GPL</license> <URL>http://www.mygreatsite.com/myproduct</URL> <keywords>(set of keywords to be defined)</keywords> <info> <English> <subtitle>Cooking plugins is fun!</subtitle> <summary>This plugin doesn't really exist, but here we have one sentence of description saying what it does and why it is so insanely great.</summary> <description>A longer description here, up to one screen page</description> </English> <Dutch> </Dutch> <French> </French> <German> <subtitle></subtitle> <summary></summary> <description></description> </German> <Italian> <subtitle></subtitle> <summary></summary> <description></description> </Italian> <Japanese> <subtitle></subtitle> <summary></summary> <description></description> </Japanese> <Spanish> <subtitle></subtitle> <summary></summary> <description></description> </Spanish> </info> </item>
Code ideas
#!/bin/sh # # Initial ideas for AwkwardTV Patchstick Script to be done # by phoem at phoempc.com # v20070331.0 # echo -n "Disabling watchdog..." mkdir /Volumes/OSBoot/etc/mach_init.disabled mv /Volumes/OSBoot/etc/mach_init.d/ripstop.plist /Volumes/OSBoot/etc/mach_init.disabled echo "/sbin/kextunload -b com.apple.driver.AppleTCOWatchdog" >> /Volumes/OSBoot/etc/rc.local echo "done" echo -n "Installing sshd..." cp /usr/sbin/sshd /Volumes/OSBoot/usr/sbin/ cp /System/Library/LaunchDaemons/ssh.plist /Volumes/OSBoot/System/Library/LaunchDaemons/ssh.plist echo "done" echo -n "Installing various programs..." cp /usr/bin/sort /Volumes/OSBoot/usr/bin/sort cp /usr/bin/nidump /Volumes/OSBoot/usr/bin/nidump cp /usr/bin/passwd /Volumes/OSBoot/usr/bin/passwd cp /usr/bin/du /Volumes/OSBoot/usr/bin/du cp /usr/bin/kdump /Volumes/OSBoot/usr/bin/kdump cp /usr/bin/ktrace /Volumes/OSBoot/usr/bin/ktrace cp /usr/sbin/kextstat /Volumes/OSBoot/usr/sbin/kextstat cp /usr/bin/gdb /Volumes/OSBoot/usr/bin/gdb/ cp /usr/bin/vim /Volumes/OSBoot/usr/bin/ cp /usr/bin/nc /Volumes/OSBoot/usr/bin/ cp /usr/bin/diff /Volumes/OSBoot/usr/bin/ cp /usr/bin/strings /Volumes/OSBoot/usr/bin/ cp -pRvf /usr/libexec/gdb /Volumes/OSBoot/usr/libexec/ cp -pRvf /Volumes/OSBoot/System/Library/PrivateFrameworks/PlatformHardwareManagement.framework /Volumes/OSBoot/System/Library/PrivateFrameworks/ cp /usr/bin/bspatch /Volumes/OSBoot/usr/bin/ cp /usr/bin/bzip2 /Volumes/OSBoot/usr/bin/ echo "done"