-
-
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 . |
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.frameworkandDiskImages.frameworkfrom
/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 -Lin 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
Is this possible in Sierra?