Je fais un usage intensif des Apple Events pour contrôler une grande variété d'applications sur ma machine. Les nouvelles invites de sécurité introduites dans Mojave sont les suivantes paralysant .
Dans les versions précédentes de MacOS, une fois qu'une application avait obtenu l'autorisation de "contrôler votre ordinateur", elle pouvait envoyer des événements Apple à n'importe quelle autre application sur votre machine. Dans Mojave, cette autorisation doit être accordée manuellement une fois pour chaque application contrôlée.
Une fois qu'un utilisateur a autorisé l'accès, sa sélection est stockée dans l'une des deux bases de données sqlite :
~/Library/Application Support/com.apple.TCC/TCC.db
-
/Library/Application Support/com.apple.TCC/TCC.db
- Notez que le point 2 n'est visible que par l'utilisateur root.
- Notez que la protection de l'intégrité du système est désactivée.
Serait-il possible d'éditer directement ces bases de données sqlite pour accorder automatiquement les permissions et contourner ces invites de sécurité ?
0 votes
@user3439894 Merci, SIP est déjà désactivé sur ma machine. Il ne semble pas que ce programme Python soit compatible avec la nouvelle protection "Automation" de Mojave.
0 votes
Qu'est-ce qui envoie les Apple Events aux différentes applications (par exemple, combien de Foo.app avez-vous et combien de Bar.app avez-vous et cette matrice est-elle clairsemée ou dense ?) Êtes-vous d'accord avec une solution qui n'évolue pas au-delà de 3 machines que vous contrôlez (ou qui nécessite des fonds à ce stade) ?
0 votes
@bmike Mes applescripts ont des lignes comme "dire à l'application (chemin de l'application la plus en avant sous forme de texte) de quitter", donc Bar.app pourrait être n'importe quelle application installée. Tout ceci se passe sur une seule machine.
0 votes
Débarrassez-vous de tout en une seule fois :
tell app "Finder" to open every application file in the entire contents of (path to applications folder) as alias list
. Ensuite,repeat with A in the result
...ignoring application responses
...quit the application named A
...end ignoring
...end repeat
. Ce sera douloureux, mais ce sera comme arracher un pansement.