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