Können Sie eine Codesignaturprüfung deaktivieren?


9

Ich habe einen Patch / ein Dienstprogramm geschrieben , das die Standardfunktionalität von OS X zum Starten von iTunes deaktiviert, wenn die Wiedergabetaste gedrückt wird. Dieses Dienstprogramm ändert grundsätzlich den Remote Control Daemon ( rcd) und kommentiert den Apple Script-Befehl aus, um iTunes zu starten. Dies hat bis 10.7 gut funktioniert, aber mit 10.8 hat rcdjetzt die Codesignatur. Der Patch wird jetzt verursacht, Exception Type: EXC_CRASH (Code Signature Invalid)nachdem die ausführbare Datei gepatcht wurde.

Natürlich funktioniert die Überprüfung der Codesignatur wie geplant, aber ich habe mich gefragt, ob jemand Ideen dazu hat, welche Optionen ich haben könnte. Gibt es eine legitime Möglichkeit, diese Prüfung für eine einzelne ausführbare Datei zu deaktivieren? Ich habe versucht, GateKeeper auszuschalten, aber das hat es verständlicherweise nicht getan.

Irgendwelche anderen Vorschläge zum Deaktivieren der Wiedergabetaste?


3
Zum Signieren müssen Sie Folgendes tun: sudo Codesign -f -s - /System/Library/CoreServices/rcd.app/Contents/MacOS/rcd

Danke user48986, das hat es geschafft. Ich habe das Dienstprogramm aktualisiert.
Thebitguru

1
Ich habe das Dienstprogramm aktualisiert, aber können Sie (user48986) diese Frage "beantworten", damit Sie die Gutschrift erhalten :) Anscheinend kann ich einen Kommentar nicht als Antwort markieren.
Thebitguru

Komischerweise kam ich zu dieser Antwort, während ich genau das gleiche Problem auf genau die gleiche Weise löste und nicht realisierte, dass jemand (Sie) die gleiche Idee hatte und bereits das Gleiche tat. Vielen Dank an user48986 und @thebitguru. : P
ELLIOTTCABLE

Antworten:


5

Ich habe den Patch nach dem Laufen zum Laufen gebracht sudo spctl --master-disable. Ich weiß nicht, ob es eine Möglichkeit gibt, spctl zu verwenden, um nur auf rcd zu zielen.

Das Ersetzen der Codesignatur durch eine Ad-hoc-Identität mit sudo codesign -f -s - /System/Library/CoreServices/rcd.app/schien nicht zu funktionieren. Bearbeiten: aber wie von user48986 erwähnt, funktioniert es, wenn Sie den Pfad zur ausführbaren Datei angeben, wie z sudo codesign -f -s - /System/Library/CoreServices/rcd.app/Contents/MacOS/rcd.


Vielen Dank! Ich denke, vielleicht ist die einzige Möglichkeit, rcd von einer älteren Version von OS X zu verwenden: |
Thebitguru

2

So korrigieren Sie die Signatur von beispielsweise MirrorPro:

sudo codesign -f -s - /Applications/MirrorPro.app/Contents/MacOS/MirrorPro
/Applications/MirrorPro.app/Contents/MacOS/MirrorPro: replacing existing signature
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.