_Do you want to skip all this text and just get the new FrontRow Enabler for 10.4.8?
Then click here.
_
Ok. So I wanted to install FrontRow 1.3 on my old PowerMac G5… Downloaded FrontRow Enabler 1.3, followed instructions, rebooted… And bam, no more login screen. How fun. Checking the comments on Andrew Escobar’s page, I realized 10.4.8 wasn’t supported just yet. So I used my trusty FireWire cable to fix my PowerMac (see how in the comments of Andrew’s page), and started to look for a way to patch FrontRow Enabler 1.3 to make it compatible with Mac OS X 10.4.8.

Here’s what I did.

Mount Andrew Escobar’ FrontRow Enabled DMG, and open
/Volumes/Enabler_1.3/Enabler.app/Contents/Resources/Scripts/main.scpt This is the script executed when you execute Enabler.app

main.scpt told me I needed those two patch files:
/Volumes/Enabler_1.3/.frameworkpatch and
/Volumes/Enabler_1.3/.pluginpatch
Download the Mac OS X Update 10.4.7 Combo PPC from Apple.

Use Pacifist to extract
/System/Library/PrivateFrameworks/BezelServices.framework/Versions/A/BezelServices and
/System/Library/LoginPlugins/BezelServices.loginPlugin/Contents/MacOS/BezelServices from MacOSXUpdCombo10.4.7PPC.pkg

Those are the two files that FrontRow Enabler is patching when you click the ‘Enable FrontRow’ button; I found this info in main.scpt

Patch both files using FrontRow Enabler patches:
`cd ~/Desktop/10.4.7-BezelServices.loginPlugin/Contents/MacOS
cp BezelServices BezelServices.bak
bspatch BezelServices BezelServices.patched ~/Desktop/pluginpatch

cd ~/Desktop/10.4.7-BezelServices.framework/Versions/A/
cp BezelServices BezelServices.bak
bspatch BezelServices BezelServices.patched ~/Desktop/frameworkpatchUse hexdump to be able to see the binary data of each file in clear text:cd ~/Desktop/10.4.7-BezelServices.loginPlugin/Contents/MacOS
hexdump BezelServices>BezelServices.hex
hexdump BezelServices.patched>BezelServices.patched.hex

cd ~/Desktop/10.4.7-BezelServices.framework/Versions/A/
hexdump BezelServices>BezelServices.hex
hexdump BezelServices.patched>BezelServices.patched.hexdiff the original and patched files to see what the patches changed:cd ~/Desktop/10.4.7-BezelServices.loginPlugin/Contents/MacOS
diff BezelServices.hex BezelServices.patched.hex

3770c3770

< 000fb60 4bff fed1 2f83 0000 419e 0020 8001 0058

> 000fb60 4bff fed1 2f83 0001 419e 0020 8001 0058

cd ~/Desktop/10.4.7-BezelServices.framework/Versions/A/
diff BezelServices.hex BezelServices.patched.hex

512c512

< 00026f0 4800 01d1 8101 0058 3821 0050 7f83 e378

> 00026f0 4800 01d1 8101 0058 3821 0050 3860 0003`
Ok, so now I know what bytes needed to be changed in 10.4.7 to enable FrontRow.
Now I just need to find the same bytes in the new 10.4.8 files, and create patches for those files.

`cd ~/Desktop/10.4.8-BezelServices.loginPlugin/Contents/MacOS
hexdump BezelServices>BezelServices.hex
grep -B 1 “2f83 0000 419e” BezelServices.hex

000faf0 bfc1 fff8 9001 0008 9421 ffb0 4bff febd

000fb00 2f83 0000 419e 0020 8001 0058 3821 0050

…`
Close enough… Ok, so BezelServices.loginPlugin/Contents/MacOS/BezelServices needs to get it’s 000fb03 byte changed from 00 to 01.

`cd ~/Desktop/10.4.8-BezelServices.framework/Versions/A/
hexdump BezelServices>BezelServices.hex
grep “0050 7f83 e378” BezelServices.hex

00026f0 4800 01d1 8101 0058 3821 0050 7f83 e378`
Well, what do you know… Exact match. And at the exact same location (00026f0) than the 10.4.7 file; I guess this patch doesn’t have to be changed after all.

Close to a solution now; just need to create a new .pluginpatch that will patch the correct byte, and it should work fine.

sudo port install bsdiff cp BezelServices BezelServices.patched
Now to patch the correct byte, I need an hex editor.
Seems 0xed would do fine.

To verify my patch:
`hexdump BezelServices.patched>BezelServices.patched.hex
diff BezelServices.hex BezelServices.patched.hex

3804c3804

< 000fb00 2f83 0000 419e 0020 8001 0058 3821 0050

> 000fb00 2f83 0001 419e 0020 8001 0058 3821 0050`
Perfect.

bsdiff BezelServices BezelServices.patched .pluginpatch1048
Now let’s repackage FrontRow Enabler with this new patch.
And done!

You can grab the new Enabler1.3.1.dmg here.
Warning: Don’t install that on anything else than 10.4.8! You’ll break your OS X install!