26 votos

Cambiar la configuración de accesibilidad en el Mac mediante el terminal

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

https://support.apple.com/en-au/HT202866 que es la pestaña de accesibilidad en las Preferencias del Sistema

O esto

http://mizage.com/help/accessibility.html

Me gustaría hacer eso usando Terminal para poder instalar aplicaciones (por ejemplo: BetterSnapTool) para muchos Mac al mismo tiempo, dado que tengo privilegio de administrador y esto debería aplicarse sólo en Mavericks y Yosemite

¿Alguien sabe cómo hacerlo?

Gracias

19voto

i01000001 Puntos 30

La respuesta de klanomath parece buena, pero si eres como yo y no estás tan familiarizado con SQL, quieres un control más granular (activar/desactivar aplicaciones individuales en lugar de todas a la vez), o quieres una interfaz más clara para trabajar, deberías echar un vistazo a tccutil.py .

Utilizando tccutil El comando que se debe ejecutar para habilitar una aplicación es

sudo tccutil -e app.bundle.identifier

Por ejemplo, si quiere activar BetterTouchTool, el comando que debe ejecutar es

sudo tccutil -e com.hegenberg.BetterTouchTool

Supongo que si quieres habilitar BetterSnapTool la última parte sería simplemente com.hegenberg.BetterSnapTool pero no lo tengo instalado en mi ordenador así que no puedo verificarlo.

Puede encontrar fácilmente el identificador de paquete correcto ejecutando sudo tccutil -l una vez que hayas instalado la aplicación y te haya pedido permisos de accesibilidad (sólo tienes que buscar el identificador que corresponde a la aplicación a la que quieres conceder permisos). Si esto no funciona del todo (por ejemplo, si el identificador del paquete no es el que esperas), puedes encontrarlo consultando el contenido del paquete de la aplicación y encontrando el archivo Info.plist y encontrar el valor para el CFBundleIdentifier clave.

13voto

klanomath Puntos 19587

EDIT: tenga en cuenta que esto dejó de funcionar en OS X 10.11 El Capitan (véase también el primer comentario aquí)

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 viene por defecto con los últimos Mac OS X', utilícelo para modificar la configuración.

El esquema de la base de datos es el siguiente:

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 correspondiente es "access" y el nombre del campo correspondiente es "allowed". Si allowed contiene un "1" la app tiene permiso para controlar el ordenador, si contiene un "0" el permiso no se concede.

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 de la lista.

Con el comando

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

puedes desactivar el permiso para todas las aplicaciones de la lista.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X