FrontRow Enabler for 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!