[macOS Catalina] VMware Fusion で黒画面

macOS Catalina にアップグレードした後、VMware Fusion で問題が起きた。ゲスト OS の画面が真っ黒になってしまうのだ(Virtual Machine Library 上のプレビューでは正しく表示されている)。これでは操作が全くできない。

環境:macOS Catalina Version 10.15(Hackintosh)、VMware Fusion 10.0.1

これは VMware Fusion 11 にアップグレードすることで解決するが、できれば 10 を使い続けたいので解決方法を探してみた。

参考にしたのは以下のフォーラムだ。

Solved: macOS Catalina issue [beta] |VMware Communities
https://communities.vmware.com/thread/611933

結論から先に書くと、「リンゴアイコン>System Preferences>Security & Privacy>Privacy>Screen Recording」の VMware Fusion.app にチェックを入れると解決するんだけど、ここに至るまで結構苦労した。

【試したこと1】

「ヴァーチャルマシンの設定ボタン>Processors & Memory>Advanced options>Enable hypervisor application in this virtual machine」にチェックを入れて起動すること。これでも黒い画面のままだった。

【試したこと2】

「リンゴアイコン>System Preferences>Security & Privacy>Privacy>Screen Recording」の VMware Fusion.app にチェックを入れようにも、VMware Fusion.app が表示されていない。「+」ボタンで追加しようにも「+」ボタンがない。ドラッグ・アンド・ドロップもできない。「+」ボタンが表示されていないのはおそらくバグだと思われる(macOS Catalina のプレビュー版だと表示されていたらしい)。

【試したこと3】
一旦 VMware Fusion 10 をアンインストール。11 を評価版でインストール。

Download VMware Fusion | VMware
https://www.vmware.com/products/fusion/fusion-evaluation.html

11 を使おうとすると、Screen Recording に VMware Fusion.app を登録するようダイアログが出るらしいんだけど、なぜかダイアログが出てこない。

もしここでダイアログが出たら VMware Fusion.app にチェックを入れ、11 をアンインストール。そして 10 を再インストールすればチェックが残っているので、黒画面が直るらしい。

【試したこと4】

ターミナルで以下のコマンドを実行。

$ tccutil reset All com.vmware.fusion

再度 VMware Fusion を開くと Security & Privacy に VMware Fusion.app を追加するようダイアログが出るが、ここでも Screen Recording には追加されなかった(10 でも 11 でも)。

【解決策】

まずは Mac の SIP を解除する。通常の Mac ならリカバリーモードに入って SIP を無効にする方法があるが、私の Mac は Hackintosh なので限定解除をすることにした。

Clover メニューで「Options>System Parameters>System Integrity Protection>Allow Unrestricted FS」にチェックを入れた状態で起動。これで次の再起動まで SIP が無効になる。

参考:
CatalinaにしたらCloverがインストールできない – Boot macOS
https://bootmacos.com/entry/2019/10/12/121413

ターミナルで以下を実行

$ tccutil reset All com.vmware.fusion

$ sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServiceScreenCapture", "com.vmware.fusion", 0, 1, 1, "", "", "", "UNUSED", "", 0,1565595574)'

$ sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServiceListenEvent", "com.vmware.fusion", 0, 1, 1, "", "", "", "UNUSED", "", 0,1565595574)'

$ sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" 'insert into access values ("kTCCServicePostEvent", "com.vmware.fusion", 0, 1, 1, "", "", "", "UNUSED", "", 0,1565595574)'

これで「リンゴアイコン>System Preferences>Security & Privacy>Privacy>Screen Recording」を見ると VMware Fusion.app が追加されている!

これで VMware Fusion 10 でも黒画面になることなくゲスト OS が使えるようになった。