#!/bin/sh clear echo "####################################################################################" echo "### ###" echo "### This script will modify your stock DVD so OS X Leopard ###" echo "### can be installed on a non-mac Intel PC ###" echo "### ###" echo "### Backed up only files : ###" echo "### ====================== ###" echo "### AppleIntelCPUPowermanagement.kext, AppleEFIRuntime.kext, boot.efi ###" echo "### ###" echo "### Backed up and replaced files : ###" echo "### ============================== ###" echo "### OSInstall.mpkg, AppleSMBios.kext, AppleHDA.kext, IONetworkingFamily.kext ###" echo "### GeForce.kext, NVDAResman.kext, NVDANV50Hal.kext ###" echo "### i386 folder, bless, minibless ###" echo "### ###" echo "### Added files : ###" echo "### ============= ###" echo "### ALCinject.kext, NVinject.kext, dsmos.kext ###" echo "### ###" echo "####################################################################################" echo "### ###" echo "### You may CANCEL this script within 15 seconds pressing (^C) ###" echo "### ###" echo "####################################################################################" echo "" echo ##### OFFERING TO CANCEL THE SCRIPT WITHIN 10 SECONDS ##### t=10 while [ "$t" != -1 ] do if [ "$t" = "0" ]; then printf "Go !" else printf "$t s... " fi sleep 1 t=$(expr $t - 1) done clear echo echo "#######################################" echo "### ###" echo "### Script will now proceed ###" echo "### ###" echo "#######################################" echo "" ##### CHECKING INSTALL PARTITION AND ENABLING OWNERS ##### echo echo "### Checking target Install Partition is present" if [ ! -d /Volumes/Install_DVD/ ]; then if [ -d /Volumes/Mac\ OS\ X\ Install\ DVD/ ]; then echo echo "### ERROR : SCRIPT REQUIREMENT NOT MATCHED :" echo echo " Target install Partition : \"/Volumes/Install_DVD/\" not found !" echo " A partition named \"Mac OS X Install DVD\" has been detected though," echo ' Do you want the script to remane it to \"Install_DVD\" : (y/n) ? \c'; read choice if [ "$choice" = "y" ]; then echo echo "### Renaming found Partition to : \"/Volumes/Install_DVD\"" diskutil rename /Volumes/Mac\ OS\ X\ Install\ DVD/ Install_DVD sleep 2 else echo echo "### WARNING : SCRIPT CANCELED BY USER :" echo echo " Target install Partition : \"/Volumes/Install_DVD/\" not found !" echo " A partition named \"Mac OS X Install DVD\" has been detected though," echo " If \"Mac OS X Install DVD\" is the partition you want to use :" echo echo " 1. Rename it to \"Install_DVD\"," echo " 2. Then restart this script." echo exit 0 fi else echo echo "### FAILURE : SCRIPT CANNOT CONTINUE" echo echo " Target Install Partition : \"/Volumes/Install_DVD/\" not found !" echo echo " 1. Restore original DVD to a partition," echo " 2. Rename it to \"Install_DVD\"," echo " 3. Restart this script." echo exit 0 fi fi echo echo "### Enabling \"Owners\" on Install Partition" vsdbutil -a /Volumes/Install_DVD/ ##### SETTING UP VARIABLES AND FUNCTION ##### APDIR=/Users/oki/Desktop TARGET=/Volumes/Install_DVD mkdir $TARGET/System/Library/Extensions-ORIG cpfix () { cp -Rf $1 $2 chown -R root:wheel $2 chmod -R 755 $2 } ##### BACKING UP AND REPLACING PACKAGES AND FILES ##### cd $APDIR/Macintosh/ echo echo "### Backing up and Replacing : \"OSInstall.mpkg\"" mv $TARGET/System/Installation/Packages/OSInstall.mpkg $TARGET/System/Installation/Packages/OSInstall.mpkg.ORIG cpfix packages/OSInstall.mpkg $TARGET/System/Installation/Packages/OSInstall.mpkg if [ -e $TARGET/System/Installation/Packages/OSInstall.mpkg ] && [ -e $TARGET/System/Installation/Packages/OSInstall.mpkg.ORIG ]; then echo " Success : File \"OSInstall.mpkg\" has been replaced" else echo " Failure : There has been a problem replacing file \"OSInstall.mpkg\"" fi echo echo "### Backing up and replacing : \"minibless\"" mv $TARGET/"Install Mac OS X.app/Contents/Resources/minibless" $TARGET/"Install Mac OS X.app/Contents/Resources/minibless.ORIG" cp -Rf boot/minibless "/Volumes/Install_DVD/Install Mac OS X.app/Contents/Resources/" chmod 755 $TARGET/"Install Mac OS X.app/Contents/Resources/minibless" chown root:wheel $TARGET/"Install Mac OS X.app/Contents/Resources/minibless" if [ -e $TARGET/"Install Mac OS X.app/Contents/Resources/minibless" ] && [ -e $TARGET/"Install Mac OS X.app/Contents/Resources/minibless.ORIG" ]; then echo " Success : File \"minibless\" has been replaced" else echo " Failure : There has been a problem replacing file \"minibless\"" fi echo echo "### Backing up and replacing : \"bless\"" mv $TARGET/usr/sbin/bless $TARGET/usr/sbin/bless.ORIG cpfix boot/bless $TARGET/usr/sbin/bless if [ -e $TARGET/usr/sbin/bless ] && [ -e $TARGET/usr/sbin/bless.ORIG ]; then echo " Success : File \"bless\" has been replaced" else echo " Failure : There has been a problem replacing file \"bless\"" fi echo echo "### Backing up and replacing : \"i386\" files" mv $TARGET/usr/standalone/i386 $TARGET/usr/standalone/i386.ORIG cpfix boot/i386-efi $TARGET/usr/standalone/i386 if [ -e $TARGET/usr/standalone/i386 ] && [ -e $TARGET/usr/standalone/i386.ORIG ]; then echo " Success : Folder \"i386\" has been replaced" else echo " Failure : There has been a problem replacing folder \"i386\"" fi echo echo "### Backing up : \"boot.efi\"" chflags -R nouchg $TARGET/System/Library/CoreServices/boot.efi mv $TARGET/System/Library/CoreServices/boot.efi $TARGET/System/Library/CoreServices/boot.efi.ORIG if [ -e $TARGET/System/Library/CoreServices/boot.efi.ORIG ]; then echo " Success : File \"boot.efi\" has been renamed to \"boot.efi.ORIG\"" else echo " Failure : There has been a problem renaming file \"boot.efi\" to \"boot.efi.ORIG\"" fi ##### BACKING UP AND REPLACING EXTENSIONS ##### cd $APDIR/Macintosh/kexts/ echo echo "### Backing up and Replacing Extensions" echo i1=0 i2=0 i3=0 for kext in *.kext do case $kext in "ALCinject.kext" | "NVinject.kext" | "dsmos.kext") # Will be added cpfix $kext $TARGET/System/Library/Extensions/$kext; if [ -e $TARGET/System/Library/Extensions/$kext ]; then echo " Success : Extension \""$kext"\" has been added" i1=$(expr $i1 + 1) else echo " Failure : There has been a problem adding extension \""$kext"\"" fi;; "AppleIntelCPUPowerManagement.kext") # Will be moved (might be required depending on the kernel used : | "AppleEFIRuntime.kext") mv $TARGET/System/Library/Extensions/$kext $TARGET/System/Library/Extensions-ORIG/; if [ ! -e $TARGET/System/Library/Extensions/$kext ] && [ -e $TARGET/System/Library/Extensions-ORIG/$kext ]; then echo " Success : Extension \""$kext"\" has been moved" i2=$(expr $i2 + 1) else echo " Failure : There has been a problem moving extension \""$kext"\"" fi;; *) # will be replaced mv $TARGET/System/Library/Extensions/$kext $TARGET/System/Library/Extensions-ORIG/; cpfix $kext $TARGET/System/Library/Extensions/$kext; if [ -e $TARGET/System/Library/Extensions/$kext ] && [ -e $TARGET/System/Library/Extensions-ORIG/$kext ]; then echo " Success : Extension \""$kext"\" has been replaced" i3=$(expr $i3 + 1) else echo " Failure : There has been a problem replacing extension \""$kext"\"" fi;; esac done echo echo "### Extensions added : " $i1 echo "### Extensions moved : " $i2 echo "### Extensions replaced : " $i3 echo "### Total Extensions processed : " $(expr $i1 + $i2 + $i3) ##### REMOVING EXTENSIONS CACHE ##### echo echo "### Removing \"Extensions.mkext\"" rm $TARGET/System/Library/Extensions.mkext if [ ! -e $TARGET/System/Library/Extensions.mkext ]; then echo " Success : \"Extensions.mkext\" has been removed" else echo " Failure : There has been a problem removing \"Extensions.mkext\"" fi echo echo "####################################################" echo "### ###" echo "### All Done !! ###" echo "### ###" echo "### Please check for reported errors if any. ###" echo "### ###" echo "####################################################" echo