The Contact Scopes feature enables the user to grant an app read access to a - subset of data in the OS ContactsProvider. Granting write access (insert, - update, delete) is not supported.
+On Android, contact access is controlled with an all-or-nothing Contacts permission, which grants + both read and write access to all contacts stored on the device.
-Read access can be granted to the following scopes:
+A lot of apps (e.g. popular messaging apps) refuse to work unless the Contacts permission is granted.
+ +GrapheneOS provides the Contact Scopes feature as an alternative to granting the Contacts permission. + Enabling Contact Scopes makes the app assume that it has the Contacts permission, despite not actually + having it. By default, an app that has Contact Scopes enabled is not allowed any kind of contact access.
+ +Optionally, read access can be granted to the following scopes:
Type and name of account that contact is stored in is fully hidden from the - app. Name of contact account is usually the same as email address of that - account.
+The type and name of the account that the contact is stored in are fully hidden from the app. The name + of the contact account is usually the same as the email address of that account.
-Access to SIM phonebook data is fully stubbed out: an empty and immutable - content provider is exposed instead of the actual SIM phonebook. Implementations - of legacy (ICC) and modern SIM stub phonebook providers are added to - packages/services/Telephony.
- -The Contact Scopes feature is enabled per-app. When it's enabled, app's calls - to contacts provider and to SIM phonebook providers are redirected, respectively, - to ScopedContactsProvider and to stub SIM phonebook providers.
+When Contact Scopes is enabled, write access is fully blocked: the app is not allowed to edit any + contact data, add or remove contacts, etc.