26 votes

Modifier les paramètres d'accessibilité sur Mac à l'aide du terminal

J'aimerais accorder l'autorisation d'accès à certaines applications sur Mac en utilisant le Terminal comme indiqué dans cette instruction.

https://support.apple.com/en-au/HT202866 qui est l'onglet accessibilité dans les Préférences Système

Ou ceci

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

Je voudrais faire cela en utilisant le Terminal afin de pouvoir installer des applications (par exemple BetterSnapTool) pour plusieurs Mac en même temps, étant donné que j'ai des privilèges d'administrateur et que cela ne devrait être appliqué que sur Mavericks et Yosemite.

Quelqu'un sait-il comment faire ?

Merci

19voto

Ziewvater Points 241

La réponse de klanomath semble bonne, mais si vous êtes comme moi et que vous n'êtes pas aussi familier avec SQL, si vous voulez un contrôle plus granulaire (activer/désactiver des applications individuelles plutôt que toutes en même temps), ou si vous voulez une interface plus claire pour travailler, vous devriez jeter un coup d'œil à tccutil.py .

Utilisation de tccutil la commande que vous devez exécuter pour activer une application est la suivante

sudo tccutil -e app.bundle.identifier

Par exemple, si vous souhaitez activer BetterTouchTool, la commande à exécuter est la suivante

sudo tccutil -e com.hegenberg.BetterTouchTool

Je suppose que si vous vouliez activer BetterSnapTool la dernière partie serait juste com.hegenberg.BetterSnapTool mais je ne l'ai pas installé sur mon ordinateur donc je ne peux pas vérifier.

Vous pouvez facilement trouver l'identifiant de paquet correct en exécutant sudo tccutil -l une fois que vous avez installé l'application et qu'elle a demandé des autorisations d'accessibilité (recherchez l'identifiant correspondant à l'application à laquelle vous souhaitez accorder des autorisations). Si cela ne fonctionne pas (par exemple, si l'identifiant du paquet n'est pas celui que vous attendez), vous pouvez le trouver en affichant le contenu du paquet d'applications, en trouvant l'élément Info.plist et trouver la valeur de l'option CFBundleIdentifier clé.

13voto

klanomath Points 63400

EDIT : veuillez noter que cela ne fonctionne plus sous OS X 10.11 El Capitan (voir également le premier commentaire ici).

Les autorisations d'accessibilité sont stockées dans un fichier de base de données sqlite à l'adresse /Library/Application Support/com.apple.TCC/TCC.db.

Puisque sqlite3 est livré par défaut avec la dernière version de Mac OS X', utilisez-le pour modifier les paramètres.

Le schéma de la db ressemble à ceci :

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

Le nom de la table concernée est "access" et le nom du champ concerné est "allowed". Si le champ "allowed" contient un "1", l'application est autorisée à contrôler l'ordinateur, s'il contient un "0", l'autorisation n'est pas accordée.

Avec la commande

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

vous pouvez activer la permission pour toutes les applications listées.

Avec la commande

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

vous pouvez désactiver la permission pour toutes les applications listées.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X