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