解决macOS 15系统无法授予应用摄像头/麦克风权限的问题

技术 · 前天 · 18 人浏览

问题背景

升级到macOS 15后,许多用户发现系统设置中无法正常为某些应用授予摄像头或麦克风权限。这是由于新版本系统中TCC(透明同意控制)数据库的结构发生了变化,导致旧方法失效。

解决方案

步骤1:获取应用的Bundle Identifier

  1. 打开Finder,进入"应用程序"文件夹
  2. 右键点击目标应用,选择"显示包内容"
  3. 进入Contents文件夹,找到Info.plist文件
  4. 查找CFBundleIdentifier键对应的值(即应用的包名)

步骤2:修改TCC数据库

打开终端,执行以下命令(将com.mac.utility.screen.recorder替换为你找到的实际包名):

# 授予摄像头权限
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "REPLACE INTO access VALUES('kTCCServiceCamera','com.mac.utility.screen.recorder',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1608354323);"

# 授予麦克风权限
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "REPLACE INTO access VALUES('kTCCServiceMicrophone','com.mac.utility.screen.recorder',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1608354323);"

其他常用权限(可选)

# 屏幕录制权限
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "REPLACE INTO access VALUES('kTCCServiceScreenCapture','com.mac.utility.screen.recorder',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1608354323);"

# 完全磁盘访问权限
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "REPLACE INTO access VALUES('kTCCServiceSystemPolicyAllFiles','com.mac.utility.screen.recorder',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1608354323);"

注意事项

  1. 操作前建议备份TCC数据库:

    cp ~/Library/Application\ Support/com.apple.TCC/TCC.db ~/Desktop/TCC.db.backup
  2. 执行命令后可能需要重启应用或系统才能生效
  3. 此方法适用于开发者或高级用户,普通用户建议等待应用更新适配macOS 15
  4. 如果遇到权限问题,可以尝试先禁用SIP(系统完整性保护),操作完成后再重新启用

总结

macOS 15对隐私权限管理做了调整,导致部分应用无法通过常规方式获取权限。通过直接修改TCC数据库可以解决这个问题,但需要注意操作风险。建议应用开发者尽快适配新系统,提供更友好的权限获取方式。

macOS