Czy możesz wyłączyć sprawdzanie podpisu kodu?

9

Napisałem łatkę / narzędzie, które wyłącza domyślną funkcję OS X polegającą na uruchomieniu iTunes po naciśnięciu przycisku odtwarzania. To narzędzie zasadniczo modyfikuje demona zdalnego sterowania ( rcd) i komentuje polecenie Apple Script, aby uruchomić iTunes. Działa to dobrze do 10.7, ale w wersji 10.8 rcdma teraz podpis kodu. Łatka powoduje teraz Exception Type: EXC_CRASH (Code Signature Invalid)po załataniu pliku wykonywalnego.

Oczywiście sprawdzanie podpisu kodu działa zgodnie z przeznaczeniem, ale zastanawiałem się, czy ktoś ma jakieś pomysły na to, jakie opcje mam. Czy istnieje uzasadniony sposób na wyłączenie tej kontroli na jednym pliku wykonywalnym? Próbowałem włączyć GateKeeper, ale, co zrozumiałe, nie zrobiło tego.

Wszelkie inne sugestie dotyczące wyłączenia przycisku odtwarzania?

thebitguru
źródło
3
do podpisania musisz to zrobić: sudo codeign -f -s - /System/Library/CoreServices/rcd.app/Contents/MacOS/rcd
Dzięki użytkownik 48986, że to zrobił. Zaktualizowałem narzędzie.
thebitguru
1
Zaktualizowałem narzędzie, ale czy możesz (użytkownik48986) „odpowiedzieć” na to pytanie, aby uzyskać kredyt :) Najwyraźniej nie mogę oznaczyć komentarza jako odpowiedzi.
thebitguru
Zabawnie, doszedłem do tej odpowiedzi, jednocześnie rozwiązując dokładnie ten sam problem w ten sam sposób , nie zdając sobie sprawy, że ktoś (ty) miał ten sam pomysł i już zrobił to samo. Dzięki, zarówno dla użytkownika48986, jak i @thebitguru. : P
ELLIOTTCABLE

Odpowiedzi:

5

Mam łatkę do pracy po uruchomieniu sudo spctl --master-disable. Nie wiem jednak, czy istnieje jakiś sposób użycia spctl do kierowania tylko na rcd.

Zastąpienie podpisu kodu tożsamością ad-hoc sudo codesign -f -s - /System/Library/CoreServices/rcd.app/nie wydawało się działać. Edycja: ale jak wspomniano przez user48986, działa, jeśli podasz ścieżkę do pliku wykonywalnego, np sudo codesign -f -s - /System/Library/CoreServices/rcd.app/Contents/MacOS/rcd.

Lri
źródło
Dzięki! Myślę, że może jedynym sposobem jest użycie rcd ze starszej wersji OS X: |
thebitguru
2

Aby naprawić podpis na przykład MirrorPro:

sudo codesign -f -s - /Applications/MirrorPro.app/Contents/MacOS/MirrorPro
/Applications/MirrorPro.app/Contents/MacOS/MirrorPro: replacing existing signature
BYTE RIDER
źródło