| <manifest xmlns:android="http://schemas.android.com/apk/res/android" |
| package="com.android.providers.contacts" |
| android:sharedUserId="android.uid.shared" |
| android:sharedUserLabel="@string/sharedUserLabel"> |
| |
| <uses-permission android:name="android.permission.BIND_DIRECTORY_SEARCH" /> |
| <!-- For sending voicemail intents --> |
| <uses-permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST" /> |
| <uses-permission android:name="android.permission.GET_ACCOUNTS" /> |
| <uses-permission android:name="android.permission.GET_ACCOUNTS_PRIVILEGED" /> |
| <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> |
| <uses-permission android:name="android.permission.MANAGE_USERS" /> |
| <uses-permission android:name="android.permission.PROCESS_PHONE_ACCOUNT_REGISTRATION" /> |
| <uses-permission android:name="android.permission.READ_CONTACTS" /> |
| <uses-permission android:name="android.permission.READ_PHONE_STATE" /> |
| <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" /> |
| <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> |
| <uses-permission android:name="android.permission.SEND_CALL_LOG_CHANGE" /> |
| <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" /> |
| <uses-permission android:name="android.permission.WRITE_CONTACTS" /> |
| <uses-permission android:name="android.permission.USE_RESERVED_DISK" /> |
| <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" /> |
| <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS" /> |
| <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" /> |
| <!-- Permissions required for reading and logging compat changes --> |
| <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" /> |
| <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" /> |
| |
| <permission |
| android:name="android.permission.SEND_CALL_LOG_CHANGE" |
| android:label="Broadcast that a change happened to the call log." |
| android:protectionLevel="signature|system"/> |
| |
| <permission |
| android:name="android.contacts.permission.MANAGE_SIM_ACCOUNTS" |
| android:label="Change known SIM accounts in ContactsProvider." |
| android:protectionLevel="signature"/> |
| |
| <application android:process="android.process.acore" |
| android:label="@string/app_label" |
| android:allowBackup="false" |
| android:forceQueryable="true" |
| android:usesCleartextTraffic="false"> |
| |
| <provider android:name="ContactsProvider2" |
| android:authorities="contacts;com.android.contacts" |
| android:label="@string/provider_label" |
| android:multiprocess="false" |
| android:exported="true" |
| android:grantUriPermissions="true" |
| android:readPermission="android.permission.READ_CONTACTS" |
| android:writePermission="android.permission.WRITE_CONTACTS" |
| android:visibleToInstantApps="true"> |
| <path-permission |
| android:pathPrefix="/search_suggest_query" |
| android:readPermission="android.permission.GLOBAL_SEARCH" /> |
| <path-permission |
| android:pathPrefix="/search_suggest_shortcut" |
| android:readPermission="android.permission.GLOBAL_SEARCH" /> |
| <path-permission |
| android:pathPattern="/contacts/.*/photo" |
| android:readPermission="android.permission.GLOBAL_SEARCH" /> |
| <grant-uri-permission android:pathPattern=".*" /> |
| </provider> |
| |
| <provider android:name="CallLogProvider" |
| android:authorities="call_log" |
| android:syncable="false" android:multiprocess="false" |
| android:exported="true" |
| android:readPermission="android.permission.READ_CALL_LOG" |
| android:writePermission="android.permission.WRITE_CALL_LOG"> |
| </provider> |
| |
| <!-- Separate provider for the locations stored in call provider. |
| Uses a different db in order to prevent SQL injection attacks from bypassing |
| location permission requirements --> |
| <provider android:name="CallComposerLocationProvider" |
| android:authorities="call_composer_locations" |
| android:syncable="false" android:multiprocess="false" |
| android:exported="true" |
| android:readPermission="android.permission.READ_CALL_LOG" |
| android:writePermission="android.permission.WRITE_CALL_LOG"> |
| </provider> |
| |
| <provider android:name="ShadowCallLogProvider" |
| android:authorities="call_log_shadow" |
| android:syncable="false" android:multiprocess="false" |
| android:exported="true" |
| android:directBootAware="true" |
| android:readPermission="android.permission.INTERACT_ACROSS_USERS" |
| android:writePermission="android.permission.INTERACT_ACROSS_USERS"> |
| </provider> |
| |
| <!-- Note: While this provider does not declare a permission explicitly, it enforces that |
| the caller has either ADD_VOICEMAIL or carrier privileges at a minimum to access it. |
| Additional permission checks may be done depending on the operation. --> |
| <provider android:name="VoicemailContentProvider" |
| android:authorities="com.android.voicemail" |
| android:syncable="false" android:multiprocess="false" |
| android:exported="true"> |
| </provider> |
| |
| <!-- Handles database upgrades after OTAs, then disables itself --> |
| <receiver android:name="ContactsUpgradeReceiver" |
| android:exported="true"> |
| <!-- This broadcast is sent after the core system has finished |
| booting, before the home app is launched or BOOT_COMPLETED |
| is sent. --> |
| <intent-filter> |
| <action android:name="android.intent.action.PRE_BOOT_COMPLETED"/> |
| </intent-filter> |
| </receiver> |
| |
| <receiver android:name="LocaleChangeReceiver" |
| android:exported="true"> |
| <intent-filter> |
| <action android:name="android.intent.action.LOCALE_CHANGED"/> |
| </intent-filter> |
| </receiver> |
| |
| <activity android:name=".debug.ContactsDumpActivity" |
| android:label="@string/debug_dump_title" |
| android:theme="@android:style/Theme.Holo.Dialog" |
| android:exported="true" |
| > |
| <intent-filter> |
| <action android:name="com.android.providers.contacts.DUMP_DATABASE"/> |
| <category android:name="android.intent.category.DEFAULT"/> |
| </intent-filter> |
| </activity> |
| |
| <provider android:name=".debug.DumpFileProvider" |
| android:authorities="com.android.contacts.dumpfile" |
| android:exported="true"> |
| </provider> |
| |
| </application> |
| </manifest> |