Yosemite Accessibility Permission Problems

Yosemite GM has significant bugs affecting the ability to add accessibility permissions for various applications, including Keyboard Maestro Engine, as well as engines for various other applications like TextExpander and Which.

Hopefully Apple will promptly resolve the problem as it is affecting a lot of people. In general, I believe you will be fine if you have already enabled accessibility permissions for Keyboard Maestro and the Keyboard Maestro Engine and then upgrade to Yosemite, but if you clean install Yosemite then it appears quite difficult to convince the system to enable accessibility permissions for Keyboard Maestro Engine.

Generally you can force the system to add Keyboard Maestro Engine with this sequence:

  • Open the System Preferences ➤ Security & Privacy preferences.
  • Switch to the Accessibility settings.
  • In the Finder, control click on Keyboard Maestro.app, and choose Show Package Contents.
  • Drill down into Contents / Resources and find the Keyboard Maestro Engine.app
  • Switch back to System Preferences.
  • Click the Lock icon in the bottom left and enter your admin password.
  • Click the Plus (+) button to add an application.
  • Drag the Keyboard Maestro Engine.app into the open dialog.
  • Click Open.

Even if nothing appears in that last stage, it may still have worked. Launch Keyboard Maestro and see if the setting is actually enabled, and if not, try restarting.

The folks at Many Tricks have a detailed walk through, including a video, and the process is very similar for Keyboard Maestro, so if you’re having troubles folling the instructions, that might help.

This topic is now pinned globally. It will appear at the top of its category and all topic lists until it is unpinned by staff for everyone, or by individual users for themselves. It will be unpinned when Apple fix the Yosemite Accessibility setting problems.

In Mountain Lion SysPrefs>Security & Privacy, there is no tab for “Accessibility.” Nor does there seem to be a way to add KM in SysPrefs>Accessibility.

In Mountain Lion and previous versions, there was a single system wide checkbox for allowing accessibility in the Universal Access system preference. The per-app behaviour was introduced in Mavericks, where is started out flaky, and then has been made worse and more buggy in Yosemite. Thankfully, all the bugs have been around difficulty in getting the permission setup in the first place, and once set, has not been an ongoing issue.

So, am I reading correctly that, if KM works in Mountain Lion, that it will work in Yosemite if Yosemite is installed then one uses Migration Assistant? Or, does one need to clone ML to the new (in my case, iMac) drive, then install Yosemite over the top of it? Just in case I ordered a USB stick with Mavericks to upgrade to that before Yosemite, follow your instructions about adding the application to the Accessibility list that doesn’t exist before Mavericks.
Sorry, still a bit puzzled. Sorry to take your time with this.

I believe if you have a version of Mavericks, with Keyboard Maestro and Keyboard Maestro Engine already configured to be allowed accessibility, and you upgrade that installation to Yosemite, that the permissions will remain.

If you install a clean install of Yosemite, even if you migrate settings, I suspect the accessibility settings will not be preserved. But in all honesty, I would not worry too much about this - as far as I am aware, everyone has managed to get the accessibility settings enabled by following the instructions, so while it’s a nuisance and a trifle tedious, its not a big deal. And once done, its done and hopefully you never have to think about it again.

I installed Yosemite and then installed Keyboard Maestro. It worked fine for a couple of days, and now it is complaining about accessibility permissions.

I haven’t been able to get the fix outlined above to work.

Other than restarting, or dragging a copy of the Keyboard Maestro Engine.app to your Applications folder, there is not much more to suggest.

Uninstalling and reinstalling seems to work!

Via Scott Granneman on the mailing list, ranman's answer on this question at Ask Different may shed some light on the accessibility permission low level systems.

I have no idea if those commands work, or whether they are safe or dangerous, but if they do work, then the versions for Keyboard Maestro and Keyboard Maestro Engine would be:

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/Tcc.db 'delete from access where client like "%keyboardmaestro%"'

(that is one line, so be careful of wrapping).

Restart Keyboard Maestro and Keyboard Maestro Engine

Allow Keyboard Maestro access in accessibility via UI or something like:

sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR REPLACE INTO access values ('kTCCServiceAccessibility','com.stairways.keyboardmaestro.engine',0,1,0,NULL);"
sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR REPLACE INTO access values ('kTCCServiceAccessibility','com.stairways.keyboardmaestro.editor',0,1,0,NULL);"

(that is two lines, so be careful of wrapping).

Since, as far as I am aware, everyone has been able to get accessibility permissions eventually using the UI (it just takes some time and mucking around until the system gives in), I would suggest that is probably a better way to go that trying to mess around with low level databases like this which might well have other consequences.

With Yosemite 10.10.1 I was able to make this work following the instructions here. It took about 8 tries (I don’t know why) but finally when I added the Keyboard Maestro Engine.app by dragging, the Security and Privacy System Preference said that it had added “Keyboard Maestro.app” and all was good.

I’ve tried 23 times and couldn’t get this to work. As well as other solutions. I wonder if the KM Get info pane will calculate the lost time dealing with this mess, cause I’m spending, not saving here.

Very sadly, other than complaining to Apple (perhaps make a Genius appointment? although my sources say that Apple does not listen to them either), there is not much to suggest. Keyboard Maestro cannot “work around” Apple’s security system - it is put there for a reason and if Keyboard Maestro could work around it, then it would be useless (as well as annoying!).

If you can’t get the system to accept it after a few tries, I would resort to the sudo sqlite3 method and hope that that works.

Hey Guy,
What I did for this issue is that I tried more than ten times what Peternlewis mentioned.
It failed.
From this I just duplicated(option + drag) the engine file to Desktop.
Suddenly It automatically registered the engine to Accessability.
This is what happened to me.
Try guys. I’m not sure it will happen to you guys though. Good Luck.

I found a problem and solution if above works.
When I removed the engine file from the desktop, it also automatically disappear from the Accessibility. So I duplicated it to applications folder and automatically registered again. And now I don’t need to remove the file, because it’s in the applications.

1 Like

Just wondering if 10.10.2 has changed anything here.

Rumour has it that 10.10.2 resolves the problem, but I have no real confirmation of this yet.

Yosemite 10.10.2 appears to finally resolve this issue, so this topic is now unpinned. It will no longer appear at the top of its category.

I’m having a similar problem-- KM is shown installed in the Permissions pane as mentioned above but macros work inconsistantly, especially those which share triggers with others. I’m using Yosemite 10.10.2. Some macros work but most don’t.

Make sure you are using Yosemite 10.10.2. Restart. Launch Keyboard Maestro. Both Keyboard Maestro and Keyboard Maestro Engine should appear in your System Preferences, Security & Privacy, Accessibility list.

Both Keyboard Maestro and Keyboard Maestro Engine need to be listed and checked.

If you have more than one copy of Keyboard Maestro, consider deleting (trash and empty trash) all other copies of Keyboard Maestro before restarting.

That last post is a spam post in the Thai language. It would be best to delete it and ban the person that placed it.

1 Like