OS X - Enable access for assistive devices via the command line

03-09-2013 | Remy van Elst


Table of Contents


This command enables access for assistive decives on Apple OS X machines via the command line, or via Apple Remote Desktop. This is needed for software like SpectacleApp or Sizeup.

Mavericks

In Mavericks Apple changed the permissions so that every app has to be given permission individually. Therefore we need to do a bit more work. We first need to get the applications Bundle Identifier:

/usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' /Applications/<Appname.app>/Contents/Info.plist
com.apple.Safari

For SpectacleApp:

/usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' /Applications/Spectacle.app/Contents/Info.plist
com.divisiblebyzero.Spectacle

Then we use the Bundle ID in the following command to modify the permission database:

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT INTO access VALUES('kTCCServiceAccessibility','<Bundle-ID>',0,1,1,NULL);" 

For SpectacleApp:

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT INTO access VALUES('kTCCServiceAccessibility','com.divisiblebyzero.Spectacle',0,1,1,NULL);"

To remove an application from the list we use the following command, with the correct bundle ID:

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "delete from access where client='<Bundle ID>';"

Mountain Lion and Lion

On OS X Mountain Lion (10.8) or Lion (10.7) simply run this command as root:

touch /private/var/db/.AccessibilityAPIEnabled

Tags: apple, apple-remote-desktop, ard, assistive, command-line, mac, mavericks, os-x, spectacle,