禁用SIP
首先查看 csrutil 的状态, 终端下执行 csrutil status
~ % csrutil status
System Integrity Protection status: disabled.
如果不是 disabled
状态, 那么可以参考 macOS Monterey终端添加App权限——以QQ、腾讯会议屏幕录制为例 里面的方法禁用SIP.
加入权限
注意这里 macOS Catalina 10.15.x
与 macOS Monterey
中所用命令有些不同 (主要是权限的代码那里), 所以应该用这个参考 程序员的Mac入门-MacOS 10.15.x 无法添加屏幕录制权限解决办法 中的命令.
具体步骤如下(主要是摘录整合了上面两个参考中的内容):
总体的命令为:
sudo /usr/bin/sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT or REPLACE INTO access VALUES('${权限}','${包名}',0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1585206926);"
- 操作完成后,在
系统偏好设置-安全性与隐私-隐私
中可以看到权限所对应的App, - 如果还是没有效果的话请取消勾选后再次勾选尽可能重新启动App
权限
和 包名
两个变量请自行根据需求替换:
- 权限:辅助功能
kTCCServiceAccessibility
、摄像头kTCCServiceCamera
、输入监听kTCCServiceListenEvent
、麦克风kTCCServiceMicrophone
、录制屏幕kTCCServiceScreenCapture
、完全磁盘访问权限kTCCServiceSystemPolicyAllFiles
等 - 包名:在访达中找到应用程序文件后(一般位于应用程序),右键选择显示包内容,使用文本编辑器打开
Contents/Info.plist
,找到<key>CFBundleIdentifier</key>
,下面一行在<string>
和</string>
中间的便是包名.
例如以下
添加屏幕录制权限:
sudo /usr/bin/sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT or REPLACE INTO access VALUES('kTCCServiceScreenCapture','com.techsmith.camtasia2019',0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1585206926);"
添加麦克风权限:
sudo /usr/bin/sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT or REPLACE INTO access VALUES('kTCCServiceMicrophone','com.techsmith.camtasia2019',0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1585206926);"
添加摄像头权限:
sudo /usr/bin/sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db "INSERT or REPLACE INTO access VALUES('kTCCServiceCamera','com.techsmith.camtasia2019',0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1585206926);"