MacOS 为指定应用添加指定权限(浏览器无法使用摄像头、麦克风终极解决方案)

这篇具有很好参考价值的文章主要介绍了MacOS 为指定应用添加指定权限(浏览器无法使用摄像头、麦克风终极解决方案)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

起因:需要浏览器在线做一些测评,但我的 Chrome 没有摄像头/麦克风权限,并且在设置中是没有手动添加按钮的。

我尝试了重装软件,更新系统(上面的 13.5 就是这么来的,我本来都半年懒得更新系统了),都没有任何用。

mac麦克风权限添加,不务正业系列,macos,macos 摄像头权限,edge 无法使用摄像头
mac麦克风权限添加,不务正业系列,macos,macos 摄像头权限,edge 无法使用摄像头

系统版本:MacOS 13.5.1(需要开启 sip,可参考 macOS 开启或关闭 SIP - 少数派 (sspai.com))

思路来源:https://blog.csdn.net/cneducation/article/details/111403294 ,但这篇在新版本已经失效了,数据表格式和一些值的含义做了一些修改,所以,我这里提供的语句,也并非一定可以执行。本篇后面讲简单讲述下原理,只要知道了原理,只要存储方式没有大更改,都没问题。

例如:向 Chrome 添加摄像头、麦克风权限

/usr/bin/sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT INTO access VALUES('kTCCServiceMicrophone','com.google.Chrome',0,2,2,1,NULL,NULL,NULL,'UNUSED',NULL,0,1637381304);"

/usr/bin/sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT INTO access VALUES('kTCCServiceCamera','com.google.Chrome',0,2,2,1,NULL,NULL,NULL,'UNUSED',NULL,0,1637381304);"

想知道原理,就继续往下看吧,下面路径中保存着的 SQLite 数据库文件就是 MacOS 的权限配置信息

~/Library/Application Support/com.apple.TCC/TCC.db

使用 PRAGMA table_info(access) 可以看到表结构,重要的就两个 service(权限名称), client(应用包名)

mac麦克风权限添加,不务正业系列,macos,macos 摄像头权限,edge 无法使用摄像头

第一步:确认包名

  1. 首先要打开访达,点击左侧应用程序,找到要增加权限的 app
  2. 右键,显示包内容,进入 contents ,找到 info.list
  3. 定位到这一行 <key>CFBundleIdentifier</key>,下面的 <String> 标签里的内容就是我们要找的包

第二步:确认权限名

kTCCServiceCamera 是摄像头权限,kTCCServiceMicrophone 是麦克风权限,整体可读性还是很高的,我根据设置中的权限推测出下表,有几个不确定

权限服务 解释
kTCCServiceAddressBook 访问通讯录的权限。
kTCCServiceAppleEvents 发送和接收 Apple 事件的权限。
kTCCServiceBluetoothAlways 永久访问蓝牙设备的权限。
kTCCServiceCalendar 访问日历的权限。
kTCCServiceCamera 访问摄像头的权限。
kTCCServiceFileProviderDomain 访问文件与文件夹权限。
kTCCServiceFocusStatus
kTCCServiceLiverpool
kTCCServiceMicrophone 访问麦克风的权限。
kTCCServicePhotos 访问照片库的权限。
kTCCServiceReminders 访问提醒事项的权限。
kTCCServiceSystemPolicyDesktopFolder 访问桌面文件夹的系统策略权限。
kTCCServiceSystemPolicyDocumentsFolder 访问文稿文件夹的系统策略权限。
kTCCServiceSystemPolicyDownloadsFolder 访问下载文件夹的系统策略权限。
kTCCServiceSystemPolicyNetworkVolumes 访问网络卷的系统策略权限。
kTCCServiceSystemPolicyRemovableVolumes 访问可移动卷的系统策略权限。
kTCCServiceUbiquity

有了包名和权限名就能唯一定位一个应用程序和一个权限了,接着,剩下的值找已经有摄像头/麦克风权限的软件抄一抄

SELECT * FROM access where service = 'kTCCServiceMicrophone' 
SELECT * FROM access where service = 'kTCCServiceCamera' 

于是就有了下列语句,给 chrome 添加摄像头/麦克风权限

INSERT INTO access VALUES('kTCCServiceMicrophone','com.google.Chrome',0,2,2,1,NULL,NULL,NULL,'UNUSED',NULL,0,1637381304);
INSERT INTO access VALUES('kTCCServiceCamera','com.google.Chrome',0,2,2,1,NULL,NULL,NULL,'UNUSED',NULL,0,1637381304);
mac麦克风权限添加,不务正业系列,macos,macos 摄像头权限,edge 无法使用摄像头

还有能 run 的 python 代码我放在这了,这个是给 edge 加摄像头权限的,根据需要自行更改文章来源地址https://www.toymoban.com/news/detail-733750.html

import sqlite3

# 连接到 SQLite 数据库文件
conn = sqlite3.connect(r'/Users/xxx/Library/Application Support/com.apple.TCC/TCC.db')  # 替换 'example.db' 为你的数据库文件名

# 创建一个游标对象来执行 SQL 查询
cursor = conn.cursor()

# 执行 SQL 查询
# cursor.execute("""SELECT * FROM access where client = 'com.tencent.meeting' """)  # 替换 'your_table_name' 为你的表名
# cursor.execute("""SELECT * FROM access where client = 'com.microsoft.edgemac' """)  # 替换 'your_table_name' 为你的表名
# cursor.execute("PRAGMA table_info(access)")
cursor.execute("""INSERT INTO access VALUES('kTCCServiceCamera','com.microsoft.edgemac',0,2,2,1,NULL,NULL,NULL,'UNUSED',NULL,0,1637381304);""")
conn.commit()  # 提交事务

# 获取查询结果
result = cursor.fetchall()

# 遍历结果并处理数据
for row in result:
    print(row)  # 在这里你可以根据需要处理每一行的数据

# 关闭游标和数据库连接
cursor.close()
conn.close()

到了这里,关于MacOS 为指定应用添加指定权限(浏览器无法使用摄像头、麦克风终极解决方案)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • chrome浏览器禁止指定的http请求

    在debug时为了去除干扰项,可以在chrome浏览器中禁止指定的URL请求。 以下方法可以在浏览器中禁止发出该请求,方法如下: 1、打开浏览器,进入开发者工具(通常可以按F12打开)。 2、切换到“Network”(网络)选项卡,在该选项卡中可以查看浏览器发出的请求和响应信息。

    2024年02月12日
    浏览(50)
  • C语言跳转浏览器打开指定URL

    该代码使用 sprintf() 函数将要打开的URL添加到一个系统命令中,然后使用 system() 函数调用该命令以默认浏览器打开URL。请注意,该命令在Windows和Linux系统中略有不同,所以在编写时需要注意平台差异性。 下面是适用于windwos平台的 该代码使用 ShellExecute() 函数打开默认浏览器,

    2023年04月26日
    浏览(78)
  • 使用selenium启动谷歌Chrome浏览器打开指定网站,页面空白,而使用其它浏览器手动打开该网站则正常

    在使用python实现自动化网络爬虫时,我使用到selenium来驱动谷歌Chrome浏览器来打开某一个网页,然后爬取数据,当使用Python中的selenium库驱动Chrome浏览器打开特定网站时,页面内容为空白,但在其他浏览器中手动访问该网站则显示正常。

    2024年02月07日
    浏览(71)
  • 【已解决】使用selenium启动谷歌Chrome浏览器打开指定网站,页面空白,而使用其它浏览器手动打开该网站则正常

    1、在使用python实现自动化网络爬虫时,我使用到selenium来驱动谷歌Chrome浏览器来打开某一个网页,然后爬取数据,代码如下:    2、但是当执行到driver.get(url)访问网站时,页面是空白的,如下所示,没有正常显示该网站的数据    print输出的网页html也只有如下数据: htmlhea

    2024年02月12日
    浏览(66)
  • es添加索引命令行和浏览器添加索引--图文详解

    一、添加索引 创建索引 curl -X PUT \\\"localhost:9200/my-index-00001?pretty\\\" 获取索引 获取全部的索引 获取索引映射    添加映射:   浏览器里执行   命令行执行   重启客户端(这里用的是canal客户端,同步的mysql数据库)  导入数据  这是我的安装目录: 配置:      /www/canal/adapter

    2024年02月03日
    浏览(47)
  • 浏览器 html通知权限已经开了,但是还不提醒

    如果您已经在Chrome浏览器中开启了HTML5通知,但是仍然不收到提醒,可能有几种可能的原因。下面是一些建议的解决方法: 检查浏览器设置: 确保HTML5通知在Chrome浏览器中正确启用。您可以按照以下步骤检查设置: 在Chrome中输入 chrome://settings/content/notifications 并按下回车键。

    2024年02月16日
    浏览(39)
  • 华为自带浏览器无法使用

    一、首先确认其他浏览器是否正常使用 1.Microsoft Edge 页面截图  2、谷歌页面截图 问题所在:Microsoft Edge浏览器版本 111.0.1661.43 (正式版本64 位)兼容性问题。 二、处理方法 1、将Microsoft Edge浏览器卸载,且将C:Program Files (x86)MicrosoftEdge对应残留文件夹目录删除。 2、删除完去华

    2024年02月04日
    浏览(177)
  • 浏览器无法连接网络问题

    电脑其他程序都能正常联网,但是所有的浏览器都无法联网,同时外部网站都能ping通 查看电脑Internet连接的问题报告显示: 该设备或资源(Web 代理)未设置为接受端口\\\"7890\\\"上的连接 。 经过检查发现不是IP地址设置和防火墙设置的问题,最终 采用重置网络设置解决了问题 。 重

    2024年02月13日
    浏览(39)
  • firefox浏览器添加自定义搜索引擎方法

    Firefox这货居然不支持直接网址+%s的搜索引擎定义方式,以下是添加方法。 firefox国际版119.0 (1)以搜狗为例,在地址栏 右击 (2)在弹出菜单里点击相应的搜索图标,如图所示 Mycroft Project这个网站里能找到大部分的搜索。 (1)以抖音为例,输入“douyin”点击搜索 (2)点击

    2024年02月05日
    浏览(47)
  • selenium无法打开浏览器问题

    想利用这个例子简单测试一下安装是否成功? from selenium import wbdriver driver = weddriver.Chrom() driver.get(‘http://www.baidu.com’) 前提是:浏览器版本和浏览器驱动版本是一致的,具体怎么看版本是否是一致的,下期再给大家补充 结果报如下错误: 在安装浏览器的时候浏览器的名字都

    2024年02月11日
    浏览(62)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包