Pouvez-vous désactiver une vérification de signature de code?

9

J'ai écrit un patch / utilitaire qui désactive la fonctionnalité par défaut d'OS X de démarrage d'iTunes lorsque le bouton de lecture est enfoncé. Cet utilitaire modifie fondamentalement le démon de contrôle à distance ( rcd) et commente la commande Apple Script pour démarrer iTunes. Cela a bien fonctionné jusqu'à 10.7, mais avec 10.8 a rcdmaintenant la signature de code. Le correctif provoque désormais une Exception Type: EXC_CRASH (Code Signature Invalid)fois l'exécutable corrigé.

De toute évidence, la vérification de la signature du code fonctionne comme prévu, mais je me demandais si quelqu'un avait des idées sur les options que je pourrais avoir. Existe-t-il un moyen légitime de désactiver cette vérification sur un seul exécutable? J'ai essayé de tourner GateKeeper, mais cela, naturellement, ne l'a pas fait.

Avez-vous d'autres suggestions pour désactiver le bouton de lecture?

thebitguru
la source
3
pour signer, vous devez le faire: sudo codesign -f -s - /System/Library/CoreServices/rcd.app/Contents/MacOS/rcd
Merci user48986, ça y est. J'ai mis à jour l'utilitaire.
thebitguru
1
J'ai mis à jour l'utilitaire, mais pouvez-vous (user48986) "répondre" à cette question pour obtenir le crédit :) Apparemment, je ne peux pas marquer un commentaire comme réponse.
thebitguru
De manière hilarante, je suis arrivé à cette réponse, tout en résolvant exactement le même problème de la même manière , sans réaliser que quelqu'un (vous) avait eu la même idée et avait déjà fait la même chose. Merci à la fois à user48986 et à @thebitguru. : P
ELLIOTTCABLE

Réponses:

5

J'ai fait fonctionner le patch après avoir couru sudo spctl --master-disable. Je ne sais pas s'il existe un moyen d'utiliser spctl pour cibler uniquement rcd.

Le remplacement de la signature de code par une identité ad-hoc sudo codesign -f -s - /System/Library/CoreServices/rcd.app/ne semble pas fonctionner. Edit: mais comme mentionné par user48986, cela fonctionne si vous spécifiez le chemin d'accès à l'exécutable, comme sudo codesign -f -s - /System/Library/CoreServices/rcd.app/Contents/MacOS/rcd.

Lri
la source
Merci! Je pense que le seul moyen est peut-être d'utiliser le rcd d'une ancienne version d'OS X: |
thebitguru
2

Pour fixer la signature de MirrorPro par exemple:

sudo codesign -f -s - /Applications/MirrorPro.app/Contents/MacOS/MirrorPro
/Applications/MirrorPro.app/Contents/MacOS/MirrorPro: replacing existing signature
BYTE RIDER
la source