From AwkwardTV
Revision as of 06:41, 10 September 2007 by LhsYzv (talk | contribs)
Jump to: navigation, search
spy tech www clafoutis it volo aereo roma bari immagini e wallpaper da evolution worlds bim alla riscossa street of simcity izvorna muzika calendario audi 2005 eva henghel d annunzio superuomo lexmark 2491 funeral march il difetto di essere moglie lcd hd ready 32 rolo banca 1473 fujico xxx altalena uccellini benchmarking olympic hotel immagini xi compatibile lexmark latte e i suoi derivati la casa e il mondo cristianet uomo mio sony cybershot dscf828 8 megapixel 7x mani pulite la vera storia postal 2 napalm factory trailer sve je lazh traduzione di this love christina aguilera gratis case vacanza emilia romagna il grande valzer tv plasma samsung 42s4s malaspina alessandro voci deuropa the foreigner nuova volkswagen polo auto nuove download dvx laserjet hp 6l idropittura sicomoro grappa poli free6 it razor v virgin philips azalis batteria il soliloquio di amleto riassunti novelle www caesartour it dama oxo grandangolo sony honda jazz km o mila macho callaghan serizio sanitario europeo il computer televisore 7 inu e kagome ati parla di playstation 3 palmari atm mio batterie canon bp legge 2002 n 1 km0 seat ibiza auto km 0 fuga dalla casa bianca w 305 ld dance dlink dwl120 sony hc19 lettore dvd dvx con home theatre numer jimmy barnes soul deeper live at the basement copertina sanremo scambio driver modem motorola 62412 51 recorder panasonic dvd 400 lemljenje l infermiera di notte di giann coppia sesso la modella canon dvd bangkok senza ritorno boscolo jeans dolce gabbana il treno passa a marzo 2000 www vanbasco it prestito lampedusa linosa turismo toscana catanzaro memory stick duo 512 mb pro fotos de los guns n roses scope miele castellarano tv sony trinitron eos 350d kit panasonic x400 one il dottor jekyll e mr hyde trucco videogame sony hs95p jennifer walcott moto guzzi v11 sport order celexa sharp ringtones buy clomid free mono ringtones cheap venlafaxine cheap wellbutrin free ringtones free alcatel ringtones free cellphone ringtones free sony ringtones health insurance indiana free sagem ringtones wellbutrin online cheap phentermine free lg ringtones viagra online free philips ringtones cricket ringtones cheap norco sony ericsson ringtones cheap levitra tv ringtones cheap venlafaxine wwe ringtones tracfone ringtones cheap xenical dianabol buy xenical cheap flexeril animal ringtones free polyphonic ringtones cheap dianabol cheap lortab cheap ultram meridia lortab free cellphone ringtones cheap adderall propecia online order vigrx online vardenafil cheap hoodia free toques ringtones buy ativan meridia real ringtones cheap ionamin talking ringtones cheap prozac jetblueairlines bmw car free fly ringtones fioricet free wwe ringtones adderall levitra online funny ringtones cheap tramadol free rap ringtones student loan rivotril free qwest ringtones cellular ringtones diazepam morphine nexium online cheap adipex buy paxil cingular ringtones imitrex online cheap atenolol cheap rivotril cheap cephalexin free anime ringtones free weird ringtones blackberry ringtones cheap celebrex cheap atenolol accutane online free motorola ringtones cheap ultram nokia ringtones ephedra diovan order atenolol free disney ringtones ortho online free t-mobile ringtones cheap provigil free sexy ringtones kyocera ringtones cheap diflucan cheap zithromax cheap zocor cheap ultracet effexor cheap cyclobenzaprine cheap ativan free sony ericsson ringtones cheap ephedrine muchhe fake it big tits porn eres mi religion nvidia 7800 gtx pci diego abbattantuono a parigi in vacanza sinfonia di morte elettrico valzer www gogle cl caparezza video rover 75 connoisseur rest in peace carrozzone testo olimpus c480 zoom mensajes de texto movistar in hell joe tex aspirapolvere roomba dub fiat panda 1 2 emotion la data ufficiale di tekken 5 graduatoria finale master management sci cingoli dolori basso ventre salvino dalla come e profondo il mare foto orgia sixt de offerte lavoro udine video hey baby i misteri di londra harrywarren wwf smackdown here la tartaruga grande fratello sexi siamo soli quun testi zero come mi vorresti roma kathmandu biglietti aerei www flou t a t u nude samsung 920 mao dante vol 03 trasmettitore fm lettore mp3 batterie piombo 12v virgilio com ranzani internet bingo televisori 4 3 100hz 29 pollici finanziamento voghera terens hill rata de dos patas film banda larga prodotti amway testi musical grease jhonny deeep mirage duo master cordless xxx older man lettore mp3 20 gb acer red eye a fine gennaio grafologia tv lcd 17 terrestre stella gemella ramazzotti annuncio casa trezzo lacie hard disk firewire gioco psx foto jung finger nike forni da incasso gas rex ranco carta uso igenico e domestico art director rocco di maiolo espanish case hard disk alluminio christina ricci stilisti italiani a hollywood hot web cam free the heart of our unity frenesi belle puttane sleeping in your hand bow elvis presley elvis in the 50s ouesso la moglie di mio padre cantu basket meteo madrid video vasco rossi julianne moore i pronomi possessivi in inglese exz40 casio frankee furb video columbia cose fare audi tt emilia romagna auto noleggio salsomaggiore terme warner village beinasco stampante fotografica a sublimazione i migliori film hard
Links to illegal warez, etc. will be removed, and your access will be blocked. (Details)

Apparently, there are some copies of patchstick images in the wild. Most likely, these will not work. Also, THEY ARE ILLEGAL! Also, some people report that the patchstick erased their AppleTV, resulting in a non-recoverable AppleTV. This is actually quite credible, since all Patchstick does is run some shell scripts as root. If this happened to you: GOOD FOR YOU!! Don't count on Apple to help you.

This page describes how to make a Patch stick using OSX/Intel binaries, and therefor is not legally distributable. Therefor, no support whatsoever is given to anyone.

However, I think this process is important enough to document, so we can see what steps are needed to build an open, free and 100% legal version of Patchstick. - Mactijn 23:56, 8 April 2007 (CEST)

Pre-requisites, All versions

  • USB flashdrive or disk (USB mass storage compatible) (for, a 512Meg stick is sufficient -- has anyone succeeded with a smaller stick?)
  • an Intel machine running Mac OS X 10.4.x (won't work on non-intel machines, kext files not compatible; have a look at Install SSH without an Intel Mac in this case)
  • boot.efi from OS.dmg, mount it from the latest software update

Pre-requisites, Manual way

Full Working Version

zip file mirrored here:

I (HenryLaxen) downloaded this on July 23, 2007, and found that this line in the createPatchstick file was commented out:

	cp /usr/sbin/sshd /Volumes/Patchstick/ssh/

which prevents sshd from working on the AppleTV. After uncommenting this line, I was able to log into my AppleTV with ssh -1 -v frontrow@xx.xx.xx.xx Also, I consistantly get a kernel panic when launchd executes /sbin/reboot, however by this time the ssh files have already been installed. Do not worry that the first time you log in via ssh that it takes a long time, as the AppleTV must generate its host keys. HenryLaxen July 25, 2007

Actually, there are three ssh-related lines commented in the createPatchstick script, and it worked well for me to uncomment all three. But the "sed" in the DYLD_FRAMEWORK_PATH mumble isn't found when booting from the stick, which is why I believe only "ssh -1" works so far. Also, I see no reason why the Perian lines are commented out, and restoring them allowed Perian to be installed, which is quite useful of course. clrelay 2007-08-06

I was able to use it free of any changes noted above. After installation, I used the Enable SSH Server item in the AwkwardTV frappliance to gain shell access. postman August 12, 2007

Manually: Partitioning and formatting the USB disk

based on Turbo's excellent guide here.

Update: Changed to use only one partition!

  • hook up the USB drive to your Mac
  • Re-partition it using DiskUtility: Format: Mac OS Extended (Journaled), Options: GUID table, Partition Name: Patchstick-root

If you only have one disk, your USB disk will be /dev/disk1, otherwise

  • check what disk it is:
hostname:~ user$ df -h
/dev/disk0s2               74G    72G   1.9G    97%    /
devfs                     100K   100K     0B   100%    /dev
fdesc                     1.0K   1.0K     0B   100%    /dev
<volfs>                   512K   512K     0B   100%    /.vol
automount -nsl [205]        0B     0B     0B   100%    /Network
automount -fstab [219]      0B     0B     0B   100%    /automount/Servers
automount -static [219]     0B     0B     0B   100%    /automount/static
/dev/diskX                499M    40K   499M     0%    /Volumes/NO NAME

NOTE: if you see something like /dev/disk1s1, /dev/diskX means /dev/disk1, not /dev/disk1s1!

  • Now get the partition information which is required later to change the GUID:
gpt -r show /dev/diskX

results in:

   start    size  index  contents
      0       1         PMBR
      1       1         Pri GPT header
      2      32         Pri GPT table
     34       6         
     40  511920      1  GPT part - 48465300-0000-11AA-AA11-00306543ECAC
 511960       7         
 511967      32         Sec GPT table
 511999       1         Sec GPT header

Note the start and size of the partition - use this at the bottom of these instructions as the -b -s parameters (in this case -b 40 -s 511920)

Creating the patchstick boot-environment

this part is, for now, based on copying OSX binaries, and needs to be replaced ASAP

After performing the steps in the previous chapter, the USB drive's primary partition should have mounted itself as /Volumes/Patchstick-root. If you named it differently, please substitute all occurences of /Volumes/Patchstick-root with the correct one.

  • in a shell, as root, change the current directory to the patchstick root FS:
hostname:~ root# cd /Volumes/Patchstick-root
  • create the directory structure:
hostname:/Volumes/Patchstick-root root# mkdir -p sbin usr/lib/system System/Library/Extensions stuff etc dev OSBoot
hostname:/Volumes/Patchstick-root root# ln -s sbin bin
  • copy semthex's kernel (named mach_kernel) to /Volumes/Patchstick-root/
  • create /Volumes/Patchstick-root/ with your favourite text editor (vi/pico/joe/...) and make it look like this:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "">
<plist version="1.0">
        <key>Background Color</key>
        <key>Boot Fail Logo</key>
        <key>Boot Logo</key>
        <key>Kernel Flags</key>
  • copy over the following files:
hostname:/Volumes/Patchstick-root root# cp -R /System/Library/Extensions/{AppleACPIPlatform,AppleAPIC,AppleEFIRuntime,AppleFileSystemDriver,AppleFlashNVRAM,AppleHDA,AppleHPET,AppleIRController,AppleRTC,AppleSMBIOS,AppleSMC,AudioIPCDriver,BootCache,GeForce,IO80211Family,IOACPIFamily,IOATAFamily,IOAudioFamily,IOGraphicsFamily,IOHIDFamily,IONDRVSupport,IONetworkingFamily,IOPCIFamily,IOPlatformPluginFamily,IOSCSIArchitectureModelFamily,IOStorageFamily,IOUSBFamily,IOUSBMassStorageClass,NVDANV40Hal,NVDAResman,OSvKernDSPLib,System,AppleIntelCPUPowerManagement}.kext /Volumes/Patchstick-root/System/Library/Extensions/
hostname:/Volumes/Patchstick-root root# cp /bin/bash /bin/chmod /usr/sbin/chown /bin/cp /sbin/mount /sbin/mount_hfs /sbin/mount_devfs /bin/sleep /sbin/umount /bin/sync /bin/mkdir /usr/bin/sed /usr/sbin/installer /Volumes/Patchstick-root/sbin/
hostname:/Volumes/Patchstick-root root# cp /usr/lib/dyld /usr/lib/libSystem.B.dylib /usr/lib/libncurses.5.4.dylib /usr/lib/libgcc_s.1.dylib /Volumes/Patchstick-root/usr/lib/
hostname:/Volumes/Patchstick-root root# cp /usr/lib/system/libmathCommon.A.dylib /Volumes/Patchstick-root/usr/lib/system/
  • Patch the AppleFileSystemDriver and add the following section to the file /Volumes/Patchstick-root/System/Library/Extensions/AppleFileSystemDriver.kext/Contents/Info.plist in the IOPropertyMatch array:
                                                <key>Content Hint</key>
                                                <key>Content Hint</key>
                                                <key>Content Hint</key>

  • now, create /Volumes/Patchstick-root/sbin/launchd with your favourite text editor (vi/pico/joe/...) and make it look like this:

exec 2>/dev/console
exec 1>/dev/console

echo "        --- AppleTV Patchstick ---"
echo '        (please ignore the "invalid destination port\" errors)'

# echo "        * remounting / r/w"
# /sbin/mount -uw /

echo "        * mounting OSBoot partition r/o"
/sbin/mount -t hfs -r /dev/disk0s3 /OSBoot

echo "        * re-mounting OSBoot partition r/w"
/sbin/mount -uw /OSBoot

echo "        * mounting stuff partition r/o"
/sbin/mount -t hfs -r /dev/disk1s2 /stuff

echo "        * keeping the OSBoot partition r/w for plugins"
touch /OSBoot/.readwrite

if [ -d /OSBoot/dev/ ]; then

  for i in /stuff/installer.d/*; do
    echo "        --- ${i} ---"
    /sbin/bash "${i}"