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

loa*_*box 24 microphone camera system-preferences macbook-pro

我不能让我的 macbook pro 的相机和麦克风在不同的应用程序(谷歌浏览器、Slack 等)中使用,因为它们没有出现在“系统偏好设置 -> 安全和隐私 -> 麦克风/相机”中。

由于没有应用程序,也无法添加它们,因此没有此 Apple 支持文档中所述的勾选框。

Kub*_*r82 10

解决方案

已成功测试

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

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

    sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
    
    Run Code Online (Sandbox Code Playgroud)
  3. 我通过输入以下内容添加了该应用程序:

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

    .quit
    
    Run Code Online (Sandbox Code Playgroud)

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

/Applications/appname.app/Contents/Info.plist
Run Code Online (Sandbox Code Playgroud)

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

/Applications/WhatsApp.app/Contents/Info.plist
Run Code Online (Sandbox Code Playgroud)

然后你会发现类似的东西:

    <key>CFBundleURLName</key>
    <string>com.WhatsApp.chat</string>
Run Code Online (Sandbox Code Playgroud)

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

例如

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

$ date --date='@1669648527'
Mon 28 Nov 15:15:27 GMT 2022
Run Code Online (Sandbox Code Playgroud)

如果您运行的是不同的 MacOS 版本

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


小智 8

就我而言,我根本不会\xe2\x80\x99得到相机、麦克风权限提示。安全和隐私中的相机部分根本不会填充任何应用程序。

\n\n

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

\n\n
\n

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

\n
\n\n

\n\n
\n

对 kTCCServiceCamera 的访问被拒绝

\n
\n\n

我尝试了@loadbox\xe2\x80\x99s 答案所示的方法,但它对我不起作用。结果我禁用了系统完整性保护。我必须重新启动 Mac 并以恢复模式启动。启动终端并通过输入以下内容重新启用它:

\n\n
csrutil enable\nreboot\n
Run Code Online (Sandbox Code Playgroud)\n\n

机器启动后,我启动了 Skype,瞧\xe2\x80\xa6 它提示相机权限。问题解决了。根据您的配置,您的里程可能会有所不同。

\n

  • 重置 PRAM 也将重新启用 SIP (2认同)

hen*_*rik 6

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

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

tccutil reset Microphone
Run Code Online (Sandbox Code Playgroud)

这可能会也可能不会帮助您。就我而言,它没有。

有什么帮助,是通过iTerm从命令行启动 Powerpoint (尽管我怀疑,也可以使用这些Terminal.app作品)。所以在命令行上,我输入了:

/Applications/Microsoft\ Office\ 2011/Microsoft\ PowerPoint.app/Contents/MacOS/Microsoft\ PowerPoint
Run Code Online (Sandbox Code Playgroud)

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

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

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


loa*_*box -2

我为我的案例找到了解决方案。我使用的是 macOS Mojave 版本 10.14.5。希望它也适用于其他人。

  1. Finder > 前往 > 计算机

  2. Macintosh HD > 用户 > 双指点击您的帐户 > 获取信息

  3. 共享与权限:点击右下锁并输入密码

  4. 单击底部的齿轮标记 > 应用到包含的项目 > 在弹出窗口中单击“确定”(正在应用权限...)

  5. 重新启动你的Mac

  • 这到底是如何回答这个问题的呢?是的,我看到它与应用权限有关,但这对摄像头和麦克风隐私设置有何作用?我缺少什么?您是说您必须执行上述操作,*然后***然后按照[您在问题中链接到的文章](https://support.apple.com/en-gb/guide/mac -help/mchlf6d108da/mac“控制对 Mac 上相机的访问”)? ……………………………………请勿在评论中回复; [编辑]您的答案,使其更清晰、更完整。 (13认同)
  • 这是个坏建议。这会递归地更改您的主文件夹中所有文件和目录的所有权限,并构成安全威胁。而且这不是问题的直接答案... *(只是重申@qwerty_so,谢谢)* (5认同)
  • 实际上是一个糟糕的建议。这会将您的私人文件夹中所有文件的用户权限更改为 644。因此,它也会收回受保护文件的权限(例如您的 ~/.ssh/id_rss ,而 ssh 登录不再接受该文件)。除此之外它并不能解决问题。 (4认同)
  • 正如 @Scott 已经指出的那样,这并不能回答问题,或者至少它如何解决问题并不明显。您能否添加更多信息来说明如何以及为何解决该问题?这是否会导致应用程序再次请求许可? (2认同)