<manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="com.android.providers.contacts"
        android:sharedUserId="android.uid.shared"
        android:sharedUserLabel="@string/sharedUserLabel">

    <uses-permission android:name="android.permission.BIND_DIRECTORY_SEARCH" />
    <!-- For sending voicemail intents -->
    <uses-permission android:name="android.permission.CHANGE_DEVICE_IDLE_TEMP_WHITELIST" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS" />
    <uses-permission android:name="android.permission.GET_ACCOUNTS_PRIVILEGED" />
    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
    <uses-permission android:name="android.permission.READ_CALL_LOG" />
    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
    <uses-permission android:name="android.permission.MANAGE_USERS" />
    <uses-permission android:name="android.permission.PROCESS_PHONE_ACCOUNT_REGISTRATION" />
    <uses-permission android:name="android.permission.READ_CONTACTS" />
    <uses-permission android:name="android.permission.READ_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
    <uses-permission android:name="android.permission.READ_SYNC_SETTINGS" />
    <uses-permission android:name="android.permission.SEND_CALL_LOG_CHANGE" />
    <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
    <uses-permission android:name="android.permission.USE_RESERVED_DISK" />
    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
    <uses-permission android:name="android.permission.HIDE_NON_SYSTEM_OVERLAY_WINDOWS" />
    <uses-permission android:name="android.permission.READ_PHONE_NUMBERS" />
    <!-- Permissions required for reading and logging compat changes -->
    <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
    <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" />

    <permission
            android:name="android.permission.SEND_CALL_LOG_CHANGE"
            android:label="Broadcast that a change happened to the call log."
            android:protectionLevel="signature|system"/>

    <permission
        android:name="android.contacts.permission.MANAGE_SIM_ACCOUNTS"
        android:label="Change known SIM accounts in ContactsProvider."
        android:protectionLevel="signature"/>

    <application android:process="android.process.acore"
        android:label="@string/app_label"
        android:allowBackup="false"
        android:forceQueryable="true"
        android:usesCleartextTraffic="false">

        <provider android:name="ContactsProvider2"
            android:authorities="contacts;com.android.contacts"
            android:label="@string/provider_label"
            android:multiprocess="false"
            android:exported="true"
            android:grantUriPermissions="true"
            android:readPermission="android.permission.READ_CONTACTS"
            android:writePermission="android.permission.WRITE_CONTACTS"
            android:visibleToInstantApps="true">
            <path-permission
                    android:pathPrefix="/search_suggest_query"
                    android:readPermission="android.permission.GLOBAL_SEARCH" />
            <path-permission
                    android:pathPrefix="/search_suggest_shortcut"
                    android:readPermission="android.permission.GLOBAL_SEARCH" />
            <path-permission
                    android:pathPattern="/contacts/.*/photo"
                    android:readPermission="android.permission.GLOBAL_SEARCH" />
            <grant-uri-permission android:pathPattern=".*" />
        </provider>

        <provider android:name="CallLogProvider"
            android:authorities="call_log"
            android:syncable="false" android:multiprocess="false"
            android:exported="true"
            android:readPermission="android.permission.READ_CALL_LOG"
            android:writePermission="android.permission.WRITE_CALL_LOG">
        </provider>

        <!-- Separate provider for the locations stored in call provider.
             Uses a different db in order to prevent SQL injection attacks from bypassing
             location permission requirements -->
        <provider android:name="CallComposerLocationProvider"
            android:authorities="call_composer_locations"
            android:syncable="false" android:multiprocess="false"
            android:exported="true"
            android:readPermission="android.permission.READ_CALL_LOG"
            android:writePermission="android.permission.WRITE_CALL_LOG">
        </provider>

        <provider android:name="ShadowCallLogProvider"
                  android:authorities="call_log_shadow"
                  android:syncable="false" android:multiprocess="false"
                  android:exported="true"
                  android:directBootAware="true"
                  android:readPermission="android.permission.INTERACT_ACROSS_USERS"
                  android:writePermission="android.permission.INTERACT_ACROSS_USERS">
        </provider>

        <!-- Note: While this provider does not declare a permission explicitly, it enforces that
             the caller has either ADD_VOICEMAIL or carrier privileges at a minimum to access it.
             Additional permission checks may be done depending on the operation. -->
        <provider android:name="VoicemailContentProvider"
            android:authorities="com.android.voicemail"
            android:syncable="false" android:multiprocess="false"
            android:exported="true">
        </provider>

        <!-- Handles database upgrades after OTAs, then disables itself -->
        <receiver android:name="ContactsUpgradeReceiver"
            android:exported="true">
            <!-- This broadcast is sent after the core system has finished
                 booting, before the home app is launched or BOOT_COMPLETED
                 is sent. -->
            <intent-filter>
                <action android:name="android.intent.action.PRE_BOOT_COMPLETED"/>
            </intent-filter>
        </receiver>

        <receiver android:name="LocaleChangeReceiver"
            android:exported="true">
            <intent-filter>
                <action android:name="android.intent.action.LOCALE_CHANGED"/>
            </intent-filter>
        </receiver>

        <activity android:name=".debug.ContactsDumpActivity"
                android:label="@string/debug_dump_title"
                android:theme="@android:style/Theme.Holo.Dialog"
                android:exported="true"
                >
            <intent-filter>
                <action android:name="com.android.providers.contacts.DUMP_DATABASE"/>
                <category android:name="android.intent.category.DEFAULT"/>
            </intent-filter>
        </activity>

        <provider android:name=".debug.DumpFileProvider"
            android:authorities="com.android.contacts.dumpfile"
            android:exported="true">
        </provider>

    </application>
</manifest>
