Prerequisites: OS X Mountain Lion.app Lion Recovery Update v1.0 LuggagePackages * To Avoid Permission Issues. Create Root Account and Login as Root when your ready to start guide. * Google it if you do not know how create root account * Your apps need to be set with following permissions: drwxr-xr-x root admin ) * This guide will only show you how to customize BaseSystem.dmg. How you use it will be up to you. * IMPORTANT"There only 123.5 MB available space on RecoveryHD." * You have 2 options if want to use RecoveryHD on your disk. A) Keep 3rd party apps under 123.5 MB. If this is path you choose, delete BaseSystem.dmg normally in /dev/disk0s3 aka "Recovery Partition" and replace it with the one from guide. B) Know how to add space to partition, I will not show you in this guide. I may get to it at later date. ____________________________________________________________ 1) Copy and Paste Utilities.plist we need to Hack to desktop. * Commands below assume "OS X Mountain Lion.app" is in /Applications. Change path if you need to. Code: $ hdiutil attach /Applications/Install\ OS\ X\ Mountain\ Lion.app/Contents/SharedSupport/InstallESD.dmg $ cp /Volumes/Mac\ OS\ X\ Base\ System/System/Installation/CDIS/OS\ X\ Utilities.app/Contents/Resources/Utilities.plist ~/Desktop * Create Project folder and name it Recovery. Add another folder named inside of it. Name it RecoveryHD: Code: $ mkdir /tmp/Recovery $ mkdir /tmp/Recovery/RecoveryHD && cd /tmp/Recovery/RecoveryHD 2) Preparation: You will only have 100 MB by default. We add 1GB to .dmg, you can add more if you need it. Locate Applications and paths for source files. You will need to run mdfind for each app. Open terminal and run: Code: $ mdfind "application name" # You may need to run $ mdfind "Company-Name-for-Software" Example: Code: $ mdfind Disk Warrior # You should see lines like below with directories. You will need save output from terminal window to txt file. /Applications/DiskWarrior.app /Users/~/Library/Preferences/com.Alsoft.DiskWarrior.prefs Open TextEdit.app or Notes.app and copy paths and save this text file we will need it shortly.. 3) Time to Hack: Open text editor or Xcode we need add "BundlePath", "Application.app", "Path", "TitleKey", and "name" to Utilities.plist for each Application you want to add GUI Menu/ RecoveryHD. To find "Path" -> "String", use "control + click" -> "Show Packages" -> navigate to /Contents/MacOS/"name-of-app". Example: Code: <dict> <key>BundlePath</key> <string>/Applications/DiskWarrior.app</string> <key>Path</key> <string>/Applications/DiskWarrior.app/Contents/MacOS/DiskWarrior</string> <key>TitleKey</key> <string>DiskWarrior</string> </dict> Copy and paste to bottom Utilities.plist found on ~/Desktop. *** "SignatureCheck"* add "-skipSignatureCheck 1" Argument to <key- Path -> for all apps you plan to RecoveryHD Menu. * Very Important and do not skip this!!! Code: <key>Arguments</key> <array> <string>-skipSignatureCheck 1</string> </array> <key>BundlePath</key> Example how should look like with Xcode. 4) BaseSystem: * Create tmp folder for hack BaseSystem.dmg : Code: $ mkdir /tmp/Recovery $ mkdir /tmp/Recovery/RecoveryHD $ hdiutil attach /Applications/Install\ OS\ X\ Mountain\ Lion.app/Contents/SharedSupport/InstallESD.dmg $ hdiutil convert /Volumes/Mac\ OS\ X\ Install\ ESD/BaseSystem.dmg -format UDRW -o /tmp/Recovery/BaseSystem.dmg # Skip next line if you plan to re-size RecoveryHD or use dmtest to repackage ReccoveryUpdate. $ cp -r /Volumes/Mac\ OS\ X\ Install\ ESD/mach_kernel /Volumes/Mac\ OS\ X\ Base\ System\ $ hdiutil eject /Volumes/Mac OS X Install ESD $ hdiutil resize -size 2g /private/tmp/Recovery/BaseSystem.dmg $ hdiutil attach /private/tmp/Recovery/BaseSystem.dm * Add Utility Software and Source files to BaseSystem.dmg: Code: $ cp ~/Desktop/Utilities.plist /Volumes/Mac\ OS\ X\ Base\ System/System/Installation/CDIS/OS\ X\ Utilities.app/Contents/Resources/Utilities.plist Add Applications and Source Files: * Replace Utilities.plist with Hack Version: * Copy source directories paths to match same paths on Mac OS X Base System. * Use Paths from mdfind data we copied to .txt file. Code: $ cp -r /Applications/"Name-Of-Software"app /Volumes/Mac\ OS\ X\ Base\ System/Applications $ cp -r /Library/Application\ Support/"Name-Of-Software" /Volumes/Mac\ OS\ X\ Base\ System/Library/Application\ Support Example: Code: $ cp -r /Applications/SpeedTools\ Utilities\ Pro.app /Volumes/Mac\ OS\ X\ Base\ System/Applications $ cp /Library/Application\ Support/SpeedTools\ Utilities\ Support /Volumes/Mac\ OS\ X\ Base\ System/Library/Application\ Support 5) Final Steps: Eject, Convert, Rename and move BaseSystem.dmg Code: $ hdiutil eject /Volumes/Mac\ OS\ X\ Base\ System $ hdiutil convert /private/tmp/Recovery/BaseSystem.dmg -format UDRO -o /private/tmp/Recovery/RecoveryHD/BaseSystem.dmg $ sudo rm -rf /private/tmp/Recovery/BaseSystem.dmg Then Save RecoveryHD.dmg to your backup folder. You can stop here and make bootable USB or Netboot image from BaseSystem.dmg. 6) You can try either of these script1 and script 2for restoring RecoveryHD to Disk. Both have instructions on how process works. I tested baseSystem.dmg with FLASH Drive. I've never used dmtest so Im not sure what it will do. I figure 10.8.3 will be release in near future so Im going to wait. I need to do clean OS restore on my testing rig and If lose OS it want be big deal. I limited on time to do 2 restores if some thing goes wrong. My clone is corrupt. Tip: * You can delete "alias" /Volumes/Mac OS X Base System/System/Installation/Packages and replace it with /Volumes/Mac OS X Install ESD/Packages from installESD.dmg. * This will allow you to install OS X over existing OS with out deleting your files. * It does not create RecoveryHD!!!