-
-
Save geoff-nixon/b96bc9c5bca538aa0819 to your computer and use it in GitHub Desktop.
#!/bin/sh -x ## or just ` curl -Ls http://git.io/vRozn | sh `. | |
## Downloads the Mac OS X 10.10 Recovery Partition update, | |
## Copy's over the 10.10 version of Disk Utility.app, then | |
## use git to apply a binary patch so it will run on 10.11+. | |
cd /tmp | |
rm -rf DU1010 | |
mkdir DU1010 | |
cd DU1010 | |
# See: https://github.com/wdas/reposado | |
curl -ORL http://swcdn.apple.com/content/downloads/21/09/031-20634/8d84o1ky5gn2agnf5kiz9eed134n7y3q4c/RecoveryHDUpdate.pkg | |
xar -xf RecoveryHDUpdate.pkg | |
hdiutil attach -nobrowse RecoveryHDMeta.dmg | |
hdiutil attach -nobrowse "/Volumes/Recovery HD Update/BaseSystem.dmg" | |
cp -Rp "/Volumes/OS X Base System/Applications/Utilities/Disk Utility.app" . | |
hdiutil detach "/Volumes/OS X Base System" | |
hdiutil detach "/Volumes/Recovery HD Update" | |
rm * 2>/dev/null | |
git apply --no-index <<-PATCH | |
diff --git a/Disk Utility.app/Contents/MacOS/Disk Utility b/Disk Utility.app/Contents/MacOS/Disk Utility | |
index 20f16f995699699ac5841a455c261a2e45e6a4e5..ce4994ac078a99803ba6b5f3467fae425b5bf643 100755 | |
GIT binary patch | |
delta 44 | |
scmZoTC);pNcEgiI#+K%%iS17l8G)Dyh?#+y1&CRJm~H#hM0ROb0OUIqApigX | |
delta 44 | |
scmZoTC);pNcEgiI#@6PiiS17l8G)Dyh?#+y1&CRJm~H#hM0ROb0OVa1A^-pY | |
PATCH | |
mv "Disk Utility.app" "Disk Utility (10.10).app" | |
open . |
Is this possible in Sierra?
Ca you please add support for sierra? macOS 12.4 =>
Thank you :)
I was able to get it to work on Sierra.
The issue was some missing symbols (_kDMMediaTypeCDROM
and _DIHLGetBundleSize
), which are only found in old frameworks. So just copy them over and use install_name_tool to load them instead.
-
Run the script as above.
-
Re-download the package and mount them:
curl -ORL http://swcdn.apple.com/content/downloads/21/09/031-20634/8d84o1ky5gn2agnf5kiz9eed134n7y3q4c/RecoveryHDUpdate.pkg
xar -xf RecoveryHDUpdate.pkg
hdiutil attach -nobrowse RecoveryHDMeta.dmg
hdiutil attach -nobrowse "/Volumes/Recovery HD Update/BaseSystem.dmg"
- Copy over
DiskManagement.framework
andDiskImages.framework
from
/Volumes/OS X Base System/System/Library/PrivateFrameworks
to
/tmp/DU1010/Disk Utility (10.10).app/Contents/Frameworks
- Use install_name_tool to change where to look for those shared libraries (use
otool -L
in before/after to confirm that paths are really changing).
cd "/tmp/DU1010/Disk Utility (10.10).app/Contents/MacOS"
install_name_tool -change /System/Library/PrivateFrameworks/DiskManagement.framework/Versions/A/DiskManagement @executable_path/../Frameworks/DiskManagement.framework/Versions/A/DiskManagement Disk\ Utility
install_name_tool -change /System/Library/PrivateFrameworks/DiskImages.framework/Versions/A/DiskImages @executable_path/../Frameworks/DiskImages.framework/Versions/A/DiskImages Disk\ Utility
Doesn't work. Under 10.13.6, it won't even start.
on 10.14.6
Dyld Error Message:
Symbol not found: OBJC_CLASS$_NSStatusBarWindow
Referenced from: /Volumes/VOLUME/Yosemite Disk Utility For El Capitan.app/Contents/MacOS/Disk Utility
Expected in: /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit
in /Volumes/VOLUME/Yosemite Disk Utility For El Capitan.app/Contents/MacOS/Disk Utility
Working perfectly, thank you very much!