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