Actualmente estoy trabajando en la instalación automatizada de Mavericks 10.9. Tengo configurado NetBoot. Todo funciona bien hasta que quiera ejecutar Applescript. Desde el lanzamiento de la nueva versión, necesito habilitar manualmente esos scripts. ¿Hay algún comando que pueda usar en el script de shell para agregar una aplicación a la lista de dispositivos de asistencia? ¿O tal vez hay algún plist que tiene que ser editado para que funcione?
terminal
mavericks
applescript
plist
automation
KarolBerlinski
fuente
fuente

Respuestas:
La configuración se almacena en
/Library/Application Support/com.apple.TCC/TCC.db:El esquema, según lo dado por
sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db '.schema access', es:En mi instalación de las últimas cuatro columnas (
client_type,allowed,prompt_count, ycsreq) son0|1|0|\xfa\xde\x0clas aplicaciones que se agregaron después de la"example.app" would like to control this computer using accessibility featuresse muestra el diálogo y0|1|1|para aplicaciones que gota a gota a la lista de preferencias del sistema.~/Library/Preferences/com.apple.universalaccessAuthWarning.plistcontiene una lista de aplicaciones para las cuales se ha mostrado el cuadro de diálogo de advertencia:Sin embargo, no pude encontrar la forma de permitir el acceso a dispositivos de asistencia para una aplicación. Intenté, por ejemplo, ejecutar estos comandos:
También intenté reiniciar para aplicar los cambios y configurar las últimas cuatro columnas
0,1,1,"".fuente
sudo sqlite3 ....~/Library/Preferences/com.apple.universalaccessAuthWarning.plistno está involucrado en la concesión de permisos, solo registra si se ha mostrado una advertencia para evitar molestar a los usuarios con advertencias repetidas.??(\xfa\xde\x0c) proviene de lacsreqcolumna, que contiene una especie de huella digital de la aplicación especificada; OSX lo gestiona automáticamente detrás de escena, sin necesidad de especificarlo. El valor real es mucho más largo; el truncamiento a 3 bytes viene de tratar de dar salida al valor binario (tipo de datosBLOB) como si fuera una cadena, provocando la salida de parada en el primer byte NUL (el?tallo de la\xfay\xdeno ser caracteres válidos en la codificación UTF8,\x0ces una línea vertical pestaña que efectivamente crea un salto de línea).csreqcolumna contiene los requisitos designados compilados para la aplicación, consulte goo.gl/z10vl y la guía de profundidad de firma de código TN2206 de Apple . Los requisitos designados son esencialmente un script que valida la identidad de una aplicación al verificar la identificación del paquete y los certificados.También puede agregar el archivo siguiendo los comandos a continuación.
Este comando encontrará el Identificador de paquete para la aplicación que está intentando agregar a los Dispositivos de asistencia.
Digamos que la aplicación que intentaba agregar era SKYPE. Luego ingresaría esto a continuación:
Y su identificador de paquete sería:
Luego usa esta salida en el siguiente comando:
Para Skype se vería así:
Para eliminar la aplicación, usaría el
sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "delete from access where client='com.skype.skype';"fuente
REPLACE INTOlugar deINSERT INTOasegurar que el comando funcione incluso si la base de datos ya tiene una entrada para la aplicación especificada.REPLACE INTOes un alias para el más descriptivoINSERT OR REPLACE INTO).