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