È possibile disabilitare un controllo della firma del codice?


9

Ho scritto una patch / utility che disabilita la funzionalità predefinita di OS X di avviare iTunes quando viene premuto il pulsante di riproduzione. Questa utility modifica sostanzialmente il Remote Control Daemon ( rcd) e commenta il comando Apple Script per avviare iTunes. Questo ha funzionato bene fino al 10.7, ma con 10.8 rcdora ha la firma del codice. La patch ora causa Exception Type: EXC_CRASH (Code Signature Invalid)dopo che l'eseguibile è stato patchato.

Ovviamente, il controllo della firma del codice funziona come previsto, ma mi chiedevo se qualcuno avesse qualche idea su quali opzioni avrei potuto avere. Esiste un modo legittimo per disattivare questo controllo su un singolo eseguibile? Ho provato a girare GateKeeper, ma questo, comprensibilmente, non lo ha fatto.

Altri suggerimenti per disabilitare il pulsante di riproduzione?


3
per firmare devi fare questo: sudo codesign -f -s - /System/Library/CoreServices/rcd.app/Contents/MacOS/rcd

Grazie user48986, che l'ha fatto. Ho aggiornato l'utilità.
thebitguru,

1
Ho aggiornato l'utilità, ma puoi (user48986) "rispondere" a questa domanda in modo da ottenere il credito :) Apparentemente non posso contrassegnare un commento come risposta.
thebitguru,

Esilarante, sono arrivato a questa risposta, risolvendo esattamente lo stesso problema nello stesso identico modo , non rendendomi conto che qualcuno (tu) aveva avuto la stessa idea e aveva già fatto la stessa cosa. Grazie, sia a user48986, sia a @thebitguru. : P
ELLIOTTCABLE

Risposte:


5

Ho fatto funzionare la patch dopo l'esecuzione sudo spctl --master-disable. Non so se c'è modo di usare spctl per indirizzare solo l'RCD.

La sostituzione della firma del codice con un'identità ad hoc con sudo codesign -f -s - /System/Library/CoreServices/rcd.app/non sembra funzionare. Modifica: ma come menzionato da user48986, funziona se si specifica il percorso dell'eseguibile, come sudo codesign -f -s - /System/Library/CoreServices/rcd.app/Contents/MacOS/rcd.


Grazie! Penso che forse l'unico modo sia usare rcd da una versione precedente di OS X: |
thebitguru,

2

Per correggere la firma di, ad esempio, MirrorPro:

sudo codesign -f -s - /Applications/MirrorPro.app/Contents/MacOS/MirrorPro
/Applications/MirrorPro.app/Contents/MacOS/MirrorPro: replacing existing signature
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.