应用程序不会显示在 MacBook 的相机和麦克风隐私设置中

应用程序不会显示在 MacBook 的相机和麦克风隐私设置中

我无法允许我的 MacBook Pro 的摄像头和麦克风在不同的应用程序(Google Chrome、Slack 等)中使用,因为它们没有出现在“系统偏好设置 -> 安全和隐私 -> 麦克风/摄像头”中。

由于没有应用程序,也没有办法添加它们,因此没有勾选框,如此 Apple 支持文档

答案1

当我尝试在 macOS 10.14 上使用 Microsoft Powerpoint 2011 录制音频时,我遇到了同样的问题。Powerpoint 未显示在可以访问麦克风的应用程序列表中(系统偏好设置 -> 隐私 -> 麦克风)。

请注意,您可以使用以下命令从命令行(即终端)重置此列表:

tccutil reset Microphone

这可能对你有帮助,也可能没用。就我的情况来说,没用。

有帮助的是从命令行启动 Powerpoint终端(尽管我怀疑,使用Terminal.app效果也一样好)。因此,在命令行上,我输入了:

/Applications/Microsoft\ Office\ 2011/Microsoft\ PowerPoint.app/Contents/MacOS/Microsoft\ PowerPoint

即,我执行了 Powerpoint 子文件夹中的可执行文件/Contents/MacOS。按照惯例,每个应用程序都有一个可执行文件,这意味着您可以通过这种方式启动每个应用程序(但可执行文件的名称通常会有所不同)。

通过这种方式启动后,当我尝试访问麦克风时,系统会询问我是否要授予iTerm我麦克风访问权限。授予访问权限后,我就可以通过 Powerpoint 录制音频了。

显然,这只是一个让事情顺利进行的黑客攻击。但有时黑客攻击就是你所需要的。

答案2

解决方案

成功测试

  • 蒙特雷 12.2.1
  • BigSur 11.7.4
  • 文图拉 13.3, 13.6
  • (其他版本见答案底部)
  1. 制作 TCC 数据库的备份,以防万一:

    cp ~/Library/Application\ Support/com.apple.TCC/TCC.db ~/TCC.db.bak
    
  2. 我通过运行以下命令打开了 TCC 数据库:

    sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
    
  3. 我通过输入以下内容添加了应用程序:

    insert into access
    values 
    ('kTCCServiceMicrophone','<AppBundleURLname>', 0, 2, 2, 1, null, null, null, 'UNUSED', null, null, 1669648527);
    
  4. 关闭与数据库的连接:

    .quit
    

<AppBundleURLname>通过打开并检查文件可以找到替换上述步骤 3 中的占位符的值:

/Applications/appname.app/Contents/Info.plist

通常它是像CFBundleURLName或 这样的值键CFBundleIdentifier。例如,对于 WhatsApp MacOS 应用程序,如果您打开文件:

/Applications/WhatsApp.app/Contents/Info.plist

然后你会发现类似这样的内容:

    <key>CFBundleURLName</key>
    <string>com.WhatsApp.chat</string>

这意味着在这种情况下您应该在上述说明的第 3 步中用<AppBundleURLname>进行替换。com.WhatsApp.chat

例如

笔记: 插入记录中的最后一个值(参见步骤 3)只是一个时间戳(以秒为单位),您可以输入与任何您想要的日期相对应的时间戳,例如要检查与时间戳 1669648527 相对应的日期,您可以输入:

$ date --date='@1669648527'
Mon 28 Nov 15:15:27 GMT 2022

如果您运行的是其他 MacOS 版本

在这种情况下,表的结构access可能会有所不同,并且您插入的记录可能会有些不同。您可以使用以下命令检查其结构:

  • 要将您想要添加的记录与其他现有记录进行比较:

    select * from access ;
    
  • 或者也许更好:

    select * from access where service = 'kTCCServiceMicrophone' ;
    
  • 检查access表的结构(例如列):

    .schema access
    

答案3

就我而言,我根本无法获得相机、麦克风权限提示。安全和隐私中的相机部分根本不会填充任何应用。

检查控制台并发现每次我尝试使用任何需要摄像头/麦克风访问的应用程序时,它都会在控制台中不断向我抛出以下错误:

策略不允许提示 REQ:{ID:xxx.xxx.xxx}

访问 kTCCServiceCamera 被拒绝

我尝试了显示的方法@loadbox 的回答但对我不起作用。结果我发现系统完整性保护已禁用。我不得不重新启动 Mac 并以恢复模式启动。启动终端并通过输入以下内容重新启用它:

csrutil enable
reboot

机器启动后,我启动了 Skype,然后……它提示需要相机权限。问题解决了。根据您的配置,您的里程可能会有所不同。

答案4

切换到管理员帐户就帮我解决了这个问题。

标准帐户的麦克风设置中只有一个应用程序。管理员帐户有 5 个以上的应用程序。

不确定是否因为该应用程序安装在管理员帐户上,或者应用程序未正确请求权限。

相关内容