Take the 2-minute tour ×
Super User is a question and answer site for computer enthusiasts and power users. It's 100% free, no registration required.

I have a few applications that want access to my contacts. I don't really use contacts, and I don't want applications entitled to the information.

I've unchecked the appropriate box, but I'd like to remove the application from the list:

enter image description here

I've got a couple of applications under Location Services, too (including one Wifi stumbler application that's no longer installed).

What plist do I modify to remove the applications from the list?

share|improve this question

2 Answers 2

up vote 2 down vote accepted

The information is stored in ~/Library/Application Support/com.apple.TCC/TCC.db.

$ sqlite3 Library/Application\ Support/com.apple.TCC/TCC.db .dump
PRAGMA foreign_keys=OFF;
BEGIN TRANSACTION;
CREATE TABLE admin (key TEXT PRIMARY KEY NOT NULL, value INTEGER NOT NULL);
INSERT INTO "admin" VALUES('version',7);
CREATE TABLE access (service TEXT NOT NULL, client TEXT NOT NULL, client_type INTEGER NOT NULL, allowed INTEGER NOT NULL, prompt_count INTEGER NOT NULL, csreq BLOB, CONSTRAINT key PRIMARY KEY (service, client, client_type));
INSERT INTO "access" VALUES('kTCCServiceUbiquity','com.apple.mail',0,1,1,NULL);
INSERT INTO "access" VALUES('kTCCServiceUbiquity','com.apple.TextEdit',0,1,1,NULL);
INSERT INTO "access" VALUES('kTCCServiceUbiquity','com.apple.ScriptEditor2',0,1,1,NULL);
INSERT INTO "access" VALUES('kTCCServiceAddressBook','com.runningwithcrayons.Alfred-2',0,1,0,X'FADE0C00000000CC0000000100000006000000060000000F000000020000001F636F6D2E72756E6E696E6777697468637261796F6E732E416C667265642D3200000000070000000E000000000000000A2A864886F7636406010900000000000000000006000000060000000E000000010000000A2A864886F763640602060000000000000000000E000000000000000A2A864886F7636406010D0000000000000000000B000000000000000A7375626A6563742E4F550000000000010000000A585A5A584539534544340000');
INSERT INTO "access" VALUES('kTCCServiceUbiquity','com.apple.Automator',0,1,1,NULL);
INSERT INTO "access" VALUES('kTCCServiceUbiquity','com.apple.Preview',0,1,1,NULL);
INSERT INTO "access" VALUES('kTCCServiceUbiquity','com.apple.iWork.Numbers',0,1,1,NULL);
INSERT INTO "access" VALUES('kTCCServiceUbiquity','com.apple.inputmethod.Kotoeri',0,1,1,NULL);
INSERT INTO "access" VALUES('kTCCServiceAddressBook','com.smileonmymac.textexpander',0,1,0,X'FADE0C00000000CC0000000100000006000000060000000F000000020000001D636F6D2E736D696C656F6E6D796D61632E74657874657870616E646572000000000000070000000E000000000000000A2A864886F7636406010900000000000000000006000000060000000E000000010000000A2A864886F763640602060000000000000000000E000000000000000A2A864886F7636406010D0000000000000000000B000000000000000A7375626A6563742E4F550000000000010000000A37504B4A36473444584C0000');
INSERT INTO "access" VALUES('kTCCServiceUbiquity','com.apple.iWork.Pages',0,1,1,NULL);
INSERT INTO "access" VALUES('kTCCServiceUbiquity','com.apple.iMovieApp',0,1,1,NULL);
INSERT INTO "access" VALUES('kTCCServiceAddressBook','com.google.Chrome',0,1,0,X'FADE0C00000000700000000100000006000000070000000200000011636F6D2E676F6F676C652E4368726F6D650000000000000200000018636F6D2E676F6F676C652E4368726F6D652E63616E61727900000004000000000000001485CEE8254216185620DDC8851C7A9FC4DFE120EF');
CREATE TABLE access_times (service TEXT NOT NULL, client TEXT NOT NULL, client_type INTEGER NOT NULL, last_used_time INTEGER NOT NULL, CONSTRAINT key PRIMARY KEY (service, client, client_type));
CREATE TABLE access_overrides (service TEXT PRIMARY KEY NOT NULL);
$ sqlite3 Library/Application\ Support/com.apple.TCC/TCC.db 'select * from "access" where service=="kTCCServiceAddressBook"'
kTCCServiceAddressBook|com.google.Chrome|0|1|0|��

kTCCServiceAddressBook|com.runningwithcrayons.Alfred-2|0|1|0|��

kTCCServiceAddressBook|com.smileonmymac.textexpander|0|1|0|��

To clear the list shown in System Preferences, run sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db 'delete from "access" where service=="kTCCServiceAddressBook"'. The changes should be applied immediately.

share|improve this answer
2  
Nice, but an easier way to clear the list is to run tccutil reset AddressBook. –  mklement0 May 15 at 13:02

We have python scripts that will applications to be added and removed from the TCC databases during our regular maintenance cycle. Changes take effect immediately.

https://github.com/univ-of-utah-marriott-library-apple/tcc_database_manager

For example, you can simply use the following code once it is installed:

tcc_database_manager add contacts safari /Longer/Path/To/MyApp.app com.apple.TextEdit
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.