Home > createOSXinstallPkg, DeployStudio, Mac administration, Mac OS X > Installing custom OS X builds using DeployStudio and createOSXinstallPkg

Installing custom OS X builds using DeployStudio and createOSXinstallPkg

From time to time, Apple will release a custom build of Mac OS X to support a new Mac model. A current example is the Mid 2013 MacBook Airs, which were released after 10.8.4, but before 10.8.5. Since they have hardware that wasn’t accounted for in the standard 10.8.4 software, they’re running a custom build of 10.8.4.

Mac App Store 10.8.4 build number: OS X 10.8.4, build 12E55

Mid 2013 MacBook Air 10.8.4 build number: OS X 10.8.4, build 12E3067

While the Air’s custom build should run fine on older 10.8-compatible Macs, the Mid 2013 MacBook Airs aren’t able to run from the 10.8.4 build currently available from the Mac App Store.

In the event that you need to reinstall OS X on a Mac that needs a custom build, Apple’s solution is to use Recovery HD or Internet Recovery to download and install the correct version of OS X for that Mac. However, if your network connection is behind a proxy server, you may not be able to connect back to Apple while booted from Recovery HD, or be able to boot from Internet Recovery.

To help address this, you can use DeployStudio and OS install packages created by createOSXinstallPkg to help address situations where you can’t use Apple’s Recovery, but still need the ability to install custom builds of Mac OS X. See below the jump for the procedure.


A copy of Install OS X Mountain Lion.app from the Mac App Store.

A copy of the InstallESD.dmg used to install the custom build.

Note: The custom build’s InstallESD must be obtained via Recovery HD or Internet Recovery, so you may need to take a machine off your network in order to get it.

Mac running 10.6.8 or higher (to build the createOSXinstallPkg installer on.)

DeployStudio 1.6.1 or higher running on another Mac

DeployStudio 1.6.1 boot set running the custom build of Mac OS X needed for your hardware (can be NetBoot, or using a Firewire/USB drive.) The boot set needs to be created with Python selected as a tool to include in the bootable system.

Screen Shot 2013-07-14 at 10.39.09 PM

Replacing the stock 10.8.4 InstallESD with the custom build’s InstallESD

1. Right-click on the copy of Install OS X Mountain Lion.app from the Mac App Store and select Show Package Contents.

Screen Shot 2013-07-14 at 10.02.24 PM

2. Navigate to Contents: SharedSupport and replace the stock 10.8.4 InstallESD.dmg file with the custom build’s InstallESD.dmg

Screen Shot 2013-07-14 at 10.02.57 PM

Creating the automated installer package with createOSXinstallPkg

1. Download the latest version of createOSXinstallPkg to your Mac.

2. Run the following command to create a basic uncustomized installation package (see the documentation if you want to create a customized installer):

sudo /path/to/createOSXinstallPkg --source /Applications/Install\ OS\ X\ Mountain\ Lion.app

3. Copy your newly-created createOSXinstallPkg installer to your DeployStudio server.

Putting it into a DeployStudio workflow

1. Set up a new package in DeployStudio for your createOSXinstallPkg installer. In the case of my example, I’m calling it MacBook Air 2013 10.8.4.

2. Set up a new DeployStudio workflow where the workflow is set to do two tasks:

A. Repartition the boot drive with one partition (this erases any existing OS and Recovery HD partitions).

Screen Shot 2013-07-15 at 7.13.35 AM

B. Install one package, configured to install MacBook Air 2013 10.8.4. I did not check the box to set it as a Postponed installation, so that the DeployStudio boot set would do the install rather than doing it on first boot. In the case of my example, I’m calling it Restore 2013 MacBook Air Custom OS.

Screen Shot 2013-07-15 at 7.13.41 AM

Running the automated installation

1. Boot the Mac that needs reinstallation to DeployStudio.

2. Log in and select the Restore 2013 MacBook Air Custom OS workflow.

Screen Shot 2013-07-14 at 10.24.21 PM
Screen Shot 2013-07-14 at 7.16.57 PM

3. Depending on your automation preferences, you may need to select the drive. Once selected, DeployStudio should wipe and repartition the target drive, then install the custom version of Mac OS X for your Mac model.

Screen Shot 2013-07-14 at 8.25.22 PM

Screen Shot 2013-07-14 at 8.25.38 PM

4. Wait for DeployStudio to finish installing the package on the Mac and hit Quit when prompted. Your Mac should reboot at this point.

Screen Shot 2013-07-14 at 8.35.55 PM

5. Stand up, walk away, go get some coffee. If all goes well, your Mac should install the custom version of OS X and set up a Recovery HD partition on the designated drive without needing any further intervention on your part.

Screen Shot 2013-07-14 at 7.34.32 PM

Screen Shot 2012-07-24 at 8.30.59 PM

Screen Shot 2013-07-14 at 8.10.55 PM

  1. Ray
    July 18, 2013 at 2:26 pm

    What happens if you cant even get the macbook air to boot to Deploy Studio? I’ve tried selecting the startup disk in System preferences and even holding down N at boot up. Nothing seems to work at this point.

    • July 18, 2013 at 2:34 pm


      In that case, you have a couple of options:

      1. Build a new DeployStudio boot set that can boot your MacBook Air
      2. Put the Air into Target Disk Mode and attach it to a Thunderbolt-equipped Mac that can boot to your DeployStudio boot set.

      If you’re going with Option 2, I’d recommend making sure that the first drive seen is not automatically wiped, as that may wipe the drive of the machine you’re using to boot with. Instead, make the partitioning step be user-selected and not automated.

  2. July 22, 2013 at 10:54 am

    Hello Rich,

    I use Internet Recovery to get a copy of the latest build.

    – Attach an external HD to your new Mac.
    – Boot the new Mac from Apple’s servers using Internet Recovery.
    – Restore the OS to your external HD (reboot and disconnect the HD before the OS reboots and installs from the temp recovery OS on the external HD)
    – On the external HD is now a copy of the latest and greatest OS X Installer.

    I can then use this to update DeployStudio’s Netboot set and boot the latest Mac’s

  3. Glenn B
    August 23, 2013 at 3:35 pm

    This was working fine a month or so back, then DeployStudio got updated (I’m running 1.6.1) and the workflow now fails. It starts the workflow, partitions the drive, then within 30 seconds of starting the package install it says it’s done. Log says it was running package scripts, counts up to about 97%, then says there was an error that caused the installation to fail. Any ideas?

    • August 23, 2013 at 4:33 pm


      When you created your new DeployStudio set, did you include Python as one of the build options? Not including it would produce errors like the ones you’re seeing.

      • Glenn B
        August 23, 2013 at 5:15 pm

        I don’t remember – I’ll try creating a new boot set and see what happens. Thanks!

      • Glenn B
        August 26, 2013 at 2:45 pm

        I created new netboot sets over the weekend, making sure to include Python, and the “Install OS X” packages are working again. Thanks for the help!

  4. September 14, 2013 at 12:40 pm

    I use this technique a lot, but I do not have the partition task, just the package install. This way we can do a “reinstall” without messing with the users data. If we need to set a fresh system, I create a DMG with instaDMG and a restore task in DS.

    Best regards


    • Glenn B
      September 14, 2013 at 1:06 pm

      That’s exactly how I had mine set up. I had several restore images with full OS and iLife, then I had the package installs marked “can be used to upgrade, no data loss.” Saves us a lot of time.

  5. April 4, 2014 at 12:20 am

    Hi! Would you please help me? I need the special custom build 10.8.4 for my MacBook Air but I can’t retrieve it… anytime Recovery HD or Internet Recovery gives me 10.8.5… Please help 🙂 Twitter: @bapteash

  1. No trackbacks yet.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: