1<?xml version="1.0" encoding="utf-8"?>
2
3<manifest xmlns:android="http://schemas.android.com/apk/res/android"
4  package="com.android.bluetooth"
5  android:sharedUserId="android.uid.bluetooth">
6
7    <!-- Allows access to the Bluetooth Share Manager -->
8    <permission android:name="android.permission.ACCESS_BLUETOOTH_SHARE"
9         android:label="@string/permlab_bluetoothShareManager"
10         android:description="@string/permdesc_bluetoothShareManager"
11         android:protectionLevel="signature|privileged"/>
12
13    <!--  Allows temporarily acceptlisting Bluetooth addresses for sharing -->
14    <permission android:name="com.android.permission.ALLOWLIST_BLUETOOTH_DEVICE"
15         android:label="@string/permlab_bluetoothAcceptlist"
16         android:description="@string/permdesc_bluetoothAcceptlist"
17         android:protectionLevel="signature|privileged"/>
18
19    <uses-permission android:name="android.permission.ACCESS_BLUETOOTH_SHARE"/>
20    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
21    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
22    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
23    <uses-permission android:name="android.permission.BLUETOOTH"/>
24    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
25    <uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
26    <uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
27    <uses-permission android:name="android.permission.BLUETOOTH_MAP"/>
28    <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"/>
29    <uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
30    <uses-permission android:name="android.permission.BLUETOOTH_STACK"/>
31    <uses-permission android:name="android.permission.CALL_PRIVILEGED"/>
32    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
33    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL"/>
34    <uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE" />
35    <uses-permission android:name="android.permission.DEVICE_POWER"/>
36    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
37    <uses-permission android:name="android.permission.HIDE_OVERLAY_WINDOWS"/>
38    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
39    <uses-permission android:name="android.permission.INTERNET"/>
40    <uses-permission android:name="android.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH"/>
41    <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE" />
42    <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES"/>
43    <uses-permission android:name="android.permission.MANAGE_COMPANION_DEVICES"/>
44    <uses-permission android:name="android.permission.MANAGE_USERS"/>
45    <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/>
46    <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING"/>
47    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
48    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
49    <uses-permission android:name="android.permission.NET_ADMIN"/>
50    <uses-permission android:name="android.permission.NET_TUNNELING"/>
51    <uses-permission android:name="android.permission.NETWORK_FACTORY"/>
52    <uses-permission android:name="android.permission.NFC_HANDOVER_STATUS"/>
53    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
54    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
55    <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG" />
56    <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
57    <uses-permission android:name="android.permission.QUERY_AUDIO_STATE"/>
58    <uses-permission android:name="android.permission.READ_CALL_LOG"/>
59    <uses-permission android:name="android.permission.READ_CONTACTS"/>
60    <uses-permission android:name="android.permission.READ_DEVICE_CONFIG"/>
61    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
62    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
63    <uses-permission android:name="android.permission.READ_SMS"/>
64    <uses-permission android:name="android.permission.REAL_GET_TASKS"/>
65    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
66    <uses-permission android:name="android.permission.RECEIVE_SMS"/>
67    <uses-permission android:name="android.permission.SEND_SMS"/>
68    <uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/>
69    <uses-permission android:name="android.permission.TETHER_PRIVILEGED"/>
70    <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS"/>
71    <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"/>
72    <uses-permission android:name="android.permission.VIBRATE"/>
73    <uses-permission android:name="android.permission.WAKE_LOCK"/>
74    <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"/>
75    <uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
76    <uses-permission android:name="android.permission.WRITE_CONTACTS"/>
77    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
78    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
79    <uses-permission android:name="android.permission.WRITE_SECURITY_LOG"/>
80    <uses-permission android:name="android.permission.WRITE_SETTINGS"/>
81    <uses-permission android:name="android.permission.WRITE_SMS"/>
82
83    <uses-sdk android:minSdkVersion="14"/>
84
85    <!-- For PBAP Owner Vcard Info -->
86    <uses-permission android:name="android.permission.READ_PROFILE"/>
87    <application android:name="com.android.bluetooth.btservice.AdapterApp"
88         android:icon="@mipmap/bt_share"
89         android:persistent="false"
90         android:label="@string/app_name"
91         android:supportsRtl="true"
92         android:usesCleartextTraffic="false"
93         android:directBootAware="true"
94         android:defaultToDeviceProtectedStorage="true"
95         android:memtagMode="async">
96
97        <service android:process="@string/process"
98             android:name="com.android.bluetooth.btservice.AdapterService"
99             android:exported="true"
100             android:permission="android.permission.ACCESS_BLUETOOTH_SHARE">
101            <intent-filter>
102                <action android:name="android.bluetooth.IBluetooth"/>
103            </intent-filter>
104        </service>
105
106        <service android:process="@string/process"
107             android:name="com.android.bluetooth.notification.NotificationHelperService"
108             android:label="Notification Helper"
109             android:exported="true"
110             android:permission="android.permission.BLUETOOTH_PRIVILEGED">
111            <intent-filter>
112                <action android:name="android.bluetooth.notification.action.SEND_TOGGLE_NOTIFICATION"/>
113            </intent-filter>
114        </service>
115
116        <service android:process="@string/process"
117             android:name="com.android.bluetooth.avrcpcontroller.BluetoothMediaBrowserService"
118             android:enabled="true"
119             android:exported="true"
120             android:label="@string/a2dp_sink_mbs_label">
121            <intent-filter>
122                <action android:name="android.media.browse.MediaBrowserService"/>
123            </intent-filter>
124            <meta-data android:name="androidx.car.app.launchable" android:value="true" />
125        </service>
126        <provider android:process="@string/process"
127             android:name="com.android.bluetooth.avrcpcontroller.AvrcpCoverArtProvider"
128             android:authorities="com.android.bluetooth.avrcpcontroller.AvrcpCoverArtProvider"
129             android:enabled="false"
130             android:grantUriPermissions="true"
131             android:exported="true">
132        </provider>
133        <activity android:name="com.android.bluetooth.BluetoothPrefs"
134             android:exported="true"
135             android:enabled="false">
136            <intent-filter>
137                <action android:name="android.intent.action.APPLICATION_PREFERENCES"/>
138            </intent-filter>
139            <meta-data android:name="distractionOptimized" android:value="true"/>
140        </activity>
141
142        <service
143            android:name="com.android.bluetooth.telephony.BluetoothInCallService"
144            android:permission="android.permission.BIND_INCALL_SERVICE"
145            android:process="@string/process"
146            android:enabled="false"
147            android:exported="true">
148            <meta-data android:name="android.telecom.INCLUDE_SELF_MANAGED_CALLS"
149                       android:value="true" />
150            <intent-filter>
151              <action android:name="android.telecom.InCallService"/>
152            </intent-filter>
153         </service>
154        <service android:process="@string/process"
155             android:name="com.android.bluetooth.hfpclient.HfpClientConnectionService"
156             android:permission="android.permission.BIND_CONNECTION_SERVICE"
157             android:enabled="true"
158             android:exported="true">
159            <intent-filter>
160                <action android:name="android.telecom.ConnectionService"/>
161            </intent-filter>
162        </service>
163
164        <activity android:name="com.android.bluetooth.map.BluetoothMapSettings"
165              android:process="@string/process"
166              android:label="@string/bluetooth_map_settings_title"
167              android:excludeFromRecents="true"
168              android:configChanges="orientation|keyboardHidden"
169              android:enabled="false">
170        </activity>
171        <provider android:name="com.android.bluetooth.map.MmsFileProvider"
172             android:authorities="com.android.bluetooth.map.MmsFileProvider"
173             android:enabled="false"
174             android:grantUriPermissions="true"
175             android:exported="false">
176        </provider>
177
178        <provider android:name="com.android.bluetooth.opp.BluetoothOppProvider"
179             android:authorities="com.android.bluetooth.opp"
180             android:enabled="false"
181             android:exported="true"
182             android:process="@string/process">
183            <path-permission android:pathPrefix="/btopp"
184                 android:permission="android.permission.ACCESS_BLUETOOTH_SHARE"/>
185        </provider>
186        <receiver android:process="@string/process"
187             android:name="com.android.bluetooth.opp.BluetoothOppReceiver"
188             android:exported="true"
189             android:enabled="false">
190        </receiver>
191        <receiver android:process="@string/process"
192              android:name="com.android.bluetooth.opp.BluetoothOppHandoverReceiver"
193              android:permission="com.android.permission.ALLOWLIST_BLUETOOTH_DEVICE"
194              android:exported="true"
195              android:enabled="false">
196            <intent-filter>
197                <action android:name="android.btopp.intent.action.ACCEPTLIST_DEVICE"/>
198                <action android:name="android.btopp.intent.action.STOP_HANDOVER_TRANSFER"/>
199            </intent-filter>
200            <intent-filter>
201                <action android:name="android.nfc.handover.intent.action.HANDOVER_SEND"/>
202                <category android:name="android.intent.category.DEFAULT"/>
203                <data android:mimeType="*/*"/>
204            </intent-filter>
205            <intent-filter>
206                <action android:name="android.nfc.handover.intent.action.HANDOVER_SEND_MULTIPLE"/>
207                <category android:name="android.intent.category.DEFAULT"/>
208                <data android:mimeType="*/*"/>
209            </intent-filter>
210        </receiver>
211        <activity android:name="com.android.bluetooth.opp.BluetoothOppLauncherActivity"
212             android:process="@string/process"
213             android:theme="@android:style/Theme.Material.Light.Dialog"
214             android:label="@string/bt_share_picker_label"
215             android:enabled="false"
216             android:exported="true">
217            <intent-filter>
218                <action android:name="android.intent.action.SEND"/>
219                <category android:name="android.intent.category.DEFAULT"/>
220                <data android:mimeType="image/*"/>
221                <data android:mimeType="video/*"/>
222                <data android:mimeType="audio/*"/>
223                <data android:mimeType="text/x-vcard"/>
224                <data android:mimeType="text/x-vcalendar"/>
225                <data android:mimeType="text/calendar"/>
226                <data android:mimeType="text/plain"/>
227                <data android:mimeType="text/html"/>
228                <data android:mimeType="text/xml"/>
229                <data android:mimeType="application/zip"/>
230                <data android:mimeType="application/vnd.ms-excel"/>
231                <data android:mimeType="application/msword"/>
232                <data android:mimeType="application/vnd.ms-powerpoint"/>
233                <data android:mimeType="application/pdf"/>
234                <data android:mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/>
235                <data android:mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document"/>
236                <data android:mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation"/>
237                <data android:mimeType="application/x-hwp"/>
238            </intent-filter>
239            <intent-filter>
240                <action android:name="android.intent.action.SEND_MULTIPLE"/>
241                <category android:name="android.intent.category.DEFAULT"/>
242                <data android:mimeType="image/*"/>
243                <data android:mimeType="video/*"/>
244                <data android:mimeType="x-mixmedia/*"/>
245                <data android:mimeType="text/x-vcard"/>
246            </intent-filter>
247            <intent-filter>
248                <action android:name="android.btopp.intent.action.OPEN"/>
249                <category android:name="android.intent.category.DEFAULT"/>
250                <data android:mimeType="vnd.android.cursor.item/vnd.android.btopp"/>
251            </intent-filter>
252        </activity>
253        <activity android:name="com.android.bluetooth.opp.BluetoothOppBtEnableActivity"
254             android:process="@string/process"
255             android:excludeFromRecents="true"
256             android:theme="@style/dialog"
257             android:enabled="false">
258        </activity>
259        <activity android:name="com.android.bluetooth.opp.BluetoothOppBtErrorActivity"
260             android:process="@string/process"
261             android:excludeFromRecents="true"
262             android:theme="@style/dialog"
263             android:enabled="false">
264        </activity>
265        <activity android:name="com.android.bluetooth.opp.BluetoothOppBtEnablingActivity"
266             android:process="@string/process"
267             android:excludeFromRecents="true"
268             android:theme="@style/dialog"
269             android:enabled="false">
270        </activity>
271        <activity android:name="com.android.bluetooth.opp.BluetoothOppIncomingFileConfirmActivity"
272             android:process="@string/process"
273             android:excludeFromRecents="true"
274             android:theme="@style/dialog"
275             android:enabled="false">
276        </activity>
277        <activity android:name="com.android.bluetooth.opp.BluetoothOppTransferActivity"
278             android:process="@string/process"
279             android:excludeFromRecents="true"
280             android:theme="@style/dialog"
281             android:enabled="false">
282        </activity>
283        <activity android:name="com.android.bluetooth.opp.BluetoothOppTransferHistory"
284             android:process="@string/process"
285             android:label=""
286             android:excludeFromRecents="true"
287             android:configChanges="orientation|keyboardHidden"
288             android:enabled="false"
289             android:theme="@android:style/Theme.DeviceDefault.Settings"
290             android:exported="true">
291            <intent-filter>
292                <action android:name="com.android.bluetooth.action.TransferHistory"/>
293                <category android:name="android.intent.category.DEFAULT"/>
294            </intent-filter>
295        </activity>
296
297        <activity android:name="com.android.bluetooth.pbap.BluetoothPbapActivity"
298             android:process="@string/process"
299             android:excludeFromRecents="true"
300             android:theme="@style/dialog"
301             android:enabled="false">
302        </activity>
303
304        <service android:process="@string/process"
305             android:name="com.android.bluetooth.pbapclient.AuthenticationService"
306             android:enabled="false"
307             android:exported="true">
308            <intent-filter>
309                <action android:name="android.accounts.AccountAuthenticator"/>
310            </intent-filter>
311            <meta-data android:name="android.accounts.AccountAuthenticator"
312                 android:resource="@xml/authenticator"/>
313        </service>
314    </application>
315</manifest>
316