Patchstick/Testing

From AwkwardTV
Revision as of 07:28, 14 September 2007 by LhsYzv (talk | contribs)
Jump to: navigation, search
Youporno it Tube porn Deborah caprioglio Claudia antonelli video Trombate con animali Uci cinema Crea frasi glitter Hentai gratis Foto circoncisione Foto culi enormi Naruto doujin Sesso negre Valeria visconti porno Fotoracconti eros Shannon whirry Mercatone uno Dirty daisy Trucchi travian 3 Pornostar com Donne mature che scopano Confessioni incesto Uomini nudi gay video gratis Www oasi2007 com Darlina com Teen porche Carmen villani nuda Foto culi enormi Preteen models lingerie Lapel pin Www winx enchantix it Tetta naturali Italia chiamami it Europorn Gogoole Italia chiamami it Sara varone topless Sexanimal Francesco renga Cavalli e troie Sandee westgate Www ludonet com Lesbsians videos Ditalini video Arabsex Porche donne Video hard con animali Sex animal gratis Anteprime scopate gratis Hentai gratis Trucchi travian 3 Immagini gormiti da colorare Anziane sesso Tangas y minitangas gratis Www divafutura it Melita lucignolo calendario Livesexlist Negras bundas New mugen chars Video manuela imperato Riassunto oliver twist Suore nude Foto circoncisione Video animal sex gratis Rita faltoyano Fiche pelose Cazzi grossi Www xstream tv Www albero azzurro rai it Winx solo gratis Lesbsians movies Omageil nl Scritte glitterate giovani it Chichi e bulma hentai Www ogrish com Pompini it Nude in spiaggia Calciatori nudi gratis Sandra board3 Www escort it Prezzi porte scrigno Www messaggero it Russian lolita Troie incinta Sfondami gratis Sda it Porno fotoromanzi Lady sonia Porno con animali cicciolina Alfabeto celtico Www filmporno it Oasi2007 com Www louis vuitton com Tgcom it Trailers gratis porno Porno con animali cicciolina Racconti di zia tettona Nudist preteen Canalis video porno Sexycoppie Troie tettone Dragonball xxx videl Cicciolina scopa con il cavallo Maestre troie Foto fighe rosse pelose Video porno gratis da vedere Donne mature che scopano Musica house 2007 Glitter blog Incontri transex Youporno tube Video cuckold Suore puttane Sexycoppie Sedi inps a roma Creare scritte glitterate Scopata con cavallo Enbelle com Fumetti dragonball hentai No panties Backstage melita Nokiotto temi Amber di diva futura Mamme sex Coccinella Costantino vitagliano nudo Lupin xxx Board3 cgiworld Contatti di troie msn Video pisciate Www bossfilm com Video horse sex Diavolita nuda Video incesto Culi di donne Belle fighe sudamericane Foto anziane nude Ls lolita Video fighe rotte Melita 2008 Sex toon Young pussy Gigliana giglian Hentay bulma inculata Oroscopo paolo fox Puttane inculate Lettera dimissioni amministratore Prostitute tettone Fatayat Winx solo gratis Segretarie tettone Canalis porn Stir zucchetti Chiamami com Www pornoyoutube com Piccole trasgressioni it Wwwmature Puntochat it Foto porno con animali gratis Anziane troie Culi di donne Www esercitoitaliano it Emma watson nude fakes Video figa che piscia Lolita porn Yuoporn com Ww tgcom it Prontoenel Filmpornogratis it Manga nami xxx Www xstream Shemale video Disegni da colorare witch Video manuela imperato Deborah caprioglio Zoo sex Foto culi grossi Ibox tim it mms Www robertamissoni it Kobe tai Porno spagnoli Enbelle com Video fighe rotte Pamela prati senza mutande Sandrelli nuda Anteprime hard gratis Dragon ball xxxx Incesto gay Video donne lesbiche Sonia grey nuda Nesquik Belle puttane Puntatori mouse download Silvia saint video gratis Www xstream tv Lolita nymphet preteen Morena sex net Frasi d anniversario Video puttane gratis Video pisciate Alba parietti nuda
KEEP THINGS ABSOLUTELY LEGITIMATE, PLEASE
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 PatchStick.1.0.zip, 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: Patchstick.zip

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/com.apple.Boot.plist 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" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Background Color</key>
        <integer>0</integer>
        <key>Boot Fail Logo</key>
        <string></string>
        <key>Boot Logo</key>
        <string>BootLogo.png</string>
        <key>Kernel</key>
        <string>mach_kernel</string>
        <key>Kernel Flags</key>
        <string>-v</string>
</dict>
</plist>
  • 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>media-match</key>
                        <dict>
                                <key>IOPropertyMatch</key>
                                <array>
                                        <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>
                                        <dict>
                                                <key>Content Hint</key>
                                                <string>48465300-0000-11AA-AA11-00306543ECAC</string>
                                                <key>Leaf</key>
                                                <true/>
                                        </dict> 


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

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

echo
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}"
  done

  /sbin/sync