[TCC]TCCdbへの書き込み
値がなければINTO
あるならREPLACE
#!/usr/bin/env osascript
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
#ユーザードメインの設定用テンプレート
#
#kTCCServiceBluetoothAlways
#kTCCServiceUbiquity
#kTCCServiceAppleEvents
#kTCCServiceLiverpool
#
#kTCCServicePhotos
#kTCCServicePhotosAdd
#kTCCServiceCamera
#kTCCServiceMicrophone
#kTCCServiceListenEvent
#kTCCServiceSpeechRecognition
#
#kTCCServiceFileProviderDomain
#kTCCServiceSystemPolicyDocumentsFolder
#kTCCServiceSystemPolicyDesktopFolder
#kTCCServiceSystemPolicyDownloadsFolder
#
#kTCCServiceAddressBook
#kTCCServiceCalendar
#kTCCServiceReminders
#
# com.cocolog-nifty.quicktimer.icefloe
----+----1----+----2----+-----3----+----4----+----5----+----6----+----7
--OS12専用
use AppleScript version "2.8"
use framework "Foundation"
use scripting additions
------------設定
---アクセスを許可する設定項目
set theNameOfService to "kTCCServiceFileProviderDomain"
--アクセスを許可するアプリのバンドルID
set theBundleIdentifier to "com.cocolog-nifty.quicktimer.icefloe.RenamerAddSize"
--DBに書き込む日付連番
set theSqlDateNo to (do shell script "date '+%s'") as text
---処理
--戻り値の初期化
set theTCCDB to ""
--TCCDBのすべての内容を取得
set theCommandText to "\"/usr/bin/sqlite3\" \"$HOME/Library/Application Support/com.apple.TCC/TCC.db\" \"SELECT * FROM access\" | grep \"" & theBundleIdentifier & "\"" as text
try
set theTCCDB to (do shell script theCommandText) as text
on error
---バンドルIDでTCC項目が無い場合
end try
log theTCCDB
---セキュリティ項目に項目があれば
if theTCCDB contains theNameOfService then
---リプレイスする
set theCommandText to "\"/usr/bin/sqlite3\" \"$HOME/Library/Application Support/com.apple.TCC/TCC.db\" \"REPLACE INTO access VALUES('" & theNameOfService & "','" & theBundleIdentifier & "',0,2,4,1,NULL,NULL,0,'UNUSED',NULL,0," & theSqlDateNo & ");\"" as text
do shell script theCommandText
else
---項目無い場合はインサートする
set theCommandText to "\"/usr/bin/sqlite3\" \"$HOME/Library/Application Support/com.apple.TCC/TCC.db\" \"INSERT INTO access VALUES('" & theNameOfService & "','" & theBundleIdentifier & "',0,2,4,1,NULL,NULL,0,'UNUSED',NULL,0," & theSqlDateNo & ");\"" as text
do shell script theCommandText
end if
| 固定リンク
「TCC」カテゴリの記事
- [TCC]サービス名を指定してTCCをリセットする(2023.06.05)
- [TCC]位置情報 locationd とLiverpoolからアプリケーションを指定して削除(2023.06.05)
- [sqlite3]モード (output mode)その1 ファイルに書き出す(2023.06.01)
- [sqlite3]モード (output mode)その2(2023.06.01)
- [TCC]kTCCService(OS13.4)(2023.06.01)