Usurper la version du système d'exploitation pour tromper un installateur buggy

3

J'ai été chargé de soutenir une imprimerie utilisant Kodak Prinergy 6.1, une version ancienne. J'ai besoin de l'installer sur une nouvelle machine. Le problème est que l’installateur a un bogue qui compare les versions de système d’exploitation de manière lexicographique, de sorte que la version 10.13 ne soit pas plus récente que le minimum requis de 10.4.

Existe-t-il un moyen de faire croire à l'installateur que je suis sous 10.9?

TKK
la source
Êtes-vous sûr que le logiciel fonctionne même sur Intel? Est-ce que l'installateur est un .app ou un .pkg?
nohillside
@patrix L'application est connue pour fonctionner sur les machines mises à niveau à 10.10+. Cela ne va tout simplement pas s’installer sur eux.
TKK
Bon :-) .app ou .pkg, ou autre chose?
nohillside
@patrix C'est un .app.
TKK
Vous avez essayé de trouver et simplement de copier tous les composants? J'ai déjà eu ce travail auparavant, pour de vieux trucs douteux et sans support [taux de réussite 50/50]
Tetsujin

Réponses:

2

En supposant qu'il ne soit pas intégré au programme d'installation, vous pouvez modifier les exigences de version pour l'ensemble d'applications.

Cliquez avec le bouton droit sur l'application, cliquez sur Afficher le contenu du paquet et ouvrez-le Info.plist. Recherchez une LSMinimumSystemVersionclé, puis remplacez la valeur par votre version de macOS.

entrez la description de l'image ici

Vous pouvez également utiliser l'éditeur visuel de Xcode

entrez la description de l'image ici

Cependant, il est possible que vous ayez à faire un peu plus de travail.

NSBundleet CFBundlemettre en cache de manière agressive le contenu des ensembles d'applications pour améliorer les performances. Bien que vous ayez modifié le Info.plist, les services de recherche et de lancement ne savent pas encore que l'application est différente.

L'exécution de la commande suivante dans Terminal pour touchl'ensemble d'applications forcera le Finder (et les services de lancement) à ré-enregistrer l'application, remarquant ainsi les modifications apportées à la Info.plist:

touch "/Applications/My Cool App.app"

Après avoir exécuté cette opération, désélectionnez l'application, puis resélectionnez-la dans le Finder, puis essayez de la lancer.

Notez que cela ne garantit pas nécessairement que vous pourrez lancer l'application.

Si elle est intégrée plus profondément dans l'application, vous pouvez modifier votre version de MacOS au niveau du système. Notez que vous devrez également désactiver SIP si vous ne l'avez pas déjà fait.

  1. Démarrer en mode mono-utilisateur (maintenir enfoncé spendant le démarrage)

  2. Rendre le système de fichiers lisible:

    /sbin/mount -wu /

  3. Allez dans le /System/Library/CoreServicesrépertoire:

    cd /System/Library/CoreServices

  4. modifier SystemVersion.plist

    nano SystemVersion.plist

  5. Modifiez les chaînes de version (notez qu'il peut y en avoir deux dans la liste .plist), par exemple


<?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>
  1. Sauvegarder et quitter ( Control-OControl-X)

  2. Redémarrer:

    reboot

JMY1000
la source
Dans ce cas, le bogue est intégré à l'installateur. (Il utilise une ancienne version de InstallAnywhere.) Je n'ai pas encore eu l'occasion d'essayer votre deuxième suggestion, mais j'accepte cette réponse car elle semble très complète.
TKK
Allez-y, essayez-le et laissez-moi savoir ce qui se passe, je serai heureux de vous aider!
JMY1000