Wie kann ich Info.plist in einem signierten Paket ändern?

1056
zyklus

Ich möchte ein Flag in Info.plisteiner signierten OSX-App ändern (insbesondere möchte ich nur festlegen Application is agent (UIElement) = true, dass es nicht im Dock angezeigt wird).

Erstens kann ich die Datei nicht direkt ändern, so ziemlich egal (was ignoriert sudo chmodwird sudo chflags, usw.)

Also habe ich die Plist anderswo kopiert, modifiziert und zurückkopiert. Jetzt kann OSX die App nicht öffnen, da die Codesignatur nicht übereinstimmt.

Mir ist klar, dass dies ein allgemeines Sicherheitsproblem ist, aber hat jemand eine Problemumgehung?

2
Hattest du jetzt vielleicht einen Workaround :(? #zoidbergface Liviu vor 7 Jahren 0
Diese Frage ist 2 Jahre alt, fragen Sie eine neue. Ich habe schon lange nicht mehr darüber nachgedacht :) zyklus vor 7 Jahren 0
Vielen Dank, ich versuche es hier: https://stackoverflow.com/questions/46650134/how-to-change-info-plist-in-a-signed-package Liviu vor 7 Jahren 0
`codesign --force --verbose = 4 --sign" Developer ID-Anwendung: () " `dauert weniger als 10s. Liviu vor 7 Jahren 0

1 Antwort auf die Frage

2
Tom Carpenter

Wenn Sie eine Datei in einem signierten Paket ändern, wird die digitale Signatur zerstört, unabhängig davon, für welche Plattform oder für welches Betriebssystem die Anwendung bestimmt ist. Das ist so ziemlich der ganze Sinn der Unterzeichnung. Sie vertrauen auf den Herausgeber und wissen, dass er seit der Veröffentlichung nicht manipuliert wurde.

Damit es funktioniert, müssen Sie die Anwendung zurücktreten, für die mindestens ein Signaturzertifikat erforderlich ist, das zum Signieren von OSX-Apps gültig ist. Nicht ganz sicher, was der Prozess ist, aber ein Zertifikat zu bekommen wäre nicht kostenlos. Es ist möglich, Anwendungen selbst zu signieren. Ich bin mir nicht sicher, was genau ist.

`codesign --force --verbose = 4 --sign" Developer ID-Anwendung: () " `. Beachten Sie, dass es kein "--deep" gibt. Es dauert weniger als 10s. Liviu vor 7 Jahren 0