隐私设置都是存储在 ~/Library/Application\ Support/com.apple.TCC/TCC.db
,是个 sqlite3 的数据库。
可以先查看表结构:
sqlite3 TCC.db "select * from sqlite_master where type="table";"
权限表 access 结构如下:
service TEXT NOT NULL,
client TEXT NOT NULL,
client_type INTEGER NOT NULL,
auth_value INTEGER NOT NULL,
auth_reason INTEGER NOT NULL,
auth_version INTEGER NOT NULL,
csreq BLOB,
policy_id INTEGER,
indirect_object_identifier_type INTEGER,
indirect_object_identifier TEXT NOT NULL DEFAULT 'UNUSED',
indirect_object_code_identity BLOB,
flags INTEGER,
last_modified INTEGER NOT NULL DEFAULT (CAST(strftime('%s','now') AS INTEGER)),
需要找到服务名,应用包名。
下面是常用的几种服务:
- 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.corget.webview',0,2,4,1,NULL,NULL,NULL,'UNUSED',NULL,0,1618978709);"