隐私设置都是存储在 ~/Library/Application\ Support/com.apple.TCC/TCC.db,是个 sqlite3 的数据库。
可以先查看表结构:
sqlite3 TCC.db"select * from sqlite_master where type="table";"
权限表 access 结构如下:
service TEXT NOTNULL,
client TEXT NOTNULL,
client_type INTEGER NOTNULL,
auth_value INTEGER NOTNULL,
auth_reason INTEGER NOTNULL,
auth_version INTEGER NOTNULL,
csreq BLOB,
policy_id INTEGER,
indirect_object_identifier_type INTEGER,
indirect_object_identifier TEXTNOTNULL DEFAULT 'UNUSED',
indirect_object_code_identity BLOB,
flags INTEGER,
last_modified INTEGER NOTNULL DEFAULT (CAST(strftime('%s','now')ASINTEGER)),
需要找到服务名,应用包名。
下面是常用的几种服务:
kTCCServiceCamera 摄像头
kTCCServiceMicrophone 麦克风
kTCCServiceScreenCapture 录制屏幕
kTCCServiceAccessibility 辅助功能
获取包名:
mdls -name kMDItemCFBundleIdentifier -r'/Applications/Google Chrome.app'# 这里是应用的位置,拖进来即可
> com.google.Chrome
其他参数不知道怎么设置,可以参考下表中其他数据:
sqlite3 TCC.db"select * from access;"
执行下面的 sql 进行修改:
sqlite3 TCC.db"INSERT or REPLACE INTO access VALUES('kTCCServiceCamera','com.google.Chrome',0,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,0,1618978709);"