4 votes

Comment rendre un dmg modifié distribuable ?

Ajouter des fichiers à un dmg et le redistribuer

Objectif :

Ajout de quelques fichiers de paramètres à firefox.dmg (mozilla.cfg et policies.json) dans le but de redistribuer le dmg modifié.

Comment le dmg est modifié :

  • Décompression du dmg avec des outils comme (hdiutils/ultraiso/transmac/dropdmg/disk-utilities)
  • Montage et ajout de fichiers au dmg décompressé
  • Facultatif (recompresse le dmg avec les mêmes utilitaires que ceux utilisés pour décompresser)

Question :

L'ouverture du nouveau dmg dans une autre machine donne le résultat suivant "firefox" is damaged and can't be opened, you should move it to trash

Ce qui a été testé :

  • Suppression de com.apple.quarantine avec la commande xattr -c fonctionne mais ce n'est pas une solution fiable
  • J'ai essayé d'enlever _CodeSignature répertoires du dmg sans succès
  • Création d'un nouveau dmg contenant les fichiers du précédent sans succès
  • J'ai essayé d'éditer Info.plist sans succès.

Question :

Comment rendre le nouveau paquet dmg utilisable sur d'autres machines ? (Comment éviter l'erreur de gatekeeper sans utiliser le logiciel xattr -c )

4voto

Jose Chavez Points 645

Vous ne pouvez pas modifier la DMG et la faire passer par GateKeeper sans la resigner. C'est en fait la raison d'être de la signature du code !

En gros, vous avez trois options :

1) Supprimez la signature de l'ancien code et signez à nouveau la DMG avec votre propre signature. Pour ce faire, vous devez être inscrit au programme des développeurs d'Apple.

2) Distribuer la DMG originale, non modifiée - et l'accompagner de vos propres modifications. Cela pourrait être fait sous forme d'instructions pour l'utilisateur sur ce qu'il doit copier, ou sous forme d'un script automatique.

3) Supprimez complètement les signatures (à la fois de la DMG et de l'application). L'utilisateur doit ensuite configurer GateKeeper pour autoriser l'ouverture d'applications non signées (c'est-à-dire que l'utilisateur sera invité à le faire lors de la première ouverture).

0 votes

Les DMG non signés ne sont plus autorisés sur les systèmes où Gatekeeper est activé ? Je pensais que seules les applications elles-mêmes devaient être signées.

1 votes

Si le développeur signe le DMG, l'application peut utiliser les fichiers de ce DMG. Si le développeur ne signe pas le DMG, l'application ne pourra pas accéder au contenu du DMG en raison des noms de fichiers relatifs. Par conséquent, si le programme est conçu pour être installé à partir d'un DMG signé et qu'il utilise les fichiers du DMG, il ne fonctionnera pas si vous le placez dans un DMG non signé.

0 votes

Comme l'installation d'une application non signée est toujours possible en acceptant la boîte de dialogue "développeur non identifié...", comment puis-je supprimer la signature de firefox autrement qu'en supprimant le répertoire _CodeSignature ou en le reconstruisant ? (je ne veux pas publier l'application dans l'appstore mais juste la rendre utilisable en la copiant sur d'autres machines).

4voto

jjungnickel Points 515

Signature de code Apple DMG :

Signer une application apple nécessite de payer le programme développeur d'apple (99$), cela peut être fait librement mais dans un but limité.

La signature du dmg peut se faire de deux façons :

  • Signer le fichier dmg lui-même

  • Signer le Application.app dans le répertoire de l'image dmg

Modification des fichiers DMG signés :

Voici trois façons possibles de modifier des applications signées :

  1. Démissionner de l'application après l'édition

  2. Supprimer complètement la signature et modifier l'application (l'application sera toujours installable, l'utilisateur sera averti).

  3. Suppression de com.apple.quarantine avec la commande xattr -c après avoir édité l'application

Vérification des signatures :

Selon la situation, l'une ou les deux commandes sont nécessaires.

codesign -v Application.app
codesign -v Application.dmg

Suppression de la signature de l'application

Après avoir extrait le dmg etc. Selon la situation, une ou deux commandes sont nécessaires

codesign --remove-signature Application.app
codesign --remove-signature Application.dmg

Explication de l'échec :

El Application is damaged and can't be opened, you should move it to trash est le résultat d'une suppression partielle de signature, car la suppression de _CodeSignature ne suffit pas pour se débarrasser de la signature ; codesign --remove-signature doit également être exécuté contre le paquet/application/binaire

Conférence connexe :

Créer des dmg - Créer un dmg à partir du répertoire - Ajouter la signature au dmg - Retirer la signature - Application endommagée - Comment coder le panneau - Développeur gratuit - Signature libre

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X