1<manifest xmlns:android="http://schemas.android.com/apk/res/android" 2 package="com.android.providers.contacts" 3 android:sharedUserId="android.uid.shared" 4 android:sharedUserLabel="@string/sharedUserLabel"> 5 6 <uses-permission android:name="android.permission.BIND_DIRECTORY_SEARCH" /> 7 <!-- For sending voicemail intents --> 8 <uses-permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST" /> 9 <uses-permission android:name="android.permission.GET_ACCOUNTS" /> 10 <uses-permission android:name="android.permission.GET_ACCOUNTS_PRIVILEGED" /> 11 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" /> 12 <uses-permission android:name="android.permission.READ_CALL_LOG" /> 13 <uses-permission android:name="android.permission.WRITE_CALL_LOG" /> 14 <uses-permission android:name="android.permission.MANAGE_USERS" /> 15 <uses-permission android:name="android.permission.PROCESS_PHONE_ACCOUNT_REGISTRATION" /> 16 <uses-permission android:name="android.permission.READ_CONTACTS" /> 17 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 18 <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" /> 19 <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" /> 20 <uses-permission android:name="android.permission.SEND_CALL_LOG_CHANGE" /> 21 <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" /> 22 <uses-permission android:name="android.permission.WRITE_CONTACTS" /> 23 <uses-permission android:name="android.permission.USE_RESERVED_DISK" /> 24 <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" /> 25 <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS" /> 26 <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" /> 27 <!-- Permissions required for reading and logging compat changes --> 28 <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" /> 29 <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" /> 30 31 <permission 32 android:name="android.permission.SEND_CALL_LOG_CHANGE" 33 android:label="Broadcast that a change happened to the call log." 34 android:protectionLevel="signature|system"/> 35 36 <permission 37 android:name="android.contacts.permission.MANAGE_SIM_ACCOUNTS" 38 android:label="Change known SIM accounts in ContactsProvider." 39 android:protectionLevel="signature"/> 40 41 <application android:process="android.process.acore" 42 android:label="@string/app_label" 43 android:allowBackup="false" 44 android:forceQueryable="true" 45 android:usesCleartextTraffic="false"> 46 47 <provider android:name="ContactsProvider2" 48 android:authorities="contacts;com.android.contacts" 49 android:label="@string/provider_label" 50 android:multiprocess="false" 51 android:exported="true" 52 android:grantUriPermissions="true" 53 android:readPermission="android.permission.READ_CONTACTS" 54 android:writePermission="android.permission.WRITE_CONTACTS" 55 android:visibleToInstantApps="true"> 56 <path-permission 57 android:pathPrefix="/search_suggest_query" 58 android:readPermission="android.permission.GLOBAL_SEARCH" /> 59 <path-permission 60 android:pathPrefix="/search_suggest_shortcut" 61 android:readPermission="android.permission.GLOBAL_SEARCH" /> 62 <path-permission 63 android:pathPattern="/contacts/.*/photo" 64 android:readPermission="android.permission.GLOBAL_SEARCH" /> 65 <grant-uri-permission android:pathPattern=".*" /> 66 </provider> 67 68 <provider android:name="CallLogProvider" 69 android:authorities="call_log" 70 android:syncable="false" android:multiprocess="false" 71 android:exported="true" 72 android:readPermission="android.permission.READ_CALL_LOG" 73 android:writePermission="android.permission.WRITE_CALL_LOG"> 74 </provider> 75 76 <!-- Separate provider for the locations stored in call provider. 77 Uses a different db in order to prevent SQL injection attacks from bypassing 78 location permission requirements --> 79 <provider android:name="CallComposerLocationProvider" 80 android:authorities="call_composer_locations" 81 android:syncable="false" android:multiprocess="false" 82 android:exported="true" 83 android:readPermission="android.permission.READ_CALL_LOG" 84 android:writePermission="android.permission.WRITE_CALL_LOG"> 85 </provider> 86 87 <provider android:name="ShadowCallLogProvider" 88 android:authorities="call_log_shadow" 89 android:syncable="false" android:multiprocess="false" 90 android:exported="true" 91 android:directBootAware="true" 92 android:readPermission="android.permission.INTERACT_ACROSS_USERS" 93 android:writePermission="android.permission.INTERACT_ACROSS_USERS"> 94 </provider> 95 96 <!-- Note: While this provider does not declare a permission explicitly, it enforces that 97 the caller has either ADD_VOICEMAIL or carrier privileges at a minimum to access it. 98 Additional permission checks may be done depending on the operation. --> 99 <provider android:name="VoicemailContentProvider" 100 android:authorities="com.android.voicemail" 101 android:syncable="false" android:multiprocess="false" 102 android:exported="true"> 103 </provider> 104 105 <!-- Handles database upgrades after OTAs, then disables itself --> 106 <receiver android:name="ContactsUpgradeReceiver" 107 android:exported="true"> 108 <!-- This broadcast is sent after the core system has finished 109 booting, before the home app is launched or BOOT_COMPLETED 110 is sent. --> 111 <intent-filter> 112 <action android:name="android.intent.action.PRE_BOOT_COMPLETED"/> 113 </intent-filter> 114 </receiver> 115 116 <receiver android:name="LocaleChangeReceiver" 117 android:exported="true"> 118 <intent-filter> 119 <action android:name="android.intent.action.LOCALE_CHANGED"/> 120 </intent-filter> 121 </receiver> 122 123 <activity android:name=".debug.ContactsDumpActivity" 124 android:label="@string/debug_dump_title" 125 android:theme="@android:style/Theme.Holo.Dialog" 126 android:exported="true" 127 > 128 <intent-filter> 129 <action android:name="com.android.providers.contacts.DUMP_DATABASE"/> 130 <category android:name="android.intent.category.DEFAULT"/> 131 </intent-filter> 132 </activity> 133 134 <provider android:name=".debug.DumpFileProvider" 135 android:authorities="com.android.contacts.dumpfile" 136 android:exported="true"> 137 </provider> 138 139 </application> 140</manifest> 141