{"id":28018,"date":"2020-02-03T15:52:31","date_gmt":"2020-02-03T20:52:31","guid":{"rendered":"https:\/\/mjtsai.com\/blog\/?p=28018"},"modified":"2020-07-03T16:48:41","modified_gmt":"2020-07-03T20:48:41","slug":"vmware-fusion-10-on-macos-catalina","status":"publish","type":"post","link":"https:\/\/mjtsai.com\/blog\/2020\/02\/03\/vmware-fusion-10-on-macos-catalina\/","title":{"rendered":"VMware Fusion 10 on macOS Catalina"},"content":{"rendered":"<p><a href=\"https:\/\/posts.boy.sh\/vmware-fusion-catalina\">Boy van Amstel<\/a>:<\/p>\n<blockquote cite=\"https:\/\/posts.boy.sh\/vmware-fusion-catalina\"><p>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.<\/p>\n<p><a href=\"https:\/\/communities.vmware.com\/message\/2884329#2884329\">Some people<\/a> found a way to get around this by granting permission manually. Here&rsquo;s how that works.<\/p><\/blockquote>\n<p>macOS doesn&rsquo;t let you add Screen Recording permission in System Preferences if the app hasn&rsquo;t asked for it. VMware 11 asks; version 10 doesn&rsquo;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 <tt>TCC.db<\/tt> file to grant VMware the access.<\/p>\n\n<p>There&rsquo;s a similar problem where sometimes macOS fails to prompt for Automation access (or remember said access). The prompting is supposed to happen automatically&mdash;there&rsquo;s no API that apps need to call. If it doesn&rsquo;t work, there&rsquo;s likely something wrong with the <tt>TCC.db<\/tt> file and you should probably reset it. Sometimes <code>tccutil reset AppleEvents<\/code> 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 <code>tccutil<\/code>.<\/p>\n\n<p><a href=\"https:\/\/communities.vmware.com\/thread\/613755?start=105&amp;tstart=0\">0x00400000<\/a>:<\/p>\n<blockquote cite=\"https:\/\/communities.vmware.com\/thread\/613755?start=105&amp;tstart=0\">\n<p>I managed to trigger the permission modal for VMware Fusion 10 on Catalina using library injection.\nAfter restarting VMWare Fusion 10 it seems to have done the trick.<\/p>\n<p>I created a <a href=\"https:\/\/github.com\/rvermeulen\/vmware-fusion-screen-recording-permission-fix\">git repo<\/a> with a script to trigger the modal.<\/p>\n<\/blockquote>\n\n<p>Previously:<\/p>\n<ul>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/11\/22\/detecting-screen-recording-permission-on-catalina\/\">Detecting Screen Recording Permission on Catalina<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/11\/06\/hardened-xpc-services-dont-prompt\/\">Hardened XPC Services Don&rsquo;t Prompt<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2019\/07\/23\/annoying-catalina-security-features\/\">Annoying Catalina Security Features<\/a><\/li>\n<li><a href=\"https:\/\/mjtsai.com\/blog\/2016\/09\/21\/dropbox-modifies-tcc-db-to-give-itself-accessibility-access\/\">Dropbox Modifies TCC.db to Give Itself Accessibility Access<\/a><\/li>\n<\/ul>\n\n<p>Update (2020-02-03): It&rsquo;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&rsquo;s doing something that requires permission. But Catalina shouldn&rsquo;t be breaking an app that was compiled with an older SDK.<\/p>\n\n<p id=\"vmware-fusion-10-on-macos-catalina-update-2020-02-06\">Update (2020-02-06): <a href=\"https:\/\/twitter.com\/jaysee_au\/status\/1224814512928280578\">John Cleary<\/a>:<\/p>\n<blockquote cite=\"https:\/\/twitter.com\/jaysee_au\/status\/1224814512928280578\">\n<p>I&rsquo;m still on v8 and just use the built in VNC and screen share to localhost as the VM just shows a black screen.<\/p>\n<\/blockquote>","protected":false},"excerpt":{"rendered":"<p>Boy van Amstel: 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&rsquo;s how that works. macOS doesn&rsquo;t let [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"apple_news_api_created_at":"2020-02-03T20:52:34Z","apple_news_api_id":"4b562d81-7af5-43f7-830a-207589e40777","apple_news_api_modified_at":"2020-07-03T20:48:44Z","apple_news_api_revision":"AAAAAAAAAAAAAAAAAAAABQ==","apple_news_api_share_url":"https:\/\/apple.news\/AS1YtgXr1Q_eDCiB1ieQHdw","apple_news_coverimage":0,"apple_news_coverimage_caption":"","apple_news_is_hidden":false,"apple_news_is_paid":false,"apple_news_is_preview":false,"apple_news_is_sponsored":false,"apple_news_maturity_rating":"","apple_news_metadata":"\"\"","apple_news_pullquote":"","apple_news_pullquote_position":"","apple_news_slug":"","apple_news_sections":"\"\"","apple_news_suppress_video_url":false,"apple_news_use_image_component":false,"footnotes":""},"categories":[2],"tags":[30,1666,355,425,1235,1960,29],"class_list":["post-28018","post","type-post","status-publish","format-standard","hentry","category-technology","tag-mac","tag-macos-10-15","tag-privacy","tag-sqlite","tag-system-integrity-protection","tag-transparency-consent-and-control-tcc","tag-vmware"],"apple_news_notices":[],"_links":{"self":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/28018","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/comments?post=28018"}],"version-history":[{"count":6,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/28018\/revisions"}],"predecessor-version":[{"id":28061,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/posts\/28018\/revisions\/28061"}],"wp:attachment":[{"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/media?parent=28018"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/categories?post=28018"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mjtsai.com\/blog\/wp-json\/wp\/v2\/tags?post=28018"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}