« 2020年10月 | トップページ | 2020年12月 »

[Mac Admin]TCC.dbを操作する【その1】TCC (Transparency Consent Control)の基本情報

※OS10.15での操作になりますOS11とはテーブルの内容が異なりますので留意してください。

Transparency Consent Control Data Base
TCC.dbを操作します。


目的
TCC.dbを操作することで、WACOMのペンタブや
Microsoft Teamsでの画面共有の設定を速やかに行う


TCC.dbは
ローカルドメインとユーザードメインの2箇所に存在します。
ローカルドメイン
/Library/Application Support/com.apple.TCC/TCC.db
ユーザードメイン
/Users/ユーザー名/Library/Application Support/com.apple.TCC/TCC.db


TCC.dbはデータベースですので
操作には『sqlite3』を利用します。
/usr/bin/sqlite3


リセットツールとして
『tccutil』が用意されています
/usr/bin/tccutil

 

 


留意事項
OSのバージョンによって設定項目数が異なります。
ここでは10.15で説明します。

|

[Mac Admin]TCC.dbを操作する【その2】コントロールパネルのアンカー

いきなり脱線ですが
管理ユーザーが多い場合はこのような配慮が必要になります
コントロールパネルをアンカー指定で開く

Screen_capture_20201123_13_09_57

 

ユーザーに『セキュリティとプライバシー』のシステム環境設定を操作させる場合に
操作先を指定して開いておいてあげる場合

 

Screen_capture_20201123_13_18_48

 


--セキュリティとプライバシーのコントロールパネルを開く(最後に閉じた画面で)
try
set theCommand to ("open \"x-apple.systempreferences:com.apple.preference.security\"") as text
do shell script theCommand
end try
---カメラをアンカーにして開く
try
set theCommand to ("open \"x-apple.systempreferences:com.apple.preference.security?Privacy_Camera\"") as text
do shell script theCommand
end try

 

『セキュリティとプライバシー』のアンカーは以下
Privacy_Reminders
Privacy_SystemServices
Privacy_Calendars
Privacy_Assistive
Privacy_LocationServices
Privacy_Contacts
Privacy_Accessibility
Privacy_Camera
Privacy_AllFiles
Privacy_Microphone
General
Advanced
Firewall
FDE
Privacy

 

 

アンカー名はこのように取得できる


try
set theComand to ("open \"x-apple.systempreferences:com.apple.preference.security\"") as text
do shell script theComand
end try

delay 5

tell application "System Preferences"
set theAnchors to get name of anchors of current pane
end tell

log theAnchors

theAnchors

 

この方法で開けるシステム環境設定はこちらの一覧を参照してください

 


システム環境設定の一覧
com.apple.ClassroomSettings
com.apple.Localization
com.apple.preference.datetime
com.apple.preference.desktopscreeneffect
com.apple.preference.digihub.discs
com.apple.preference.displays
com.apple.preference.dock
com.apple.preference.energysaver
com.apple.preference.expose
com.apple.preference.general
com.apple.preference.ink
com.apple.preference.keyboard
com.apple.preference.mouse
com.apple.preference.network
com.apple.preference.notifications
com.apple.preference.printfax
com.apple.preference.screentime
com.apple.preference.security
com.apple.preference.sidecar
com.apple.preference.sound
com.apple.preference.speech
com.apple.preference.spotlight
com.apple.preference.startupdisk
com.apple.preference.trackpad
com.apple.preference.universalaccess
com.apple.preferences.AppleIDPrefPane
com.apple.preferences.appstore
com.apple.preferences.Bluetooth
com.apple.preferences.configurationprofiles
com.apple.preferences.extensions
com.apple.preferences.FamilySharingPrefPane
com.apple.preferences.icloud
com.apple.preferences.internetaccounts
com.apple.preferences.parentalcontrols
com.apple.preferences.password
com.apple.preferences.sharing
com.apple.preferences.softwareupdate
com.apple.preferences.users
com.apple.preferences.wallet
com.apple.prefpanel.fibrechannel
com.apple.prefs.backup
com.apple.Xsan

|

[Mac Admin]TCC.dbを操作する【その3】tccutil

tccutil
/usr/bin/tccutil
TCC(Transparency Consent Control)のユーティリティ
早い話が『TCCのリセットツール』

 

全リセット(オプションAllのAは大文字lは小文字)
/usr/bin/sudo /usr/bin/tccutil reset All
特定のサービスのみリセット
/usr/bin/sudo /usr/bin/tccutil reset サービス名
特定のアプリの全部リセット
/usr/bin/sudo /usr/bin/tccutil reset All アプリ名
特定のアプリの特定のサービスのみリセット
/usr/bin/sudo /usr/bin/tccutil reset サービス名 アプリ名

 

どんな時に使うか
■うっかりセキュリティ警告画面で『拒否』を選んじゃったとき(逆の『許可』の時もそう)
■環境移行しながらデバイスが変わった時
■各種ドライバーがバージョンアップして動作が不安定になった時

 

個別のアンカーのリセットは以下のように行う
/usr/bin/sudo /usr/bin/tccutil reset Microphone
/usr/bin/sudo /usr/bin/tccutil reset Camera
/usr/bin/sudo /usr/bin/tccutil reset Accessibility
/usr/bin/sudo /usr/bin/tccutil reset ListenEvent
/usr/bin/sudo /usr/bin/tccutil reset ScreenCapture
/usr/bin/sudo /usr/bin/tccutil reset SystemPolicyAllFiles

 

サービス名の一覧

Location Services
Contacts
Calendars
Reminders
Photos
Camera
Accessibility
Microphone
Speech Recognition
Input Monitoring
Full Disk Access
Files & Folders
Screen Recording
Automation
Analytics
Advertising

 

 

 

 

----tccutilのGeneral Commands Manual 内容は以下
NAME
tccutil -- manage the privacy database

 

SYNOPSIS
tccutil command service [bundle_id]

 

DESCRIPTION
The tccutil command manages the privacy database, which stores decisions
the user has made about whether apps may access personal data.

 

One command is current supported:

 

reset Reset all decisions for the specified service, causing apps to
prompt again the next time they access the service. If a bundle
identifier is specified, the service will be reset for that bun-
dle only.

 

EXAMPLES
To reset all decisions about whether apps may access the address book:

 

tccutil reset AddressBook
tccutil reset All com.apple.Terminal

|

[Mac Admin]TCC.dbを操作する【その4】Bundle identifierを取得する

TCC.dbに各種アプリケーションからのアクセスを許可するには
『Bundle identifier』バンドルIDで指定します。

 

AppleScriptだと

id of application "アプリケーション名"
例:id of application "Terminal" 

get bundle identifier of (info for (path to application "アプリケーション名"))
例:get bundle identifier of (info for (path to application "Terminal"))で
取得できる

 

コマンドだと
mdls -name kMDItemCFBundleIdentifier -r "UNIXパス"
例:mdls -name kMDItemCFBundleIdentifier -r "/System/Applications/Utilities/Terminal.app"
とか
/usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' /アプリケーションまでのUNIXパス/Contents/Info.plist
例:/usr/libexec/PlistBuddy -c 'Print CFBundleIdentifier' /Applications/Safari.app/Contents/Info.plist

 

等で取得します。
手動で一度TCCに登録してから…も良いかもしれません。

 

|

[Mac Admin]TCC.dbを操作する【その5】TCC.dbの中身をみてみましょう

TCC.dbは
ローカルドメインとユーザードメインの2箇所に存在します。
ローカルドメイン /Library/Application Support/com.apple.TCC/TCC.db
ユーザードメイン /Users/ユーザー名/Library/Application Support/com.apple.TCC/TCC.db


GUIアプリを利用したい場合は
DB Browser for SQLiteが良いでしょう(LINK
コマンドでも参照出来ます
/usr/bin/sqlite3


ユーザードメインのTCC.dbをDB Browser for SQLiteで開いてみると
Screen_capture_20201123_19_56_22


コマンドの場合は
ユーザードメインのTCC.dbを開く
/usr/bin/sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
コマンドを順番に
.show  設定を見る
.tables  テーブル一覧を見る(accessがあるのをみてください)
.mode line (ラインモードに変更)
select * from access; (accessの一覧を出力します)
.quit (sqlite3を終了)


実際のログはこんな感じ
% /usr/bin/sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db

SQLite version 3.28.0 2019-04-15 14:49:49
Enter ".help" for usage hints.
sqlite> .show

echo: off
eqp: off
explain: auto
headers: off
mode: list
nullvalue: ""
output: stdout
colseparator: "|"
rowseparator: "\n"
stats: off
width:
filename: /Users/ユーザー名/Library/Application Support/com.apple.TCC/TCC.db

sqlite> .tables

access active_policy expired
access_overrides admin policies

sqlite> .mode line
sqlite> select * from access;

service = kTCCServiceCamera
client = com.tinyspeck.slackmacgap
client_type = 0
allowed = 1
prompt_count = 1
csreq =
policy_id =
indirect_object_identifier_type =
indirect_object_identifier = UNUSED
indirect_object_code_identity =
flags = 0
last_modified = 1606114806

sqlite> .quit %


colseparator: "|" 値の区切り文字は『パイプ』
rowseparator: "\n" 改行コードはUNIX改行
各テーブルで12項目の設定を確認できます(OSのバージョンによって項目数は異なります)
service
client
client_type
allowed
prompt_count
csreq
policy_id
indirect_object_identifier_type
indirect_object_identifier
indirect_object_code_identity
flags
last_modified


格納されている値では
client_type = 0 これは数字のゼロが値
policy_id =    この場合はNULL ヌル 何も入っていないとなります。


これで
だいたい、内容と設定すべき値等がわかってきました

|

[Mac Admin]TCC.dbを操作する【その6】ローカルドメインとユーザードメイン

TCC.dbは
ローカルドメインとユーザードメインの2箇所に存在します。
ローカルドメイン(デバイス依存)
/Library/Application Support/com.apple.TCC/TCC.db
ユーザードメイン(ユーザー依存)
/Users/ユーザー名/Library/Application Support/com.apple.TCC/TCC.db
概ね以下のような感じですが…
Screen_capture_20201123_20_51_56


まず、どっちに、どの項目が設定されているか?みましょう

 

コマンド
ローカルドメイン
/usr/bin/sudo /usr/bin/sqlite3 /Library/Application\ Support/com.apple.TCC/TCC.db 'select * from access'
ユーザードメイン
/usr/bin/sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db 'select * from access'


戻り値

ローカルドメイン

例:kTCCServiceAccessibility|com.microsoft.edgemac|0|1|1||||UNUSED||0|1606061326
ユーザードメイン
例:kTCCServiceMicrophone|com.microsoft.edgemac|0|1|1| |||UNUSED||0|1606127842


戻り値は区切り文字『|』パイプで区切られて、左から
service
client
client_type
allowed
prompt_count
csreq
policy_id
indirect_object_identifier_type
indirect_object_identifier
indirect_object_code_identity
flags
last_modified

並んでいます。


例1
allowed=1はこの項目が『有効』ですから
allowedを0に変更すれば『無効』となります

 

例2
client=com.microsoft.edgemac(Bundle identifierでエッジ)になっていますので
ここをcom.apple.Safariに変更すれば、エッジの設定をサファリにも適応できます。

 

例3
値が無い場合は、設定値は『NULL』をとして戻します。

 

例4:
UNUSEDやBundle identifierは『'値はここ'』シングルクオトで囲ってテキストとして戻します。

 


サービス名一覧 kTCCServiceAll kTCCServiceAddressBook kTCCServiceCalendar kTCCServiceReminders kTCCServiceTwitter kTCCServiceFacebook kTCCServiceSinaWeibo kTCCServiceLiverpool kTCCServiceUbiquity kTCCServiceTencentWeibo kTCCServiceShareKit kTCCServicePhotos kTCCServicePhotosAdd kTCCServiceMicrophone kTCCServiceCamera kTCCServiceWillow kTCCServiceMediaLibrary kTCCServiceSiri kTCCServiceAppleEvents kTCCServiceLinkedIn kTCCServiceAccessibility kTCCServicePostEvent kTCCServiceLocation kTCCServiceSystemPolicyAllFiles kTCCServiceSystemPolicySysAdminFiles kTCCServiceSystemPolicyDeveloperFile

|

【Fonts】シヤチハタフォント(文字もじ MOJI の世界)

記事

https://moji.or.jp/2020/11/17/

直リンク

https://moji.or.jp/wp-content/uploads/2020/11/2020-09_magazine_blog.pdf

|

【App】draw.ioメニューが日本語化してる…

ワンポイントでフロー書いたりするのに使っている『draw.io
一部メニューとかが日本語化されていた。ちなみに今のバージョンは13.9.9

PowerPointやkeynoteでは面倒な図形も
ちょい、ちょいと簡単です。

Screen_capture_20201123_14_07_28

|

【Google Chrome】Google Software Update

 


 


 


/Users/ユーザー名/Library/Google/GoogleSoftwareUpdate/GoogleSoftwareUpdate.bundle/Contents/Helpers


 


Google Chromeのアップデート関連


 


ksinstall
ksfetch
ksdiagnostics
ksadmin

GoogleSoftwareUpdateDaemon
Google Software Update.app
crashpad_handler


 


スクリーンタイムが要求してきたら許可しても問題無い
自分で定期的にクロームを更新している場合は、『許可しない』でも大丈夫


 

|

Vectornator: Design Software

Screen-capture-20201122-215706

https://apps.apple.com/jp/app/vectornator-vector-design/id1219074514

|

【Paint】ArtRage6

Screen-capture-20201122-214713


ArtRage5
https://www.sourcenext.com/product/pc/gra/pc_gra_002351/

Painter系

|

【Paint】Autodesk SketchBook

Screen-capture-20201122-213717

https://www.sketchbook.com/thankyou

AppStore版はこちら
https://apps.apple.com/jp/app/autodesk-sketchbook/id863486266

もう1年更新されていないので終了かなぁ…

|

【Paint】Krita(無料)

Screen-capture-20201122-211947

https://krita.org/jp

KDEベースのオープンソースのペインとソフト
『お絵かき』系

|

【Fonts】JKHandwritingはOCR-HNの代替フォントとして成立すんじゃないか?

モリサワの新書体
JKHandwriting
https://www.morisawa.co.jp/fonts/specimen/5214


これは、良い字じゃないかなぁ
好き嫌いじゃなく『可読性が高い』と思う
(人間の目的にも機械的にも)


JKHandwritingの数字部分が、光学式文字認識のための手書き文字 (数字)に激似
JKHandwriting
Screen-capture-20201122-113657


JIS X 9006-1979
光学式文字認識のための手書き文字 (数字)
Screen-capture-20201122-113657


JIS X 9006-1979の適応が必要な場合はダメだけと(4と5とか全然違うから)
ただ
郵便番号の文字打ち等なら、十分いける
教科書体の派生ですが、いろいろ使える良い文字だと思うわ
(好き嫌いじゃないよ、使える場面が多いって意味ね)

|

【Fonts】ナウ

ナウ!

ナウには、リョービ時代から入れると3つの呼び名があります。

PSナウ→OCF版、別名旧CID版 もう売ってないOS9じゃないと使えない

RFナウ→NewCID版 これももう購入出来ない

ROナウ→OTFオープンタイプ版 タイプバンクパスポート




字形は同じですから(厳密には違う字もあるかも?だけど)ROナウに置き換えが吉

|

【Adobe】XDがクラッシュする(UXP Application V8 Manager)

エラー:起動後、新規クラウドドキュメントを開くと、UXP Application V8 Managerでクラッシュする
対応:

全てのアプリケーションを一旦終了させる。

AdobeCC Desktop Appも終了させる

/Users/ユーザー名/Library/Application Support/Adobe/Adobe XD

/Users/ユーザー名/Library/Application Support/Adobe/Adobe XD-Backup等に名称を変更する

XDを起動させる

復旧する

/Users/ユーザー名/Library/Application Support/Adobe/Adobe XDの中には

ダウンロード済みのクラウドドキュメントのxdファイルの実体があるので、気になる方は残して中を見てみると良いでしょう

|

昨日の記事(Apple OS付属のフォントのライセンス)へのフォロー

昨日の記事(Apple OS付属のフォントのライセンス)のフォローです。

商用制作について

昨日は、

『OS標準フォントより購入できるフォント』の方が良いことが多いって書きましたが

逆に、『OS標準フォントが良いこともある』場合について


オリンピックのスタイルブック

 

Tokyo2020

 

https://www.olympic.sk/sites/default/files/field_media_file/2019-09/Tokio_2020_-_NOC_Olympic_emblem_guideline_ver2.0.pdf

 


PostScript名DINAlternate-Boldが指定されています

その下の『DIN Medium』これはType1フォントで入手困難です。
なので

昔々の『DIN Medium』持っていないならOS標準の『DIN Alternate Bold』でも良いよとなっています。

こんな場合にはOS標準フォントを指定するのは便利に使えます。(Macがあれば、だいたい入ってる)

まとめ

その場、その場で最適なフォント選択をすれば良いのでは無いでしょうか?と(どっちつかず)


今は『TOKYO2020 official fonts』に一本化されているのかな?しらんけど…

Qzo8lajyfaktihggct6m

|

Apple OS付属のフォントのライセンス

appleのOS付属のフォントのライセンスは以下

https://developer.apple.com/support/mac/licensing/

https://www.apple.com/legal/sla/docs/macOSBigSur.pdf

----ここから

E. フォント 本契約の契約条件に従って、お客様は、Appleソフトウェアの起動中にコンテンツを表示
およびプリントするために、Appleソフトウェアに入っているフォントを使用することができます。しか
し、お客様は、問題になっているフォントに付属する組み込み制限が許諾する場合のみ、コンテンツの
中にフォントを組み込むことができます。これらの組み込み制限は、Font Book/プレビュー/フォント
情報を表示、においてご覧になれます。

----ここまで

要点:許諾の内容はFont Bookで確認しなさいってことですが
AppleのOSに標準でインストールされているフォントは『形態』が購入不能な物も多く

商用で利用するのには、いろいろな意味で適さないことが多いので

コンプライアンス面ってよりも、運用面で個別の書体を購入した方が良いことも多い

例:OSに標準でインストールされているフォント一覧

https://support.apple.com/ja-jp/HT211240

例えば『Avenir Next Regular』これを使って商用利用されるパワーポイント文書を作ったとします。

納品先がWINDOWSを利用している場合

WINDOWSユーザーが同じフォントを利用しようとすると購入が必要になりますが

購入出来るのは『Avenir® Next Pro Regular』となって『書体名が異なって』しまいます。

こんな意味でも、OS標準のフォントを使うより、購入し、許諾されたフォントを使う方が良い場合も『ある』といったことがあります。

制作環境が『自分完結』なら商用制作物に利用することに問題はありませんが

制作環境(クライアントや製版から出力まで含めて)が様々でしたらOS標準のフォントは使うべきでは無い『場合』もあることに留意しましょう。

なので、個別のファウンダリに許諾を確認するぐらいなら、フォントを買った方が良い場合も多いよ…って話でした(商用ならね…)


留意事項

一部 Apple製品のFontにはApple製品での利用に限る(制作物がApple製品で使われる前提であること)が含まれます

San Francisco や New Yorkが対象→詳しくはインストール時のライセンス画面を参照されたし

https://developer.apple.com/fonts/

---ここから

2.許可されたライセンスの使用と制限。
A.限定ライセンス。このライセンスの条件に従い、Apple Fontは、AppleのiOS、iPadOS、macOS、またはtvOSオペレーティングシステムで実行されるソフトウェア製品で使用されるユーザーインターフェースのモックアップを作成するためにのみ使用できます。

---ここまで


この話って、前にも説明したと思うんですけど…○崎さん…笑

|

PowerShell 7.1.0

https://github.com/PowerShell/PowerShell

Screen_capture_20201115_17_28_54

パッケージ直リンクstable
https://github.com/PowerShell/PowerShell/releases/download/v7.1.0/powershell-7.1.0-osx-x64.pkg

|

【AppleAcripts】ブラウザで開いているURLをQRコードに変換生成(GoogleAPI)

各種ブラウザで開いているURLのQRコードをGoogleAPIを利用して

QRコードを生成しますの一部修正

インストール先は

~/Library/Scripts/Applications/Safari

~/Library/Scripts/Applications/Chrome

~/Library/Scripts/Applications/ Microsoft Edge

ダウンロード - url2qr.zip

 

|

[Mac Admin]TCC.dbを操作する【最終回】値を入れ替える

何をするか?って言うと
Screen_capture_20201125_11_16_45 ↑無効になっているのを
↓有効にします

 

Screen_capture_20201125_11_16_52

 


 

ユーザードメインのTTC.dbの値を取得します
/usr/bin/sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db 'select * from access'

 

ここではzoomを例にします

 

kTCCServiceMicrophone|us.zoom.xos|0|0|1||||UNUSED||0|1606114806

 

↑これはマイクが無効になっていますので
これを
kTCCServiceMicrophone|us.zoom.xos|0|1|1||||UNUSED||0|1606114806

 

↑有効に変更します。

 

sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT INTO access VALUES('kTCCServiceMicrophone','us.zoom.xos',0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1606114806);"

直接置き換えるわけですが
エラーになります。

 

まずは『リセット』が必要です
/usr/bin/sudo /usr/bin/tccutil reset Microphone us.zoom.xos

 

これで
リセットされますので
あらためて コマンドで値を入れます
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db "INSERT INTO access VALUES('kTCCServiceMicrophone','us.zoom.xos',0,1,1,NULL,NULL,NULL,'UNUSED',NULL,0,1606114806);"

 

結果を確認してみてください
これで
TCC.dbへのデータの読み出し リセット 書き込み が出来るようになりましたね?
あとは、普段使いの値をスクリプトに用意しておけば
機械がかわってもスムーズに移行できるようになります。
派遣さん等で、よく設定がかわる人は用意しておくとトラブル回避になります。
次回番外編へWACOMのペンタブレットの設定になります。お楽しみに

 

|

Creative Cloud Cleaner tool地味にアップデート

https://helpx.adobe.com/creative-cloud/kb/cc-cleaner-tool-installation-problems.html
直リンク
https://swupmf.adobe.com/webfeed/CleanerTool/mac/AdobeCreativeCloudCleanerTool.dmg

Screen_capture_20201108_16_17_38

|

« 2020年10月 | トップページ | 2020年12月 »