• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1<?xml version="1.0" encoding="utf-8"?>
2<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3  package="com.android.bluetooth"
4  android:sharedUserId="android.uid.bluetooth">
5
6    <original-package android:name="com.android.bluetooth" />
7
8    <!-- Allows access to the Bluetooth Share Manager -->
9    <permission android:name="android.permission.ACCESS_BLUETOOTH_SHARE"
10        android:label="@string/permlab_bluetoothShareManager"
11        android:description="@string/permdesc_bluetoothShareManager"
12        android:protectionLevel="signature" />
13
14    <!--  Allows temporarily whitelisting Bluetooth addresses for sharing -->
15    <permission android:name="com.android.permission.WHITELIST_BLUETOOTH_DEVICE"
16        android:label="@string/permlab_bluetoothWhitelist"
17        android:description="@string/permdesc_bluetoothWhitelist"
18        android:protectionLevel="signature" />
19
20    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
21    <uses-permission android:name="android.permission.ACCESS_BLUETOOTH_SHARE" />
22    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
23    <uses-permission android:name="android.permission.INTERNET" />
24    <uses-permission android:name="android.permission.BLUETOOTH" />
25    <uses-permission android:name="android.permission.BLUETOOTH_ADMIN" />
26    <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED" />
27    <uses-permission android:name="android.permission.BLUETOOTH_MAP" />
28    <uses-permission android:name="android.permission.DUMP" />
29    <uses-permission android:name="android.permission.WAKE_LOCK" />
30    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
31    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
32    <uses-permission android:name="android.permission.READ_CONTACTS" />
33    <uses-permission android:name="android.permission.WRITE_CONTACTS" />
34    <uses-permission android:name="android.permission.READ_CALL_LOG" />
35    <uses-permission android:name="android.permission.WRITE_CALL_LOG" />
36    <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE" />
37    <uses-permission android:name="android.permission.WRITE_SETTINGS" />
38    <uses-permission android:name="android.permission.NFC_HANDOVER_STATUS" />
39    <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS" />
40    <uses-permission android:name="android.permission.WRITE_APN_SETTINGS" />
41    <uses-permission android:name="android.permission.NET_ADMIN" />
42    <uses-permission android:name="android.permission.CALL_PRIVILEGED" />
43    <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS" />
44    <uses-permission android:name="android.permission.NET_TUNNELING" />
45    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
46    <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE" />
47    <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL" />
48    <uses-permission android:name="android.permission.TETHER_PRIVILEGED" />
49    <uses-permission android:name="android.permission.MODIFY_PHONE_STATE" />
50    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL" />
51    <uses-permission android:name="android.permission.BLUETOOTH_STACK" />
52    <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
53    <uses-permission android:name="android.permission.MANAGE_USERS"/>
54    <uses-permission android:name="android.permission.GET_ACCOUNTS"/>
55    <uses-permission android:name="com.google.android.gallery3d.permission.GALLERY_PROVIDER"/>
56    <uses-permission android:name="com.android.gallery3d.permission.GALLERY_PROVIDER"/>
57    <uses-permission android:name="android.permission.RECEIVE_SMS" />
58    <uses-permission android:name="android.permission.SEND_SMS" />
59    <uses-permission android:name="android.permission.READ_SMS" />
60    <uses-permission android:name="android.permission.WRITE_SMS" />
61    <uses-permission android:name="android.permission.READ_CONTACTS" />
62    <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL" />
63    <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS" />
64    <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES" />
65    <uses-permission android:name="android.permission.VIBRATE" />
66    <uses-permission android:name="android.permission.DEVICE_POWER" />
67    <uses-permission android:name="android.permission.REAL_GET_TASKS" />
68    <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING" />
69    <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS" />
70    <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS" />
71
72    <uses-sdk android:minSdkVersion="14"/>
73
74    <!-- For PBAP Owner Vcard Info -->
75    <uses-permission android:name="android.permission.READ_PROFILE"/>
76    <application
77        android:name=".btservice.AdapterApp"
78        android:icon="@mipmap/bt_share"
79        android:persistent="false"
80        android:label="@string/app_name"
81        android:supportsRtl="true"
82        android:usesCleartextTraffic="false"
83        android:directBootAware="true"
84        android:defaultToDeviceProtectedStorage="true"
85        android:requestLegacyExternalStorage="true">
86        <uses-library android:name="javax.obex" />
87        <provider android:name=".opp.BluetoothOppProvider"
88            android:authorities="com.android.bluetooth.opp"
89            android:exported="true"
90            android:process="@string/process">
91            <path-permission
92                    android:pathPrefix="/btopp"
93                    android:permission="android.permission.ACCESS_BLUETOOTH_SHARE" />
94        </provider>
95        <provider android:name=".opp.BluetoothOppFileProvider"
96            android:authorities="com.android.bluetooth.opp.fileprovider"
97            android:grantUriPermissions="true"
98            android:exported="false">
99            <meta-data
100                android:name="android.support.FILE_PROVIDER_PATHS"
101                android:resource="@xml/file_paths" />
102        </provider>
103        <service
104            android:process="@string/process"
105            android:name = ".btservice.AdapterService">
106            <intent-filter>
107                <action android:name="android.bluetooth.IBluetooth" />
108            </intent-filter>
109        </service>
110        <service
111            android:process="@string/process"
112            android:name=".opp.BluetoothOppService"
113            android:permission="android.permission.ACCESS_BLUETOOTH_SHARE"
114            android:enabled="@bool/profile_supported_opp"/>
115        <receiver
116            android:process="@string/process"
117            android:exported="true"
118            android:name=".opp.BluetoothOppReceiver"
119            android:enabled="@bool/profile_supported_opp">
120            <intent-filter>
121                <action android:name="android.btopp.intent.action.OPEN_RECEIVED_FILES" />
122            </intent-filter>
123        </receiver>
124         <receiver
125            android:process="@string/process"
126            android:name=".opp.BluetoothOppHandoverReceiver"
127            android:permission="com.android.permission.WHITELIST_BLUETOOTH_DEVICE">
128            <intent-filter>
129                <action android:name="android.btopp.intent.action.WHITELIST_DEVICE" />
130                <action android:name="android.btopp.intent.action.STOP_HANDOVER_TRANSFER" />
131            </intent-filter>
132            <intent-filter>
133                <action android:name="android.nfc.handover.intent.action.HANDOVER_SEND" />
134                <category android:name="android.intent.category.DEFAULT" />
135                <data android:mimeType="*/*" />
136            </intent-filter>
137            <intent-filter>
138                <action android:name="android.nfc.handover.intent.action.HANDOVER_SEND_MULTIPLE" />
139                <category android:name="android.intent.category.DEFAULT" />
140                <data android:mimeType="*/*" />
141            </intent-filter>
142        </receiver>
143        <activity android:name=".opp.BluetoothOppLauncherActivity"
144            android:process="@string/process"
145            android:theme="@android:style/Theme.Material.Light.Dialog"
146            android:label="@string/bt_share_picker_label"
147            android:enabled="@bool/profile_supported_opp">
148            <intent-filter>
149                <action android:name="android.intent.action.SEND" />
150                <category android:name="android.intent.category.DEFAULT" />
151                <data android:mimeType="image/*" />
152                <data android:mimeType="video/*" />
153                <data android:mimeType="audio/*" />
154                <data android:mimeType="text/x-vcard" />
155                <data android:mimeType="text/x-vcalendar" />
156                <data android:mimeType="text/calendar" />
157                <data android:mimeType="text/plain" />
158                <data android:mimeType="text/html" />
159                <data android:mimeType="text/xml" />
160                <data android:mimeType="application/zip" />
161                <data android:mimeType="application/vnd.ms-excel" />
162                <data android:mimeType="application/msword" />
163                <data android:mimeType="application/vnd.ms-powerpoint" />
164                <data android:mimeType="application/pdf" />
165                <data android:mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
166                <data android:mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
167                <data android:mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" />
168                <data android:mimeType="application/x-hwp" />
169            </intent-filter>
170            <intent-filter>
171                <action android:name="android.intent.action.SEND_MULTIPLE" />
172                <category android:name="android.intent.category.DEFAULT" />
173                <data android:mimeType="image/*" />
174                <data android:mimeType="video/*" />
175                <data android:mimeType="x-mixmedia/*" />
176                <data android:mimeType="text/x-vcard" />
177            </intent-filter>
178            <intent-filter>
179                <action android:name="android.btopp.intent.action.OPEN" />
180                <category android:name="android.intent.category.DEFAULT" />
181                <data android:mimeType="vnd.android.cursor.item/vnd.android.btopp" />
182            </intent-filter>
183        </activity>
184        <activity android:name=".opp.BluetoothOppBtEnableActivity"
185                  android:process="@string/process"
186                  android:excludeFromRecents="true"
187                  android:theme="@android:style/Theme.Material.Light.Dialog.Alert"
188                  android:enabled="@bool/profile_supported_opp">
189        </activity>
190        <activity android:name=".opp.BluetoothOppBtErrorActivity"
191                  android:process="@string/process"
192                  android:excludeFromRecents="true"
193                  android:theme="@android:style/Theme.Material.Light.Dialog.Alert">
194        </activity>
195        <activity android:name=".opp.BluetoothOppBtEnablingActivity"
196                  android:process="@string/process"
197                  android:excludeFromRecents="true"
198                  android:theme="@android:style/Theme.Material.Light.Dialog.Alert"
199                  android:enabled="@bool/profile_supported_opp">
200        </activity>
201        <activity android:name=".opp.BluetoothOppIncomingFileConfirmActivity"
202                  android:process="@string/process"
203                  android:excludeFromRecents="true"
204                  android:theme="@android:style/Theme.Material.Light.Dialog.Alert"
205                  android:enabled="@bool/profile_supported_opp">
206        </activity>
207        <activity android:name=".opp.BluetoothOppTransferActivity"
208                  android:process="@string/process"
209                  android:excludeFromRecents="true"
210                  android:theme="@android:style/Theme.Material.Light.Dialog.Alert"
211                  android:enabled="@bool/profile_supported_opp">
212        </activity>
213        <activity android:name=".opp.BluetoothOppTransferHistory"
214                  android:process="@string/process"
215                  android:label=""
216                  android:excludeFromRecents="true"
217                  android:configChanges="orientation|keyboardHidden"
218                  android:enabled="@bool/profile_supported_opp"
219                  android:theme="@android:style/Theme.DeviceDefault.Settings">
220            <intent-filter>
221                <action android:name="com.android.bluetooth.action.TransferHistory" />
222                <category android:name="android.intent.category.DEFAULT" />
223            </intent-filter>
224        </activity>
225        <activity android:name=".pbap.BluetoothPbapActivity"
226            android:process="@string/process"
227            android:excludeFromRecents="true"
228            android:theme="@android:style/Theme.Material.Light.Dialog.Alert"
229            android:enabled="@bool/profile_supported_pbap">
230            <intent-filter>
231                <category android:name="android.intent.category.DEFAULT" />
232            </intent-filter>
233        </activity>
234        <service
235            android:process="@string/process"
236            android:name=".pbap.BluetoothPbapService"
237            android:enabled="@bool/profile_supported_pbap" >
238            <intent-filter>
239                <action android:name="android.bluetooth.IBluetoothPbap" />
240            </intent-filter>
241        </service>
242        <service
243            android:process="@string/process"
244            android:name=".map.BluetoothMapService"
245            android:enabled="@bool/profile_supported_map" >
246            <intent-filter>
247                <action android:name="android.bluetooth.IBluetoothMap" />
248                <action android:name="android.btmap.intent.action.SHOW_MAPS_SETTINGS" />
249                <action android:name="com.android.bluetooth.map.USER_CONFIRM_TIMEOUT"/>
250            </intent-filter>
251        </service>
252         <activity android:name=".map.BluetoothMapSettings"
253                  android:process="@string/process"
254                  android:label="@string/bluetooth_map_settings_title"
255                  android:excludeFromRecents="true"
256                  android:configChanges="orientation|keyboardHidden"
257                  android:enabled="@bool/profile_supported_map">
258        </activity>
259        <provider android:name=".map.MmsFileProvider"
260                  android:authorities="com.android.bluetooth.map.MmsFileProvider"
261                  android:enabled="true"
262                  android:grantUriPermissions="true"
263                  android:exported="false">
264        </provider>
265        <service
266            android:process="@string/process"
267            android:name=".mapclient.MapClientService"
268            android:enabled="@bool/profile_supported_mapmce" >
269            <intent-filter>
270                <action android:name="android.bluetooth.IBluetoothMapClient" />
271            </intent-filter>
272        </service>
273        <service
274            android:process="@string/process"
275            android:name=".sap.SapService"
276            android:enabled="@bool/profile_supported_sap" >
277            <intent-filter>
278                <action android:name="android.bluetooth.IBluetoothSap" />
279            </intent-filter>
280        </service>
281        <service
282            android:process="@string/process"
283            android:name = ".gatt.GattService"
284            android:enabled="@bool/profile_supported_gatt">
285            <intent-filter>
286                <action android:name="android.bluetooth.IBluetoothGatt" />
287            </intent-filter>
288        </service>
289        <service
290            android:process="@string/process"
291            android:name = ".hfp.HeadsetService"
292            android:enabled="@bool/profile_supported_hs_hfp">
293            <intent-filter>
294                <action android:name="android.bluetooth.IBluetoothHeadset" />
295            </intent-filter>
296        </service>
297        <service
298            android:process="@string/process"
299            android:name = ".a2dp.A2dpService"
300            android:enabled="@bool/profile_supported_a2dp">
301            <intent-filter>
302                <action android:name="android.bluetooth.IBluetoothA2dp" />
303            </intent-filter>
304        </service>
305        <service
306            android:process="@string/process"
307            android:name = ".a2dpsink.A2dpSinkService"
308            android:enabled="@bool/profile_supported_a2dp_sink">
309            <intent-filter>
310                <action android:name="android.bluetooth.IBluetoothA2dpSink" />
311            </intent-filter>
312        </service>
313        <service
314            android:process="@string/process"
315            android:name=".avrcpcontroller.BluetoothMediaBrowserService"
316            android:exported="true"
317            android:enabled="@bool/profile_supported_a2dp_sink"
318            android:label="@string/a2dp_sink_mbs_label">
319            <intent-filter>
320                <action android:name="android.media.browse.MediaBrowserService" />
321            </intent-filter>
322        </service>
323        <service
324            android:process="@string/process"
325            android:name = ".avrcp.AvrcpTargetService"
326            android:enabled = "@bool/profile_supported_avrcp_target" >
327            <intent-filter>
328                <action android:name="android.bluetooth.IBluetoothAvrcp" />
329            </intent-filter>
330        </service>
331        <service
332            android:process="@string/process"
333            android:name = ".avrcpcontroller.AvrcpControllerService"
334            android:enabled="@bool/profile_supported_avrcp_controller">
335            <intent-filter>
336                <action android:name="android.bluetooth.IBluetoothAvrcpController" />
337            </intent-filter>
338        </service>
339        <service
340            android:process="@string/process"
341            android:name = ".hid.HidHostService"
342            android:enabled="@bool/profile_supported_hid_host">
343            <intent-filter>
344                <action android:name="android.bluetooth.IBluetoothHidHost" />
345            </intent-filter>
346        </service>
347        <service
348            android:process="@string/process"
349            android:name = ".hid.HidDeviceService"
350            android:enabled="@bool/profile_supported_hid_device">
351            <intent-filter>
352                <action android:name="android.bluetooth.IBluetoothHidDevice" />
353            </intent-filter>
354        </service>
355        <service
356            android:process="@string/process"
357            android:name = ".pan.PanService"
358            android:enabled="@bool/profile_supported_pan">
359            <intent-filter>
360                <action android:name="android.bluetooth.IBluetoothPan" />
361            </intent-filter>
362        </service>
363        <service
364            android:process="@string/process"
365            android:name = ".hfpclient.HeadsetClientService"
366            android:enabled="@bool/profile_supported_hfpclient">
367            <intent-filter>
368                <action android:name="android.bluetooth.IBluetoothHeadsetClient" />
369            </intent-filter>
370        </service>
371        <service
372            android:process="@string/process"
373            android:name=".hfpclient.connserv.HfpClientConnectionService"
374            android:permission="android.permission.BIND_CONNECTION_SERVICE"
375            android:enabled="@bool/hfp_client_connection_service_enabled">
376            <intent-filter>
377                <!-- Mechanism for Telecom stack to connect -->
378                <action android:name="android.telecom.ConnectionService" />
379            </intent-filter>
380        </service>
381        <service
382            android:process="@string/process"
383            android:name = ".pbapclient.PbapClientService"
384            android:enabled="@bool/profile_supported_pbapclient">
385            <intent-filter>
386                <action android:name="android.bluetooth.IBluetoothPbapClient" />
387            </intent-filter>
388        </service>
389        <service
390            android:process="@string/process"
391            android:name = ".hearingaid.HearingAidService">
392            <intent-filter>
393                <action android:name="android.bluetooth.IBluetoothHearingAid" />
394            </intent-filter>
395        </service>
396        <!-- Authenticator for PBAP account. -->
397        <service
398            android:process="@string/process"
399            android:name=".pbapclient.AuthenticationService"
400            android:exported="true"
401            android:enabled="@bool/profile_supported_pbapclient">
402            <intent-filter>
403                <action android:name="android.accounts.AccountAuthenticator" />
404            </intent-filter>
405            <meta-data
406                android:name="android.accounts.AccountAuthenticator"
407                android:resource="@xml/authenticator" />
408        </service>
409    </application>
410</manifest>
411