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