VMware Fusion 10 on macOS Catalina
Catalina requires apps to request permission for various tasks. Recording the screen is one of them. Apparently Fusion uses this feature, but neglects to ask for permission. Thus the screen stays black.
Some people found a way to get around this by granting permission manually. Here’s how that works.
macOS doesn’t let you add Screen Recording permission in System Preferences if the app hasn’t asked for it. VMware 11 asks; version 10 doesn’t, but it otherwise works fine on Catalina. The solution is to boot into Recovery (to get past System Integrity Protection) and then use SQLite to edit the TCC.db file to grant VMware the access.
There’s a similar problem where sometimes macOS fails to prompt for Automation access (or remember said access). The prompting is supposed to happen automatically—there’s no API that apps need to call. If it doesn’t work, there’s likely something wrong with the TCC.db file and you should probably reset it. Sometimes tccutil reset AppleEvents
does the job. But sometimes the database is so messed up that you have to boot into Recovery and delete the file manually. There really should be a way to do that with tccutil
.
I managed to trigger the permission modal for VMware Fusion 10 on Catalina using library injection. After restarting VMWare Fusion 10 it seems to have done the trick.
I created a git repo with a script to trigger the modal.
Previously:
- Detecting Screen Recording Permission on Catalina
- Hardened XPC Services Don’t Prompt
- Annoying Catalina Security Features
- Dropbox Modifies TCC.db to Give Itself Accessibility Access
Update (2020-02-03): It’s not clear to me whether VMware is supposed to be calling a certain API to ask for permission or if macOS is supposed to (as with Automation) be noticing that it’s doing something that requires permission. But Catalina shouldn’t be breaking an app that was compiled with an older SDK.
Update (2020-02-06): John Cleary:
I’m still on v8 and just use the built in VNC and screen share to localhost as the VM just shows a black screen.
6 Comments RSS · Twitter
Keyboard Maestro users get hit with the Screen Recording permission issue as well. Screen Recording permission is required for getting an image of a window, but the system apparently only asks for permissions if you screen capture the whole screen. So until you do the latter, the former fails without any prompt (and as with most Apple permissions, there is no way for an app to explicitly request it, or find out if it is allowed).
It is about as much fun as the accessibility permission error that has been around since Mojave (and continues in Catalina), where the permission checkboxes are on, and the API (which actually exists) says the permission is granted, but in fact requests are denied. Sigh.
You can just
sudo sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT INTO access VALUES ('kTCCServiceScreenCapture','', 0, 1, 1, NULL, NULL, NULL, 'UNUSED', NULL, 0, 1550269728);"
Solved my black screen when attempting to install a Fedora ISO image running Vmware 10.x on a macOS Catalina system.
Thanks!
Sean