OS X 10.8: restablecer la memoria de aplicación aprobada y sin firmar

1

Con OS X 10.8, Apple introdujo una función para dificultar la instalación de aplicaciones sin firmar. Por lo general, funciona hacer clic con el botón derecho en la aplicación sin firmar, elegir Openy confirmar el diálogo que se produce. La próxima vez, esta aplicación se puede iniciar como cualquiera firmada.

¿Cómo puedo restablecer el conocimiento de OS X de la aplicación confirmada, por lo que rechazará iniciarla la próxima vez?

Mike L.
fuente

Respuestas:

4

Gate Keeper utiliza la funcionalidad de cuarentena que ha estado presente durante un tiempo para molestar a los usuarios después de que descargan archivos.

Puede examinar la información de cuarentena de un archivo leyendo su com.apple.quarantine atributo extendido . Aquí hago esto para un lanzamiento nunca antes .appcopiado de un descargado .dmg:

$ xattr -l Butler.app/
com.apple.quarantine: 0002;50697c0e;Safari;942183F8-A268-447B-AEAB-55CEA27DD911

El primer valor es el estado de cuarentena (es decir, la parte interesante). Le sigue una marca de tiempo Unix codificada en hexadecimal (en este caso: date -r 0x50697c0eresultados Mo 1 Okt 2012 13:18:38 CEST), el nombre de la aplicación que crea el archivo y un identificador único (UUID) del elemento original en cuarentena. Este último es heredado por los archivos extraídos de su contenedor, en este caso, el .dmgarchivo.


La primera parte del atributo extendido es el estado de cuarentena. Cuando se descarga y nunca se abre, este archivo tiene 0002, posiblemente indicando una descarga web .

Cuando hace doble clic en la aplicación, pero cancela cuando se le solicita confirmación, es 0022(probablemente para registrar una ejecución anterior sin aprobación), y cuando confirma la ejecución una vez, es 0062. En ese caso, no se te volverá a preguntar después. Esto se parece mucho a una representación octal o hexadecimal de un campo de bit, con el tercer 4bit de valor indicando aprobación, y el tercer 2bit de valor indicando ejecución previa.

Al restablecer este valor al estado original después de la descarga, puede volver a habilitar la protección de Gate Keeper . Simplemente lea el valor después de abrir ( xattr -p com.apple.quarantine <filename>) y reemplácelo con el mismo valor, sin los bits "esto ya fue aprobado" (por ejemplo xattr -w com.apple.quarantine 0002;[rest of the previous value] <filename>).

Daniel Beck
fuente
Gracias por los detalles ¿Es esto correcto: si yo mismo construyo una aplicación (sin firmar), no contendrá ninguna información de cuarentena y, por lo tanto, no se mostrará el diálogo molesto?
Mike L.
@MikeL. El programa de descarga agrega la información de cuarentena al crear el archivo. Descargue a través wgety evite el problema. Si bien no lo probé, dudo que Xcode establezca información de cuarentena.
Daniel Beck