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