aboutsummaryrefslogtreecommitdiff
path: root/AndroidManifest.xml
blob: dbc835d39646deb2bbd4e39b47dec67d4d66ca50 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
<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.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>