Cambiar configuración de accesibilidad en Mac usando terminal

7

Me gustaría otorgar permiso de accesibilidad a algunas aplicaciones en Mac usando Terminal según esta instrucción

enlace que es la pestaña de accesibilidad en Preferencias del sistema

O esto

enlace

Me gustaría hacerlo usando Terminal para poder instalar aplicaciones (es decir: BetterSnapTool) para muchas Mac al mismo tiempo, dado que tengo privilegios de administrador y esto debería aplicarse solo en Mavericks y Yosemite

¿Alguien sabe cómo hacer esto?

Gracias

    
pregunta L N 26.03.2015 - 01:13

2 respuestas

6

Los permisos de accesibilidad se almacenan en un archivo de base de datos sqlite en / Library / Application Support / com.apple.TCC / TCC.db.

Dado que sqlite3 se envía de forma predeterminada con el Mac OS X 'posterior, utilícelo para modificar la configuración.

El esquema de db se ve así:

sqlite> .schema
CREATE TABLE access (service TEXT NOT NULL, client TEXT NOT NULL, client_type INTEGER NOT NULL, allowed INTEGER NOT NULL, prompt_count INTEGER NOT NULL, csreq BLOB, CONSTRAINT key PRIMARY KEY (service, client, client_type));
CREATE TABLE access_overrides (service TEXT PRIMARY KEY NOT NULL);
CREATE TABLE access_times (service TEXT NOT NULL, client TEXT NOT NULL, client_type INTEGER NOT NULL, last_used_time INTEGER NOT NULL, CONSTRAINT key PRIMARY KEY (service, client, client_type));
CREATE TABLE admin (key TEXT PRIMARY KEY NOT NULL, value INTEGER NOT NULL);

El nombre de la tabla relevante es "acceso" y el nombre del campo relevante es "permitido". Si está permitido contiene un "1", a la aplicación se le otorga permiso para controlar la computadora, si contiene un "0" no se otorga el permiso.

Con el comando

sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'UPDATE access SET allowed = "1";'

puedes activar el permiso para todas las aplicaciones enumeradas.

Con el comando

sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'UPDATE access SET allowed = "0";'

puede desactivar el permiso para todas las aplicaciones enumeradas.

    
respondido por el klanomath 26.03.2015 - 13:49
6

la respuesta de klanomath se ve bien, pero si eres como yo y no estás tan familiarizado con SQL, quieres un control más granular (habilitar / deshabilitar aplicaciones individuales en lugar de todas a la vez), o quieres una interfaz más clara para trabajar, debe consultar tccutil.py .

Al utilizar tccutil , el comando que desea ejecutar para habilitar una aplicación es

sudo tccutil -e app.bundle.identifier

Por ejemplo, si desea habilitar BetterTouchTool, el comando que ejecutaría es

sudo tccutil -e com.hegenberg.BetterTouchTool

Supongo que si desea habilitar BetterSnapTool, la última parte solo será com.hegenberg.BetterSnapTool pero no tengo eso instalado en mi computadora, por lo que no puedo verificar.

Puede encontrar fácilmente el identificador de paquete correcto ejecutando sudo tccutil -l después de haber instalado la aplicación y se le solicitan permisos de accesibilidad (solo busque el identificador que se asigna a la aplicación a la que desea otorgar permisos). Si eso no funciona (como si el identificador del paquete no fuera lo que esperaba), puede encontrarlo viendo los contenidos del paquete de la aplicación, encontrando el archivo Info.plist y encontrando el valor para el CFBundleIdentifier clave.

    
respondido por el Ziewvater 28.05.2016 - 22:50

Lea otras preguntas en las etiquetas