1<?xml version="1.0" encoding="utf-8"?>
2<!-- Copyright (C) 2007 The Android Open Source Project
3
4     Licensed under the Apache License, Version 2.0 (the "License");
5     you may not use this file except in compliance with the License.
6     You may obtain a copy of the License at
7
8          http://www.apache.org/licenses/LICENSE-2.0
9
10     Unless required by applicable law or agreed to in writing, software
11     distributed under the License is distributed on an "AS IS" BASIS,
12     WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13     See the License for the specific language governing permissions and
14     limitations under the License.
15-->
16
17<manifest xmlns:android="http://schemas.android.com/apk/res/android"
18        package="com.android.providers.telephony"
19        coreApp="true"
20        android:sharedUserId="android.uid.phone">
21
22    <permission android:name="android.permission.ACCESS_TELEPHONY_SIMINFO_DB"
23                android:label="Read and write SIMINFO table in TelephonyProvider"
24                android:protectionLevel="signature" />
25
26    <uses-permission android:name="android.permission.RECEIVE_SMS" />
27    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
28    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG" />
29    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS" />
30    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
31    <uses-permission android:name="android.permission.USE_RESERVED_DISK" />
32
33    <!-- Used to access PlatformCompat for security fix enforcement -->
34    <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
35    <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" />
36
37    <protected-broadcast android:name="android.provider.action.EXTERNAL_PROVIDER_CHANGE" />
38    <protected-broadcast android:name="android.intent.action.CONTENT_CHANGED" />
39
40    <!-- This permission is only used to send the ACTION_EXTERNAL_PROVIDER_CHANGE intent. -->
41    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
42    <!-- Allows accessing the messages on ICC -->
43    <uses-permission android:name="android.permission.ACCESS_MESSAGES_ON_ICC" />
44    <!-- Needed to query user associated with a subscription. -->
45    <uses-permission android:name="android.permission.MANAGE_SUBSCRIPTION_USER_ASSOCIATION"/>
46
47    <application android:process="com.android.phone"
48                 android:allowClearUserData="false"
49                 android:fullBackupOnly="true"
50                 android:backupInForeground="true"
51                 android:backupAgent="TelephonyBackupAgent"
52                 android:restoreAnyVersion="true"
53                 android:label="@string/app_label"
54                 android:icon="@mipmap/ic_launcher_phone"
55                 android:usesCleartextTraffic="true"
56                 android:forceQueryable="true"
57                 android:defaultToDeviceProtectedStorage="true"
58                 android:directBootAware="true">
59
60        <provider android:name="TelephonyProvider"
61                  android:authorities="telephony"
62                  android:exported="true"
63                  android:singleUser="true"
64                  android:multiprocess="false" />
65
66        <!-- This is a singleton provider that is used by all users.
67             A new instance is not created for each user. And the db is shared
68             as well. -->
69        <provider android:name="SmsProvider"
70                  android:authorities="sms"
71                  android:multiprocess="false"
72                  android:exported="true"
73                  android:singleUser="true"
74                  android:readPermission="android.permission.READ_SMS" />
75
76        <provider android:name="SmsChangesProvider"
77                  android:authorities="sms-changes"
78                  android:multiprocess="false"
79                  android:exported="true"
80                  android:singleUser="true"
81                  android:readPermission="android.permission.READ_SMS" />
82
83        <!-- This is a singleton provider that is used by all users.
84             A new instance is not created for each user. And the db is shared
85             as well.
86
87             Note: We do not require a write permission as it is guarded by an app op.
88              -->
89        <provider android:name="MmsProvider"
90                  android:authorities="mms"
91                  android:multiprocess="false"
92                  android:exported="true"
93                  android:singleUser="true"
94                  android:readPermission="android.permission.READ_SMS">
95            <grant-uri-permission android:pathPrefix="/part/" />
96            <grant-uri-permission android:pathPrefix="/drm/" />
97        </provider>
98
99        <!-- This is a singleton provider that is used by all users.
100             A new instance is not created for each user. And the db is shared
101             as well. -->
102        <provider android:name="MmsSmsProvider"
103                  android:authorities="mms-sms"
104                  android:multiprocess="false"
105                  android:exported="true"
106                  android:singleUser="true"
107                  android:readPermission="android.permission.READ_SMS" />
108
109        <provider android:name="CarrierProvider"
110                  android:authorities="carrier_information"
111                  android:exported="true"
112                  android:singleUser="true"
113                  android:multiprocess="false"
114                  android:writePermission="android.permission.MODIFY_PHONE_STATE" />
115
116        <provider android:name="HbpcdLookupProvider"
117                  android:authorities="hbpcd_lookup"
118                  android:exported="true"
119                  android:singleUser="true"
120                  android:multiprocess="false"
121                  android:writePermission="android.permission.MODIFY_PHONE_STATE" />
122
123        <provider android:name="CarrierIdProvider"
124                  android:authorities="carrier_id"
125                  android:exported="true"
126                  android:singleUser="true"
127                  android:multiprocess="false" />
128
129        <provider android:name="SatelliteProvider"
130                  android:authorities="satellite"
131                  android:exported="false"
132                  android:singleUser="true"
133                  android:multiprocess="false"
134                  android:writePermission="android.permission.MODIFY_PHONE_STATE" />
135
136        <service
137            android:name=".TelephonyBackupAgent$DeferredSmsMmsRestoreService"
138            android:exported="false" />
139    </application>
140</manifest>
141