• 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    <!-- For PBAP Owner Vcard Info -->
73    <uses-permission android:name="android.permission.READ_PROFILE"/>
74    <application
75        android:name=".btservice.AdapterApp"
76        android:icon="@mipmap/bt_share"
77        android:persistent="false"
78        android:label="@string/app_name"
79        android:supportsRtl="true"
80        android:usesCleartextTraffic="false"
81        android:directBootAware="true"
82        android:defaultToDeviceProtectedStorage="true">
83        <uses-library android:name="javax.obex" />
84        <provider android:name=".opp.BluetoothOppProvider"
85            android:authorities="com.android.bluetooth.opp"
86            android:exported="true"
87            android:process="@string/process">
88            <path-permission
89                    android:pathPrefix="/btopp"
90                    android:permission="android.permission.ACCESS_BLUETOOTH_SHARE" />
91        </provider>
92        <provider android:name=".opp.BluetoothOppFileProvider"
93            android:authorities="com.android.bluetooth.opp.fileprovider"
94            android:grantUriPermissions="true"
95            android:exported="false">
96            <meta-data
97                android:name="android.support.FILE_PROVIDER_PATHS"
98                android:resource="@xml/file_paths" />
99        </provider>
100        <service
101            android:process="@string/process"
102            android:name = ".btservice.AdapterService">
103            <intent-filter>
104                <action android:name="android.bluetooth.IBluetooth" />
105            </intent-filter>
106        </service>
107        <service
108            android:process="@string/process"
109            android:name=".opp.BluetoothOppService"
110            android:permission="android.permission.ACCESS_BLUETOOTH_SHARE"
111            android:enabled="@bool/profile_supported_opp"/>
112        <receiver
113            android:process="@string/process"
114            android:exported="true"
115            android:name=".opp.BluetoothOppReceiver"
116            android:enabled="@bool/profile_supported_opp">
117            <intent-filter>
118                <action android:name="android.btopp.intent.action.OPEN_RECEIVED_FILES" />
119            </intent-filter>
120        </receiver>
121         <receiver
122            android:process="@string/process"
123            android:name=".opp.BluetoothOppHandoverReceiver"
124            android:permission="com.android.permission.WHITELIST_BLUETOOTH_DEVICE">
125            <intent-filter>
126                <action android:name="android.btopp.intent.action.WHITELIST_DEVICE" />
127                <action android:name="android.btopp.intent.action.STOP_HANDOVER_TRANSFER" />
128            </intent-filter>
129            <intent-filter>
130                <action android:name="android.nfc.handover.intent.action.HANDOVER_SEND" />
131                <category android:name="android.intent.category.DEFAULT" />
132                <data android:mimeType="*/*" />
133            </intent-filter>
134            <intent-filter>
135                <action android:name="android.nfc.handover.intent.action.HANDOVER_SEND_MULTIPLE" />
136                <category android:name="android.intent.category.DEFAULT" />
137                <data android:mimeType="*/*" />
138            </intent-filter>
139        </receiver>
140        <activity android:name=".opp.BluetoothOppLauncherActivity"
141            android:process="@string/process"
142            android:theme="@android:style/Theme.Material.Light.Dialog"
143            android:label="@string/bt_share_picker_label"
144            android:enabled="@bool/profile_supported_opp">
145            <intent-filter>
146                <action android:name="android.intent.action.SEND" />
147                <category android:name="android.intent.category.DEFAULT" />
148                <data android:mimeType="image/*" />
149                <data android:mimeType="video/*" />
150                <data android:mimeType="audio/*" />
151                <data android:mimeType="text/x-vcard" />
152                <data android:mimeType="text/x-vcalendar" />
153                <data android:mimeType="text/calendar" />
154                <data android:mimeType="text/plain" />
155                <data android:mimeType="text/html" />
156                <data android:mimeType="text/xml" />
157                <data android:mimeType="application/zip" />
158                <data android:mimeType="application/vnd.ms-excel" />
159                <data android:mimeType="application/msword" />
160                <data android:mimeType="application/vnd.ms-powerpoint" />
161                <data android:mimeType="application/pdf" />
162                <data android:mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" />
163                <data android:mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document" />
164                <data android:mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation" />
165                <data android:mimeType="application/x-hwp" />
166            </intent-filter>
167            <intent-filter>
168                <action android:name="android.intent.action.SEND_MULTIPLE" />
169                <category android:name="android.intent.category.DEFAULT" />
170                <data android:mimeType="image/*" />
171                <data android:mimeType="video/*" />
172                <data android:mimeType="x-mixmedia/*" />
173                <data android:mimeType="text/x-vcard" />
174            </intent-filter>
175            <intent-filter>
176                <action android:name="android.btopp.intent.action.OPEN" />
177                <category android:name="android.intent.category.DEFAULT" />
178                <data android:mimeType="vnd.android.cursor.item/vnd.android.btopp" />
179            </intent-filter>
180        </activity>
181        <activity android:name=".opp.BluetoothOppBtEnableActivity"
182                  android:process="@string/process"
183                  android:excludeFromRecents="true"
184                  android:theme="@android:style/Theme.Material.Light.Dialog.Alert"
185                  android:enabled="@bool/profile_supported_opp">
186        </activity>
187        <activity android:name=".opp.BluetoothOppBtErrorActivity"
188                  android:process="@string/process"
189                  android:excludeFromRecents="true"
190                  android:theme="@android:style/Theme.Material.Light.Dialog.Alert">
191        </activity>
192        <activity android:name=".opp.BluetoothOppBtEnablingActivity"
193                  android:process="@string/process"
194                  android:excludeFromRecents="true"
195                  android:theme="@android:style/Theme.Material.Light.Dialog.Alert"
196                  android:enabled="@bool/profile_supported_opp">
197        </activity>
198        <activity android:name=".opp.BluetoothOppIncomingFileConfirmActivity"
199                  android:process="@string/process"
200                  android:excludeFromRecents="true"
201                  android:theme="@android:style/Theme.Material.Light.Dialog.Alert"
202                  android:enabled="@bool/profile_supported_opp">
203        </activity>
204        <activity android:name=".opp.BluetoothOppTransferActivity"
205                  android:process="@string/process"
206                  android:excludeFromRecents="true"
207                  android:theme="@android:style/Theme.Material.Light.Dialog.Alert"
208                  android:enabled="@bool/profile_supported_opp">
209        </activity>
210        <activity android:name=".opp.BluetoothOppTransferHistory"
211                  android:process="@string/process"
212                  android:label=""
213                  android:excludeFromRecents="true"
214                  android:configChanges="orientation|keyboardHidden"
215                  android:enabled="@bool/profile_supported_opp"
216                  android:theme="@android:style/Theme.DeviceDefault.Settings">
217            <intent-filter>
218                <action android:name="com.android.bluetooth.action.TransferHistory" />
219                <category android:name="android.intent.category.DEFAULT" />
220            </intent-filter>
221        </activity>
222        <activity android:name=".pbap.BluetoothPbapActivity"
223            android:process="@string/process"
224            android:excludeFromRecents="true"
225            android:theme="@android:style/Theme.Material.Light.Dialog.Alert"
226            android:enabled="@bool/profile_supported_pbap">
227            <intent-filter>
228                <category android:name="android.intent.category.DEFAULT" />
229            </intent-filter>
230        </activity>
231        <service
232            android:process="@string/process"
233            android:name=".pbap.BluetoothPbapService"
234            android:enabled="@bool/profile_supported_pbap" >
235            <intent-filter>
236                <action android:name="android.bluetooth.IBluetoothPbap" />
237            </intent-filter>
238        </service>
239        <service
240            android:process="@string/process"
241            android:name=".map.BluetoothMapService"
242            android:enabled="@bool/profile_supported_map" >
243            <intent-filter>
244                <action android:name="android.bluetooth.IBluetoothMap" />
245                <action android:name="android.btmap.intent.action.SHOW_MAPS_SETTINGS" />
246                <action android:name="com.android.bluetooth.map.USER_CONFIRM_TIMEOUT"/>
247            </intent-filter>
248        </service>
249         <activity android:name=".map.BluetoothMapSettings"
250                  android:process="@string/process"
251                  android:label="@string/bluetooth_map_settings_title"
252                  android:excludeFromRecents="true"
253                  android:configChanges="orientation|keyboardHidden"
254                  android:enabled="@bool/profile_supported_map">
255        </activity>
256        <provider android:name=".map.MmsFileProvider"
257                  android:authorities="com.android.bluetooth.map.MmsFileProvider"
258                  android:enabled="true"
259                  android:grantUriPermissions="true"
260                  android:exported="false">
261        </provider>
262        <service
263            android:process="@string/process"
264            android:name=".mapclient.MapClientService"
265            android:enabled="@bool/profile_supported_mapmce" >
266            <intent-filter>
267                <action android:name="android.bluetooth.IBluetoothMapClient" />
268            </intent-filter>
269        </service>
270        <service
271            android:process="@string/process"
272            android:name=".sap.SapService"
273            android:enabled="@bool/profile_supported_sap" >
274            <intent-filter>
275                <action android:name="android.bluetooth.IBluetoothSap" />
276            </intent-filter>
277        </service>
278        <service
279            android:process="@string/process"
280            android:name = ".gatt.GattService"
281            android:enabled="@bool/profile_supported_gatt">
282            <intent-filter>
283                <action android:name="android.bluetooth.IBluetoothGatt" />
284            </intent-filter>
285        </service>
286        <service
287            android:process="@string/process"
288            android:name = ".hfp.HeadsetService"
289            android:enabled="@bool/profile_supported_hs_hfp">
290            <intent-filter>
291                <action android:name="android.bluetooth.IBluetoothHeadset" />
292            </intent-filter>
293        </service>
294        <service
295            android:process="@string/process"
296            android:name = ".a2dp.A2dpService"
297            android:enabled="@bool/profile_supported_a2dp">
298            <intent-filter>
299                <action android:name="android.bluetooth.IBluetoothA2dp" />
300            </intent-filter>
301        </service>
302        <service
303            android:process="@string/process"
304            android:name = ".a2dpsink.A2dpSinkService"
305            android:enabled="@bool/profile_supported_a2dp_sink">
306            <intent-filter>
307                <action android:name="android.bluetooth.IBluetoothA2dpSink" />
308            </intent-filter>
309        </service>
310        <service
311            android:process="@string/process"
312            android:name=".a2dpsink.mbs.A2dpMediaBrowserService"
313            android:exported="true"
314            android:enabled="@bool/profile_supported_a2dp_sink"
315            android:label="@string/a2dp_sink_mbs_label">
316            <intent-filter>
317                <action android:name="android.media.browse.MediaBrowserService" />
318            </intent-filter>
319        </service>
320        <service
321            android:process="@string/process"
322            android:name = ".avrcp.AvrcpTargetService"
323            android:enabled = "@bool/profile_supported_avrcp_target" >
324            <intent-filter>
325                <action android:name="android.bluetooth.IBluetoothAvrcp" />
326            </intent-filter>
327        </service>
328        <service
329            android:process="@string/process"
330            android:name = ".avrcpcontroller.AvrcpControllerService"
331            android:enabled="@bool/profile_supported_avrcp_controller">
332            <intent-filter>
333                <action android:name="android.bluetooth.IBluetoothAvrcpController" />
334            </intent-filter>
335        </service>
336        <service
337            android:process="@string/process"
338            android:name = ".hid.HidHostService"
339            android:enabled="@bool/profile_supported_hid_host">
340            <intent-filter>
341                <action android:name="android.bluetooth.IBluetoothHidHost" />
342            </intent-filter>
343        </service>
344        <service
345            android:process="@string/process"
346            android:name = ".hid.HidDeviceService"
347            android:enabled="@bool/profile_supported_hid_device">
348            <intent-filter>
349                <action android:name="android.bluetooth.IBluetoothHidDevice" />
350            </intent-filter>
351        </service>
352        <service
353            android:process="@string/process"
354            android:name = ".hdp.HealthService"
355            android:enabled="@bool/profile_supported_hdp">
356            <intent-filter>
357                <action android:name="android.bluetooth.IBluetoothHealth" />
358            </intent-filter>
359        </service>
360        <service
361            android:process="@string/process"
362            android:name = ".pan.PanService"
363            android:enabled="@bool/profile_supported_pan">
364            <intent-filter>
365                <action android:name="android.bluetooth.IBluetoothPan" />
366            </intent-filter>
367        </service>
368        <service
369            android:process="@string/process"
370            android:name = ".hfpclient.HeadsetClientService"
371            android:enabled="@bool/profile_supported_hfpclient">
372            <intent-filter>
373                <action android:name="android.bluetooth.IBluetoothHeadsetClient" />
374            </intent-filter>
375        </service>
376        <service
377            android:process="@string/process"
378            android:name=".hfpclient.connserv.HfpClientConnectionService"
379            android:permission="android.permission.BIND_CONNECTION_SERVICE"
380            android:enabled="@bool/hfp_client_connection_service_enabled">
381            <intent-filter>
382                <!-- Mechanism for Telecom stack to connect -->
383                <action android:name="android.telecom.ConnectionService" />
384            </intent-filter>
385        </service>
386        <service
387            android:process="@string/process"
388            android:name = ".pbapclient.PbapClientService"
389            android:enabled="@bool/profile_supported_pbapclient">
390            <intent-filter>
391                <action android:name="android.bluetooth.IBluetoothPbapClient" />
392            </intent-filter>
393        </service>
394        <service
395            android:process="@string/process"
396            android:name = ".hearingaid.HearingAidService"
397            android:enabled="@bool/profile_supported_hearing_aid">
398            <intent-filter>
399                <action android:name="android.bluetooth.IBluetoothHearingAid" />
400            </intent-filter>
401        </service>
402        <!-- Authenticator for PBAP account. -->
403        <service
404            android:process="@string/process"
405            android:name=".pbapclient.AuthenticationService"
406            android:exported="true"
407            android:enabled="@bool/profile_supported_pbapclient">
408            <intent-filter>
409                <action android:name="android.accounts.AccountAuthenticator" />
410            </intent-filter>
411            <meta-data
412                android:name="android.accounts.AccountAuthenticator"
413                android:resource="@xml/authenticator" />
414        </service>
415    </application>
416</manifest>
417