10.7 Preview app on 10.13

I'd like to get the Preview app from 10.7 to work on 10.13. I've done it with the calculator by editing a file in contents folder. I guess the same can be done with Preview app. Unfortunately I dont remember what I did, or which file that should be edited.

Anyone who can help with this?


Solution 1:

If you've tried copying it over and it doesn't work, then realistically there's little you can do.

Applications are (crudely) just a series of instructions to the OS. The available instructions change from one OS to the next. If the app is sending instructions that are no longer valid, then it just won't run.

Your best option is to identify what features you want from Preview in 10.7 that are not in Preview from 10.13, and find a third-party app that provides them.

Solution 2:

The file you edited was almost certainly Contents/Info.plist. You usually just need to change CFBundleVersion to a number greater than the one listed in the MinimumVersionRequirements section of Apple's blacklist: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/Exceptions.plist.

Other options include changing the CFBundleIdentifier in the application's info.plist, or simply editing Exceptions.plist so the application/version is no longer blacklisted (if System Integrity Protection is disabled).

Before you bother with that, however, there's an easier way to temporarily launch and app and see whether or not it will work. Instead of double clicking the .app file, try running the executable in Contents/macOS directly. This should bypass Apple's blacklist.


I have some bad news—none of this is likely to work. Preview is a lot more complex than Calculator.

If you want to go further, start by using otool -l to see what frameworks a binary depends on:

otool -l /System/Library/CoreServices/CoolApp.app/Contents/MacOS/CoolApp

...and install_name_tool to change which copy of a framework is used by a binary:

install_name_tool -change /Library/Frameworks/Foo.framework/Versions/A/Foo @executable_path/../Frameworks/Foo-From-Lion.framework/Versions/A/Foo Bar.app/Contents/MacOS/Bar

But it still probably won't be enough for Preview, either.

Here is all of the code I had to inject to make the 10.8 version of QuickTime work in 10.9 (thereby adding back support for third-party codecs such as Perian, which I subsequently updated to support VP9, the format used for 4K Youtube videos). https://github.com/Wowfunhappy/QuickTime-Fixer/blob/master/QuickTimeFixer/main.m. It took weeks to figure out what code was needed; I finished it only because the pandemic left me stuck inside over Christmas and New Years. And I was only bringing QuickTime one version ahead, not seven versions!