解决黑苹果MacOS 10.15麦克风权限问题

问题描述

一时兴起拿了老索尼电脑SVS131A11T装了个黑苹果,起先十分顺利,WiFi、蓝牙、睡眠均正常

img

之后尝试安装了微信,腾讯会议等软件,均发现有麦克风摄像头无法自动授予访问权限的问题,到隐私偏好设置中没有任何选项

img

img

网上可查询到的教程均不适用于Catalina 10.15,故自编教程

解决方法

1.禁用系统完整性保护(SIP)

在黑苹果OC引导界面按空格键,选择Recovery 10.15.7(dmg),按enter进入Recovery模式

请选择你的拍屏导师

选择“实用工具”栏下的“终端”,执行:

1
csrutil status

如果显示“System Integrity Protection status: enabled.” 说明SIP处于打开状态,需执行:

1
csrutil disable

屏幕显示”System Integrity Protection is off.” 表示SIP已经关闭。此时可以退出终端,重启电脑。

注:如果显示“System Integrity Protection status: unknown” 建议也disable一下。

img

2.获取APP的string值

打开应用程序目录夹,右键选择需要添加权限的程序,显示包内容

img

打开Contents文件夹,找到 Info.plist文件,并选择文本编辑打开此文件img

此处即可找到腾讯会议的string值为com.tencent.meeting,其他软件方法均相同

img

以上内容应该是适用于所有版本的MacOS,之后的会略有不同

3.获取权限

打开终端,首先检查TCC.db表结构:

1
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "PRAGMA table_info(access);"

此时会要求确认password,输入回车即可,终端为保护密码会不显示输入内容

img

可见表结构为12列,故使用以下指令:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT OR REPLACE INTO access VALUES(
'kTCCServiceMicrophone', -- service
'com.tencent.meeting', -- client
0, -- client_type (0=Bundle ID)
1, -- allowed (1=允许)
1, -- prompt_count
NULL, -- csreq (不需要)
NULL, -- policy_id
0, -- indirect_object_identifier_type
'UNUSED', -- indirect_object_identifier
NULL, -- indirect_object_code_identity
0, -- flags
strftime('%s','now') -- last_modified (当前时间戳)
);"

仍会需要密码,输入回车即可

img

重启腾讯会议,发现此时麦克风能够正常打开,隐私偏好设置中也有了腾讯会议

img

如果想开启摄像头,service值为:kTCCServiceCamera

如果想开启摄像头,service值为:kTCCServiceAll

此外,附上远景论坛中17列的指令:

1
sudo sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT or REPLACE INTO access VALUES('kTCCServiceMicrophone','com.tencent.xinWeChat',0,1,1,1,NULL,NULL,'UNUSED',1,0,1551892126,0,0,0,0,0);"

以及csdn中13列的指令:

1
sqlite3 ~/Library/application\ Support/com.apple.TCC/TCC.db "REPLACE INTO access VALUES('kTCCServiceAll','com.apple.FinalCut',0,2,0,1,NULL,NULL,NULL,'UNUSED',NULL,0,1608354323);"

教程结束,我要去吃拼好饭了