mac远程控制软件录屏权限丢失后需手动注入tcc数据库:先清空授权记录,再用sqlite3插入对应bundle id的screencapture权限项,最后重启验证。

Mac系统拒绝远程控制类软件(如ToDesk、AnyDesk、TeamViewer)的录屏权限后,该软件在“屏幕录制”列表中彻底消失,导致无法勾选授权,必须用底层机制强制将其写入TCC数据库才能恢复录屏能力。
确认远程控制软件是否被系统过滤
打开“系统设置”→“隐私与安全性”→向下滚动至“录屏与系统录音”,检查目标远程控制软件是否完全不在列表中;若存在但带灰色禁用图标,说明是签名问题,不适用本流程;【只有列表里彻底找不到该应用时,才需执行后续强制注入操作】。
此时不要尝试重启软件或重装——它不会自动触发注册,因为macOS对远程控制类进程做了额外限制,常规启动不会向TCC提交录屏权限申请。
通过终端命令手动注入录屏权限
第一步:确保目标软件已完全退出(包括后台守护进程),可在“活动监视器”中搜索其进程名并强制退出;
第二步:打开“终端”,逐行执行以下命令:
sudo tccutil reset ScreenCapture
这条命令会清空所有已记录的录屏授权状态,为下一步注入铺平道路;
第三步:执行权限注入指令(以ToDesk为例):
sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" "INSERT or REPLACE INTO access VALUES('kTCCServiceScreenCapture','group.com.todesk.todesk',0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,16384);"
注意替换其中的bundle ID:AnyDesk对应group.net.anydesk.anydesk,TeamViewer为com.teamviewer.TeamViewer;【bundle ID拼错将导致权限无效且无报错提示】;
第四步:重启Mac,再打开该远程控制软件并立即尝试发起屏幕共享或录屏操作——此时系统将识别其已具备录屏资格,不再黑屏或静默失败。
验证权限是否生效
方法一:回到“系统设置→隐私与安全性→录屏与系统录音”,刷新页面,目标软件应已出现在列表中且可勾选;
方法二:在终端中运行以下命令查看当前授权记录:
sudo sqlite3 "/Library/Application Support/com.apple.TCC/TCC.db" "SELECT * FROM access WHERE service='kTCCServiceScreenCapture' AND client LIKE '%todesk%';"
若返回一行含allowed=1的结果,即表示注入成功;
若返回空,则说明bundle ID错误或路径权限被系统锁定,需重新核对应用实际签名信息。











