The following guide will show you how you can manually modify the TCC database to allow BlueBubbles to access your macOS Contacts.
This will sometimes occur after disabling SIP (System Integrity Protection) on your Mac during the setup for the Private API. We are unsure exactly why this happens, but we know how to fix it.
MacOS maintains a database of the allowed permissions. All we need to do is modify this database and manually add the BlueBubbles Server to the "allow" list for the Contacts permission.
Technical Level of Effort: Medium
Open up the Terminal app on your Mac
Use the CMD + Space
hotkey combo to open Spotlight Search and type Terminal
Run the following command to make a backup of the TCC.db
file in case of corruption
cp ~/Library/Application\ Support/com.apple.TCC/TCC.db ~/Library/Application\ Support/com.apple.TCC/TCC.db.bak
Open the TCC.db
database file using the following command:
sqlite3 ~/Library/Application\ Support/com.apple.TCC/TCC.db
Do not omit the ~
character from the file path
This will open the database for editing
Paste the following commands, hitting ENTER
after each one. If you receive an error when running any of the following commands, do not worry, you can ignore them.
INSERT INTO access VALUES('kTCCServiceAddressBook','com.BlueBubbles.BlueBubbles-Server',0,2,4,1,X'fade0c00000000b000000001000000060000000200000022636f6d2e426c7565427562626c65732e426c7565427562626c65732d5365727665720000000000060000000f000000060000000e000000010000000a2a864886f76364060206000000000000000000060000000e000000000000000a2a864886f7636406010d0000000000000000000b000000000000000a7375626a6563742e4f550000000000010000000a575056323735483857370000',NULL,0,'UNUSED',NULL,0,1675472593);
INSERT INTO access VALUES('kTCCServiceContactsFull','com.BlueBubbles.BlueBubbles-Server',0,2,4,1,X'fade0c00000000b000000001000000060000000200000022636f6d2e426c7565427562626c65732e426c7565427562626c65732d5365727665720000000000060000000f000000060000000e000000010000000a2a864886f76364060206000000000000000000060000000e000000000000000a2a864886f7636406010d0000000000000000000b000000000000000a7375626a6563742e4f550000000000010000000a575056323735483857370000',NULL,0,'UNUSED',NULL,0,1675472593);
INSERT INTO access VALUES('kTCCServiceContactsLimited','com.BlueBubbles.BlueBubbles-Server',0,2,4,1,X'fade0c00000000b000000001000000060000000200000022636f6d2e426c7565427562626c65732e426c7565427562626c65732d5365727665720000000000060000000f000000060000000e000000010000000a2a864886f76364060206000000000000000000060000000e000000000000000a2a864886f7636406010d0000000000000000000b000000000000000a7375626a6563742e4f550000000000010000000a575056323735483857370000',NULL,0,'UNUSED',NULL,0,1675472593);
Once complete, type .exit
and hit ENTER
to leave the sqlite3
CLI
Open the BlueBubbles Server (if not already open), and navigate to the Contacts tab
Use the Permissions -> Refresh Permission Status
button in BlueBubbles see if the Contacts permission is authorized
If it is still not authorized, use the Permissions -> Request Permission
button to try and force request the permission.
If it is still not authorized, you may need to manually enable the permission within the Security & Privacy
settings within System Preferences
If at any point, you mess up or feel like something went wrong, simply run the following command to replace the TCC.db
file with the one you backed up at the start:
mv ~/Library/Application\ Support/com.apple.TCC/TCC.db.bak ~/Library/Application\ Support/com.apple.TCC/TCC.db
Now, you can restart the process from step 2
BlueBubbles should now be able to access your macOS Contacts!