macOS:給APP增加攝像頭麥克風權限

前言

作爲一名macOS系統下APP開發人員,最近幾年一直在使用Qt做跨平臺的APP開發.
某一天,在無任何徵兆的情況下,QtCreater啓動的調試程序突然就再也無法啓動設備的攝像頭和麥克風了,然後就一拖再拖沒有處理
因爲之前修了近一個月的陪產假,老婆給生了一個大胖小子,😀.今天是2024年第一天上班,沒什麼事就解決一下吧.

解決

目標

首先我知道權限修改是macOS系統下的數據庫文件設置的,所以目標就比較明確了,只需要手動修改數據庫文件

搜索

作爲一個程序員,第一步就是百度或者Google相關信息,然後就找到了macOS:給 app 添加攝像頭權限文章,首先就是拿到作者提供的數據進行嘗試,然後結果就是沒有權限.
所以下一步就是解文件決權限問題

權限

還是搜索,然後就找到了macOS Monterey終端添加App權限——以QQ、騰訊會議屏幕錄製爲例,裏面提到了需要關閉SIP,然後就需要查找如何進入macOS系統的更新界面(一般重啓系統後長按command+R,直到出現相關界面爲止),然後在實用工具中打開終端輸入

csrutil disable
reboot

修改

不同的系統肯能對應的~/Library/Application\ Support/com.apple.TCC/`` 路徑下TCC.db`文件的表結構不同,所以我們可以使用相關的SQL軟件打開,或者使用sqlite3命令打開數據庫文件
@macOS14.1.1系統下,表結構

根據你自己系統的表結構來修改下面的參數

//終端輸入sqlite3
.open TCC.db
//第一步查看對應表結構,
select * from access;
//注意!!!,不同系統的表結構字段數目不盡相同,所以下面的命令需要做相應修改
REPLACE INTO access VALUES('kTCCServiceMicrophone','包名',0,2,2,1,NULL,NULL,NULL,'UNUSED',NULL,0,1608354323,NULL,NULL,'UNUSED',0);
REPLACE INTO access VALUES('kTCCServiceCamera','包名',0,2,2,1,NULL,NULL,NULL,'UNUSED',NULL,0,1608354323,NULL,NULL,'UNUSED',0);

總結

平心靜氣,循序漸進

引用

macOS:給 app 添加攝像頭權限
macOS Monterey終端添加App權限——以QQ、騰訊會議屏幕錄製爲例
sqlite3 命令行查看數據內容

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章