tccd
又称:隐私权限
简要回答
tccd是管理隐私权限的macOS进程:哪些App可以使用摄像头、麦克风、录屏、你的文件和文件夹、通讯录、完全磁盘访问权限和辅助功能。TCC是Transparency, Consent and Control(透明、同意与控制)的缩写,每一个“想要访问”提示背后都是这套系统。
每当App要使用受保护的内容时,macOS都会问tccd是否允许。tccd把答案存在一个数据库中,还没有答案时就显示权限提示。你在“系统设置”→“隐私与安全性”中打开和关闭的,就是tccd的数据库。
它有两个实例:一个为你自己的账户服务,一个为系统服务。两者平时都处于闲置状态,几乎没有开销。
本页内容
tccd为什么占用这么多CPU
某个App在一遍又一遍地请求权限,常见原因是被拒绝后不停尝试,或者更新后签名与tccd批准时的不再一致。最常见的是录屏和辅助功能权限。
较少见的情况是,迁移或中断的更新后权限数据库出了问题,tccd一直读取失败。
如何解决
打开“系统设置”→“隐私与安全性”,找到App需要的权限,把开关关掉再打开;或者用减号按钮把App从列表中移除,让它重新请求。
要为所有App重设某一项权限,可以在“终端”中使用tccutil reset加上服务名称,例如tccutil reset ScreenCapture。App下次需要时会重新请求。
如何查看是哪个App一直在询问tccd
tccd忙的时候,真正该问的是:谁在请求什么?它自己的日志会把这两点都告诉你。
- 打开活动监视器,选取“显示”→“所有进程”,然后在搜索栏中输入
tccd。“用户”列中,系统实例显示为root,你的实例显示为你的用户名。记下是哪一个在占用CPU。 - 打开“终端”并运行
log stream --predicate 'process == "tccd" AND eventMessage CONTAINS "AUTHREQ"'。按下Control-C停止。 - 阅读反复出现的行。
service=是权限名称,例如kTCCServiceScreenCapture;identifier=是App名称,例如com.example.app。 - 看结果行中的
authValue=。0表示拒绝,2表示允许。一次又一次得到0的App,就是那个循环。 - 只为那个App重设那一项权限。服务名称中
kTCCService之后的部分就是tccutil需要的参数,所以tccutil reset ScreenCapture com.example.app只会清除该App的这一项结果,tccutil reset All com.example.app则会清除它的所有权限。 - 再次打开这个App并回应它的提示,或者在“系统设置”→“隐私与安全性”中授予权限。
tccd的正常占用与异常情况
正常:接近零,每当有App请求受保护的内容时,会小小地跳一下。App请求得很频繁,但大多数回答都是瞬间从数据库中取出的。
值得检查:tccd连续几分钟出现在CPU列表中,或者你已经授予的权限仍在反复询问。常见原因有:
- 某个App更新过或重新签过名,tccd不再把它认作你批准过的那个App。
- 你拒绝过的App仍在不停地请求。
- 迁移时权限数据库没有被完整地迁移过来。
为什么授予的权限不起作用
有些权限只在App启动时才会生效,常见的是“录屏”和“完全磁盘访问权限”:打开它们时,macOS会提示你退出并重新打开App。如果你选择“以后”,在你自己退出这个App之前,它会继续像没有权限一样运行。
如果开关已经打开,重新启动App后仍无法使用该功能,就把开关关掉,用减号按钮把App从列表中移除,再重新添加。这样,tccd数据库中的旧记录就会被替换为与这个App当前状态相符的新记录。
常见问题
Mac上的tccd是什么?
它是管理隐私权限(例如摄像头、麦克风、录屏和文件访问)的macOS进程。它负责显示权限提示,并记住你的回答。
tccd为什么CPU占用高?
通常是某个App在反复请求权限,多半是更新改变了它的签名。在“隐私与安全性”中重新授予权限,或者用tccutil重设它,就能终止这个循环。
用tccutil重设隐私权限安全吗?
安全。它只会清除该权限已存储的回答,让App重新请求。它不会移除任何其他东西,但你需要重新批准需要这项权限的App。
可以停用tccd吗?
不可以。它是macOS的一部分,受系统完整性保护,没有它,就无法允许或拒绝任何App访问你的摄像头、麦克风或文件。要让提示不再出现,请回应它,或者在“系统设置”→“隐私与安全性”中更改该App的权限。
Mac上的TCC数据库在哪里?
你自己的权限在~/Library/Application Support/com.apple.TCC/TCC.db中,系统范围的权限在/Library下的同一路径中。macOS会保护这两个文件,所以请在“系统设置”中或用tccutil更改权限,而不要直接编辑它们。
相关条目
想找比活动监视器更好的工具?请看Mac上最好用的活动监视器替代品,或者浏览术语表中的所有条目。