Modifica le impostazioni di accessibilità su Mac utilizzando il terminale

7

Vorrei concedere l'autorizzazione all'accessibilità ad alcune app su Mac usando Terminal come da questa introduzione

link che è la scheda di accessibilità in Preferenze di sistema

O questo

link

Mi piacerebbe farlo usando Terminal così posso configurare per installare app (cioè: BetterSnapTool) per molti Mac allo stesso tempo, dato che ho privilegi di amministratore e questo dovrebbe essere applicato solo su Mavericks e Yosemite

Qualcuno sa come fare?

Grazie

    
posta L N 26.03.2015 - 01:13
fonte

2 risposte

6

Le autorizzazioni di accessibilità sono memorizzate in un file di database sqlite su / Libreria / Application Support / com.apple.TCC / TCC.db.

Poiché sqlite3 viene fornito di default con il successivo Mac OS X ', usalo per modificare le impostazioni.

Lo schema db ha il seguente aspetto:

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);

Il nome della tabella pertinente è "accesso" e il nome del campo pertinente è "consentito". Se consentito contiene un "1" all'app viene concessa l'autorizzazione per controllare il computer, se contiene uno "0" l'autorizzazione non è concessa.

Con il comando

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

puoi attivare o disattivare l'autorizzazione per tutte le app elencate.

Con il comando

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

puoi disattivare l'autorizzazione per tutte le app elencate.

    
risposta data 26.03.2015 - 13:49
fonte
6

La risposta di klanomath sembra buona, ma se sei come me e non hai familiarità con SQL, vuoi un controllo più granulare (abilitando / disabilitando le singole app invece di tutte in una volta) o vuoi un'interfaccia più chiara con cui lavorare, dovresti controllare tccutil.py .

Utilizzando tccutil , il comando che desideri eseguire per abilitare un'app è

sudo tccutil -e app.bundle.identifier

Ad esempio, se si desidera abilitare BetterTouchTool, il comando da eseguire è

sudo tccutil -e com.hegenberg.BetterTouchTool

Suppongo che se si volesse abilitare BetterSnapTool l'ultima parte sarebbe solo com.hegenberg.BetterSnapTool , ma non l'ho installata sul mio computer, quindi non posso verificarla.

È possibile trovare facilmente l'identificatore di bundle corretto eseguendo sudo tccutil -l dopo aver installato l'app e richiesto le autorizzazioni di accessibilità (è sufficiente cercare l'identificatore associato all'app a cui si desidera concedere le autorizzazioni). Se ciò non funziona (ad esempio se l'identificatore del bundle non è quello che ti aspetti), puoi trovarlo visualizzando i contenuti del pacchetto dell'app, individuando il file Info.plist e individuando il valore per CFBundleIdentifier key.

    
risposta data 28.05.2016 - 22:50
fonte

Leggi altre domande sui tag