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 <!-- Permissions required for setting default account --> 31 <uses-permission android:name="android.permission.SET_DEFAULT_ACCOUNT_FOR_CONTACTS" /> 32 33 34 <permission 35 android:name="android.permission.SEND_CALL_LOG_CHANGE" 36 android:label="Broadcast that a change happened to the call log." 37 android:protectionLevel="signature|system"/> 38 39 <permission 40 android:name="android.contacts.permission.MANAGE_SIM_ACCOUNTS" 41 android:label="Change known SIM accounts in ContactsProvider." 42 android:protectionLevel="signature"/> 43 44 <application android:process="android.process.acore" 45 android:label="@string/app_label" 46 android:allowBackup="false" 47 android:forceQueryable="true" 48 android:usesCleartextTraffic="false"> 49 50 <provider android:name="ContactsProvider2" 51 android:authorities="contacts;com.android.contacts" 52 android:label="@string/provider_label" 53 android:multiprocess="false" 54 android:exported="true" 55 android:grantUriPermissions="true" 56 android:readPermission="android.permission.READ_CONTACTS" 57 android:writePermission="android.permission.WRITE_CONTACTS" 58 android:visibleToInstantApps="true"> 59 <path-permission 60 android:pathPrefix="/search_suggest_query" 61 android:readPermission="android.permission.GLOBAL_SEARCH" /> 62 <path-permission 63 android:pathPrefix="/search_suggest_shortcut" 64 android:readPermission="android.permission.GLOBAL_SEARCH" /> 65 <path-permission 66 android:pathPattern="/contacts/.*/photo" 67 android:readPermission="android.permission.GLOBAL_SEARCH" /> 68 <grant-uri-permission android:pathPattern=".*" /> 69 </provider> 70 71 <provider android:name="CallLogProvider" 72 android:authorities="call_log" 73 android:syncable="false" android:multiprocess="false" 74 android:exported="true" 75 android:readPermission="android.permission.READ_CALL_LOG" 76 android:writePermission="android.permission.WRITE_CALL_LOG"> 77 </provider> 78 79 <!-- Separate provider for the locations stored in call provider. 80 Uses a different db in order to prevent SQL injection attacks from bypassing 81 location permission requirements --> 82 <provider android:name="CallComposerLocationProvider" 83 android:authorities="call_composer_locations" 84 android:syncable="false" android:multiprocess="false" 85 android:exported="true" 86 android:readPermission="android.permission.READ_CALL_LOG" 87 android:writePermission="android.permission.WRITE_CALL_LOG"> 88 </provider> 89 90 <provider android:name="ShadowCallLogProvider" 91 android:authorities="call_log_shadow" 92 android:syncable="false" android:multiprocess="false" 93 android:exported="true" 94 android:directBootAware="true" 95 android:readPermission="android.permission.INTERACT_ACROSS_USERS" 96 android:writePermission="android.permission.INTERACT_ACROSS_USERS"> 97 </provider> 98 99 <!-- Note: While this provider does not declare a permission explicitly, it enforces that 100 the caller has either ADD_VOICEMAIL or carrier privileges at a minimum to access it. 101 Additional permission checks may be done depending on the operation. --> 102 <provider android:name="VoicemailContentProvider" 103 android:authorities="com.android.voicemail" 104 android:syncable="false" android:multiprocess="false" 105 android:exported="true"> 106 </provider> 107 108 <!-- Handles database upgrades after OTAs, then disables itself --> 109 <receiver android:name="ContactsUpgradeReceiver" 110 android:exported="true"> 111 <!-- This broadcast is sent after the core system has finished 112 booting, before the home app is launched or BOOT_COMPLETED 113 is sent. --> 114 <intent-filter> 115 <action android:name="android.intent.action.PRE_BOOT_COMPLETED"/> 116 </intent-filter> 117 </receiver> 118 119 <receiver android:name="LocaleChangeReceiver" 120 android:exported="true"> 121 <intent-filter> 122 <action android:name="android.intent.action.LOCALE_CHANGED"/> 123 </intent-filter> 124 </receiver> 125 126 <activity android:name=".debug.ContactsDumpActivity" 127 android:label="@string/debug_dump_title" 128 android:theme="@android:style/Theme.Holo.Dialog" 129 android:exported="true" 130 > 131 <intent-filter> 132 <action android:name="com.android.providers.contacts.DUMP_DATABASE"/> 133 <category android:name="android.intent.category.DEFAULT"/> 134 </intent-filter> 135 </activity> 136 137 <activity android:name=".MoveContactsToDefaultAccountActivity" 138 android:excludeFromRecents="true" 139 android:exported="true" 140 android:filterTouchesWhenObscured="true" 141 android:theme="@android:style/Theme.Material.Dialog" 142 android:windowActionBar="false"> 143 <intent-filter> 144 <action android:name="android.provider.action.MOVE_CONTACTS_TO_DEFAULT_ACCOUNT"/> 145 <category android:name="android.intent.category.DEFAULT"/> 146 </intent-filter> 147 </activity> 148 149 <provider android:name=".debug.DumpFileProvider" 150 android:authorities="com.android.contacts.dumpfile" 151 android:exported="true"/> 152 153 </application> 154</manifest> 155