在注重隐私的今天,我们都希望清楚地知道电脑上的哪些应用程序在后台“活动”。macOS 强大的隐私保护框架(TCC)虽然能在应用首次尝试访问敏感数据(如摄像头、麦克风、位置)时弹出授权请求,但我们有时会想知道:究竟有哪些应用在“尝试”或正在进行屏幕录制?
这篇文章将教你如何像一名侦探一样,通过 macOS 自带的日志工具,精准地捕获所有与“屏幕录制”相关的系统事件。
为什么需要关心这个?
- 隐私安全:确保没有流氓软件或恶意应用在你不知情的情况下录制你的屏幕内容。
- 软件调试:如果你是开发者,可以用来调试应用的权限请求是否正常。
- 系统诊断:当屏幕共享或录制功能异常时,可以帮助定位问题根源。
“魔法”命令登场
打开你的“终端” (Terminal.app),复制并粘贴以下命令,然后按下回车:
log stream --predicate 'subsystem == "com.apple.TCC" and eventMessage contains "ScreenCapture"'
按下回车后,终端会实时显示所有与“屏幕录制”权限相关的日志。现在,你可以尝试打开一些具有屏幕共享或录制功能的软件(如腾讯会议、Zoom、钉钉、甚至是 macOS 自带的截图工具),看看日志会有什么变化。
命令解析
log stream
:这是 macOS 统一日志系统的命令,用于实时显示新产生的日志。--predicate '...'
:这是一个强大的过滤器,告诉log
命令我们只关心符合特定条件的日志。subsystem == "com.apple.TCC"
:我们只看 TCC (Transparency, Consent, and Control) 子系统的日志,这是 macOS 的隐私权限管理核心。eventMessage contains "ScreenCapture"
:在 TCC 的日志中,我们进一步筛选出事件消息包含ScreenCapture
关键词的条目,kTCCServiceScreenCapture
是“屏幕录制”权限的内部名称。
如何解读日志输出
当你看到日志滚动时,可能会觉得信息量很大。别担心,我们只需要关注几个关键字段:
tccd
: 这是 TCC 权限管理后台进程的名字,所有日志都由它产生。identifier
: 最重要的字段! 这是应用的唯一标识符,例如com.tencent.meeting
。通过它就能知道是哪个应用。binary_path
: 应用可执行文件的绝对路径。这让你能精确地找到是哪个文件触发了事件。responsible
/requesting
/accessing
: 这些字段描述了权限请求的归属。有时一个主应用 (responsible
) 会调用一个辅助程序 (requesting
) 来完成具体工作。
实战分析:解剖一段真实的日志
让我们分析一下开头提供的那段真实日志,看看能发现什么秘密。
// ... 省略部分日志 ...
// 关键事件1:XX.app 发起屏幕录制
2025-06-13 08:47:31.189293+0800 ... tccd: [com.apple.TCC:access] AUTHREQ_ATTRIBUTION: ... attribution={responsible={TCCDProcess: identifier=com.xx.XXXX, ..., binary_path=/Applications/XX.app/...}, requesting={TCCDProcess: identifier=com.XX.desktop.XXXCapture, ..., binary_path=.../XXXCapture.app/...}}
// 关键事件2:XX.app 尝试自动化控制其他应用
2025-06-13 08:47:32.139080+0800 ... tccd: [com.apple.TCC:access] Prompting policy for hardened runtime; service: kTCCServiceAppleEvents requires entitlement ... but it is missing for responsible={TCCDProcess: identifier=com.X.XX, ...}
侦探结论
-
谁是主角?
通过identifier
(com.X.XX
) 和binary_path
(/Applications/XX.app
),我们锁定了一个名为XX.app
的应用程序。从标识符推断,这很可能是XX的某款办公或通讯软件。 -
它做了什么?
在08:47:31
,XX.app
(责任方responsible
) 启动了它内置的一个辅助工具XXCapture.app
(请求方requesting
) 来执行屏幕录制操作。这是非常明确的证据,表明XX.app
正在或尝试进行屏幕录制。 -
意外发现!
仅一秒钟后,日志显示XX.app
又请求了kTCCServiceAppleEvents
权限,也就是“自动化”(Automation) 权限,并且失败了(it is missing
)。这意味着,这款应用在录屏的同时,还试图去控制电脑上的其他应用程序,但因为它没有获得相应的授权,这个行为被系统记录并阻止了。
总结与关键点
通过上述分析,我们可以得出几个重要的结论:
log stream
命令是你的隐私“听诊器”,能让你实时监控敏感权限的调用。- 关注
identifier
和binary_path
是快速定位是哪个应用在“搞事情”的最佳方法。 - 理解
responsible
和requesting
的关系,可以帮你理清复杂应用(主程序+辅助程序)的行为链。 - 日志记录的是“尝试”,即使应用没有权限,它的“企图”也会被记录下来。
我该怎么做?
如果你通过这个方法发现某个你不信任的应用,或者某个应用在你未操作时频繁尝试录屏,你应该立即采取行动。
- 前往“系统设置”:打开 系统设置 > 隐私与安全性 > 屏幕与系统音频录制。
- 审查并撤销权限:在这个列表中,你会看到所有请求过或已被授予屏幕录制权限的应用。对于任何你不再使用、不信任或觉得可疑的应用,果断关闭它旁边的开关,撤销其授权。
macOS Screen Recording Permissions
通过定期使用 log
命令检查和在系统设置中管理权限,你可以大大增强对自己 Mac 电脑的控制力,让数字生活更加安心。