Last active
October 15, 2016 18:39
-
-
Save 166MMX/f6b18bd15bff05921ce5 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/sh | |
set -e | |
InstallESDImage="${1:-/Applications/Install OS X Mavericks.app}/Contents/SharedSupport/InstallESD.dmg" | |
InstallESDMount=/Volumes/MavericksInstallESD | |
BaseSystemImage=$InstallESDMount/BaseSystem.dmg | |
BaseSystemSparseImage=/tmp/BaseSystem.sparseimage | |
BaseSystemSparseMount=/Volumes/MavericksBaseSystem | |
BaseSystemIso="$HOME/Desktop/OsXMavericksInstallESD.cdr" | |
# UDSP - UDIF SPARSE | |
# UDTO - UDIF DVD/CD-R master for export | |
hdiutil attach "$InstallESDImage" -readonly -verify -nobrowse -mountpoint $InstallESDMount | |
hdiutil convert $BaseSystemImage -format UDSP -o $BaseSystemSparseImage | |
hdiutil resize -size 8g $BaseSystemSparseImage | |
hdiutil attach $BaseSystemSparseImage -readwrite -verify -nobrowse -mountpoint $BaseSystemSparseMount | |
rm $BaseSystemSparseMount/System/Installation/Packages | |
cp -rp $InstallESDMount/Packages $BaseSystemSparseMount/System/Installation/ | |
hdiutil detach $InstallESDMount | |
hdiutil detach $BaseSystemSparseMount | |
hdiutil compact $BaseSystemSparseImage | |
newSize=$(hdiutil resize -limits $BaseSystemSparseImage | tail -n 1 | cut -f 1) | |
hdiutil resize -size ${newSize}b $BaseSystemSparseImage | |
hdiutil convert $BaseSystemSparseImage -format UDTO -o "$BaseSystemIso" | |
rm $BaseSystemSparseImage |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env bash | |
set -u -x -e | |
app_path="$1" | |
if [ ! -d "$app_path" ]; then | |
printf 'No such Application at "%s"' "$app_path" >&2 | |
exit 1 | |
fi | |
name="$(basename -- "$app_path" | sed 's/^Install //;s/^Mac //;s/^OS X //;s/^machOS //;s/\.app$//;s/ //g')" | |
esd_vol=~/Volumes/esd | |
iso_vol=~/Volumes/iso | |
cdr_file="$name.cdr" | |
iso_file="$name.iso" | |
hdiutil attach "$app_path/Contents/SharedSupport/InstallESD.dmg" -noverify -nobrowse -mountpoint "$esd_vol" | |
hdiutil create -o "$cdr_file" -size "8g" -type "SPARSE" -layout "SPUD" -fs "HFS+J" | |
hdiutil attach "$cdr_file.sparseimage" -noverify -nobrowse -mountpoint "$iso_vol" | |
asr restore -source "$esd_vol/BaseSystem.dmg" -target "$iso_vol" -noverify -noprompt -erase | |
base_vol="$(find /Volumes -type d -name '*Base System' -depth 1)" | |
rm "$base_vol/System/Installation/Packages" | |
cp -rpv "$esd_vol/Packages" "$base_vol/System/Installation/" | |
cp -rpv "$esd_vol/BaseSystem.chunklist" "$base_vol/" | |
cp -rpv "$esd_vol/BaseSystem.dmg" "$base_vol/" | |
vol_name="$(diskutil info -plist "$esd_vol" | plutil -extract 'VolumeName' 'xml1' -o - -- - | plutil -p -- - | sed 's/^"//;s/"$//')" | |
diskutil renameVolume "$base_vol" "$vol_name" | |
base_vol="/Volumes/$vol_name" | |
hdiutil detach "$esd_vol" | |
hdiutil detach "$base_vol" | |
hdiutil resize -sectors min "$cdr_file.sparseimage" | |
hdiutil convert "$cdr_file.sparseimage" -format "UDTO" -o "$iso_file" | |
mv "$iso_file.cdr" "$iso_file" | |
rm "$cdr_file.sparseimage" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment