系统授权
macOS 的 TCC 权限集中在这一页;哪几项能就地授权、哪几项只能去系统设置,以及状态是怎么探出来的。
macOS 对敏感数据访问有系统级权限(TCC)。「设置 → 系统授权」集中管理这几项:
- 完全磁盘访问:信息、Safari 等连接器需要。
- 照片:照片连接器需要。
- 辅助功能与自动化:App UI、电脑操控需要。
- 屏幕录制:电脑操控的截图需要。
- 通知、定位:各自对应的小功能。
每一行显示「已授权 / 未授权 / 未知」,没有授权的行右边有一个「去授权」按钮。这个按钮做的事分两种,取决于 macOS 允许到哪一步:
- 能就地授权的:照片、自动化、通知。点「去授权」会直接请系统弹出授权框,你当场同意,这一行立刻刷新,不用重启。
- 只能去系统设置的:完全磁盘访问、录屏与系统录音、辅助功能、位置服务。这几项点按钮只会把对应的系统设置面板打开,勾要你自己去勾。
状态是当场探一下探出来的,不是读一个存下来的标记,所以它会比你记得的「我明明勾过了」更贴近真实情况;代价是有几行探不全:
- 完全磁盘访问:拿「信息」的数据库当探针,真去读一下。报权限错就是「未授权」;但如果你这台机器从没用过「信息」、那份数据库根本不存在,就只能显示「未知」——这是「我已经给了完全磁盘访问,为什么还是未知」最常见的原因。
- 自动化:向系统事件问一句,静默成功算已授权。为了让已经给过的授权真的可观测,必要时会在后台把 System Events 起一下(一个没有窗口、不进程序坞的系统代理),这一步不会弹窗打扰你。
- 辅助功能、屏幕录制:问系统框架要一个干净的布尔值,没授权时辅助功能只能知道「不是已授权」,不知道到底是没问过还是被拒了,所以显示为「未知」;录屏在系统明确拒绝时显示「未授权」,其余情况同样是「未知」。
- 照片、定位:有原生探针读得到真实状态。但定位在你从没给过时同样显示「未知」而不是「未授权」;看连接器能不能真的拉到数据比盯着这一行更准。
状态探测本身只读、不弹授权框;弹框只发生在你点上面那三项的「去授权」按钮时。页脚还有一个「刷新状态」,手动重新探一遍。
注意:macOS 会对已运行的进程缓存权限决定。在系统设置里勾选授权后,需要重启 Klaus 新权限才会生效——所以走「打开系统设置」那条路的几项,点完按钮 Klaus 就会弹出「重启 Klaus?」提示,可以选立即重启或稍后。