Spoofing the OS version to trick a buggy installer
I've been tasked with supporting a print shop using Kodak Prinergy 6.1, which is ancient. I need to install it on a new machine. The problem is that the installer has a bug where it compares OS versions lexicographically, so it doesn't grok that 10.13 is newer than the required minimum of 10.4.
Is there a way I can trick the installer into thinking I'm running 10.9?
Assuming that it's not baked into the installer, you can edit the version requirements for the app bundle.
Right click the app, hit Show Package Contents and open Info.plist
. Look for a LSMinimumSystemVersion
key, then change the value to your version of macOS.
You can also use Xcode's visual editor
It's possible you may need to do some more work though.
NSBundle
andCFBundle
aggressively cache the contents of application bundles to improve performance. Although you edited theInfo.plist
, the Finder and Launch Services don't yet know that the application is any different.Running the following command in Terminal to
touch
the application bundle will force the Finder (and Launch Services) to re-register the application, thereby noticing the changes you made to theInfo.plist
:touch "/Applications/My Cool App.app"
After running that, deselect the application, then reselect it in the Finder, and then try launching it.
Note that this won't necessarily guarantee that you'll be able to launch the app.
In the case that it's baked into the app more deeply, you can edit your macOS version at a system level. Note you'll also need to disable SIP if you haven't already.
Boot in single user mode (hold down s during boot)
Make file system readable:
/sbin/mount -wu /
Go the
/System/Library/CoreServices
directory:
cd /System/Library/CoreServices
Edit
SystemVersion.plist
nano SystemVersion.plist
Change the version strings (note that there may be two of these in the .plist), e.g.
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>ProductBuildVersion</key> <string>14E46</string> <key>ProductCopyright</key> <string>1983-2015 Apple Inc.</string> <key>ProductName</key> <string>Mac OS X</string> <key>ProductUserVisibleVersion</key> <string>10.10.4</string> // <<< <key>ProductVersion</key> <string>10.10.4</string> // <<< </dict> </plist>
Save and exit (Control-OControl-X)
Reboot:
reboot