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 <original-package android:name="com.android.bluetooth"/> 8 9 <!-- Allows access to the Bluetooth Share Manager --> 10 <permission android:name="android.permission.ACCESS_BLUETOOTH_SHARE" 11 android:label="@string/permlab_bluetoothShareManager" 12 android:description="@string/permdesc_bluetoothShareManager" 13 android:protectionLevel="signature"/> 14 15 <!-- Allows temporarily whitelisting Bluetooth addresses for sharing --> 16 <permission android:name="com.android.permission.WHITELIST_BLUETOOTH_DEVICE" 17 android:label="@string/permlab_bluetoothWhitelist" 18 android:description="@string/permdesc_bluetoothWhitelist" 19 android:protectionLevel="signature"/> 20 21 <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/> 22 <uses-permission android:name="android.permission.ACCESS_BLUETOOTH_SHARE"/> 23 <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/> 24 <uses-permission android:name="android.permission.INTERNET"/> 25 <uses-permission android:name="android.permission.BLUETOOTH"/> 26 <uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/> 27 <uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"/> 28 <uses-permission android:name="android.permission.BLUETOOTH_MAP"/> 29 <uses-permission android:name="android.permission.DUMP"/> 30 <uses-permission android:name="android.permission.WAKE_LOCK"/> 31 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 32 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> 33 <uses-permission android:name="android.permission.READ_CONTACTS"/> 34 <uses-permission android:name="android.permission.WRITE_CONTACTS"/> 35 <uses-permission android:name="android.permission.READ_CALL_LOG"/> 36 <uses-permission android:name="android.permission.WRITE_CALL_LOG"/> 37 <uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/> 38 <uses-permission android:name="android.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH"/> 39 <uses-permission android:name="android.permission.WRITE_SETTINGS"/> 40 <uses-permission android:name="android.permission.NFC_HANDOVER_STATUS"/> 41 <uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/> 42 <uses-permission android:name="android.permission.WRITE_APN_SETTINGS"/> 43 <uses-permission android:name="android.permission.NET_ADMIN"/> 44 <uses-permission android:name="android.permission.CALL_PRIVILEGED"/> 45 <uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/> 46 <uses-permission android:name="android.permission.NET_TUNNELING"/> 47 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 48 <uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/> 49 <uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL"/> 50 <uses-permission android:name="android.permission.READ_DEVICE_CONFIG"/> 51 <uses-permission android:name="android.permission.NETWORK_FACTORY"/> 52 <uses-permission android:name="android.permission.TETHER_PRIVILEGED"/> 53 <uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/> 54 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/> 55 <uses-permission android:name="android.permission.BLUETOOTH_STACK"/> 56 <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/> 57 <uses-permission android:name="android.permission.MANAGE_USERS"/> 58 <uses-permission android:name="android.permission.GET_ACCOUNTS"/> 59 <uses-permission android:name="android.permission.RECEIVE_SMS"/> 60 <uses-permission android:name="android.permission.SEND_SMS"/> 61 <uses-permission android:name="android.permission.READ_SMS"/> 62 <uses-permission android:name="android.permission.WRITE_SMS"/> 63 <uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/> 64 <uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS"/> 65 <uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES"/> 66 <uses-permission android:name="android.permission.VIBRATE"/> 67 <uses-permission android:name="android.permission.DEVICE_POWER"/> 68 <uses-permission android:name="android.permission.REAL_GET_TASKS"/> 69 <uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING"/> 70 <uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"/> 71 <uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/> 72 <uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/> 73 74 <uses-sdk android:minSdkVersion="14"/> 75 76 <!-- For PBAP Owner Vcard Info --> 77 <uses-permission android:name="android.permission.READ_PROFILE"/> 78 <application android:name=".btservice.AdapterApp" 79 android:icon="@mipmap/bt_share" 80 android:persistent="false" 81 android:label="@string/app_name" 82 android:supportsRtl="true" 83 android:usesCleartextTraffic="false" 84 android:directBootAware="true" 85 android:defaultToDeviceProtectedStorage="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 android:pathPrefix="/btopp" 92 android:permission="android.permission.ACCESS_BLUETOOTH_SHARE"/> 93 </provider> 94 <provider android:name=".opp.BluetoothOppFileProvider" 95 android:authorities="com.android.bluetooth.opp.fileprovider" 96 android:grantUriPermissions="true" 97 android:exported="false"> 98 <meta-data android:name="android.support.FILE_PROVIDER_PATHS" 99 android:resource="@xml/file_paths"/> 100 </provider> 101 <service android:process="@string/process" 102 android:name=".btservice.AdapterService" 103 android:exported="true"> 104 <intent-filter> 105 <action android:name="android.bluetooth.IBluetooth"/> 106 </intent-filter> 107 </service> 108 <service 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 android:process="@string/process" 113 android:exported="true" 114 android:name=".opp.BluetoothOppReceiver" 115 android:enabled="@bool/profile_supported_opp"> 116 <intent-filter> 117 <action android:name="android.btopp.intent.action.OPEN_RECEIVED_FILES"/> 118 </intent-filter> 119 </receiver> 120 <receiver android:process="@string/process" 121 android:name=".opp.BluetoothOppHandoverReceiver" 122 android:permission="com.android.permission.WHITELIST_BLUETOOTH_DEVICE" 123 android:exported="true"> 124 <intent-filter> 125 <action android:name="android.btopp.intent.action.WHITELIST_DEVICE"/> 126 <action android:name="android.btopp.intent.action.STOP_HANDOVER_TRANSFER"/> 127 </intent-filter> 128 <intent-filter> 129 <action android:name="android.nfc.handover.intent.action.HANDOVER_SEND"/> 130 <category android:name="android.intent.category.DEFAULT"/> 131 <data android:mimeType="*/*"/> 132 </intent-filter> 133 <intent-filter> 134 <action android:name="android.nfc.handover.intent.action.HANDOVER_SEND_MULTIPLE"/> 135 <category android:name="android.intent.category.DEFAULT"/> 136 <data android:mimeType="*/*"/> 137 </intent-filter> 138 </receiver> 139 <activity android:name=".opp.BluetoothOppLauncherActivity" 140 android:process="@string/process" 141 android:theme="@android:style/Theme.Material.Light.Dialog" 142 android:label="@string/bt_share_picker_label" 143 android:enabled="@bool/profile_supported_opp" 144 android:exported="true"> 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 android:exported="true"> 218 <intent-filter> 219 <action android:name="com.android.bluetooth.action.TransferHistory"/> 220 <category android:name="android.intent.category.DEFAULT"/> 221 </intent-filter> 222 </activity> 223 <activity android:name=".pbap.BluetoothPbapActivity" 224 android:process="@string/process" 225 android:excludeFromRecents="true" 226 android:theme="@android:style/Theme.Material.Light.Dialog.Alert" 227 android:enabled="@bool/profile_supported_pbap"> 228 </activity> 229 <service android:process="@string/process" 230 android:permission="android.permission.BLUETOOTH_PRIVILEGED" 231 android:name=".pbap.BluetoothPbapService" 232 android:enabled="@bool/profile_supported_pbap" 233 android:exported="true"> 234 <intent-filter> 235 <action android:name="android.bluetooth.IBluetoothPbap"/> 236 </intent-filter> 237 </service> 238 <service android:process="@string/process" 239 android:name=".map.BluetoothMapService" 240 android:enabled="@bool/profile_supported_map" 241 android:exported="true"> 242 <intent-filter> 243 <action android:name="android.bluetooth.IBluetoothMap"/> 244 <action android:name="android.btmap.intent.action.SHOW_MAPS_SETTINGS"/> 245 <action android:name="com.android.bluetooth.map.USER_CONFIRM_TIMEOUT"/> 246 </intent-filter> 247 </service> 248 <activity android:name=".map.BluetoothMapSettings" 249 android:process="@string/process" 250 android:label="@string/bluetooth_map_settings_title" 251 android:excludeFromRecents="true" 252 android:configChanges="orientation|keyboardHidden" 253 android:enabled="@bool/profile_supported_map"> 254 </activity> 255 <provider android:name=".map.MmsFileProvider" 256 android:authorities="com.android.bluetooth.map.MmsFileProvider" 257 android:enabled="true" 258 android:grantUriPermissions="true" 259 android:exported="false"> 260 </provider> 261 <service android:process="@string/process" 262 android:name=".mapclient.MapClientService" 263 android:enabled="@bool/profile_supported_mapmce" 264 android:exported="true"> 265 <intent-filter> 266 <action android:name="android.bluetooth.IBluetoothMapClient"/> 267 </intent-filter> 268 </service> 269 <service android:process="@string/process" 270 android:name=".sap.SapService" 271 android:enabled="@bool/profile_supported_sap" 272 android:exported="true"> 273 <intent-filter> 274 <action android:name="android.bluetooth.IBluetoothSap"/> 275 </intent-filter> 276 </service> 277 <service android:process="@string/process" 278 android:name=".gatt.GattService" 279 android:enabled="@bool/profile_supported_gatt" 280 android:exported="true"> 281 <intent-filter> 282 <action android:name="android.bluetooth.IBluetoothGatt"/> 283 </intent-filter> 284 </service> 285 <service android:process="@string/process" 286 android:name=".hfp.HeadsetService" 287 android:enabled="@bool/profile_supported_hs_hfp" 288 android:exported="true"> 289 <intent-filter> 290 <action android:name="android.bluetooth.IBluetoothHeadset"/> 291 </intent-filter> 292 </service> 293 <service android:process="@string/process" 294 android:name=".a2dp.A2dpService" 295 android:enabled="@bool/profile_supported_a2dp" 296 android:exported="true"> 297 <intent-filter> 298 <action android:name="android.bluetooth.IBluetoothA2dp"/> 299 </intent-filter> 300 </service> 301 <service android:process="@string/process" 302 android:name=".a2dpsink.A2dpSinkService" 303 android:enabled="@bool/profile_supported_a2dp_sink" 304 android:exported="true"> 305 <intent-filter> 306 <action android:name="android.bluetooth.IBluetoothA2dpSink"/> 307 </intent-filter> 308 </service> 309 <service android:process="@string/process" 310 android:name=".avrcpcontroller.BluetoothMediaBrowserService" 311 android:exported="true" 312 android:enabled="@bool/profile_supported_a2dp_sink" 313 android:label="@string/a2dp_sink_mbs_label"> 314 <intent-filter> 315 <action android:name="android.media.browse.MediaBrowserService"/> 316 </intent-filter> 317 </service> 318 319 <activity android:name=".BluetoothPrefs" 320 android:exported="@bool/profile_supported_a2dp_sink" 321 android:enabled="@bool/profile_supported_a2dp_sink"> 322 <intent-filter> 323 <action android:name="android.intent.action.APPLICATION_PREFERENCES"/> 324 </intent-filter> 325 </activity> 326 327 <service android:process="@string/process" 328 android:name=".avrcp.AvrcpTargetService" 329 android:enabled="@bool/profile_supported_avrcp_target" 330 android:exported="true"> 331 <intent-filter> 332 <action android:name="android.bluetooth.IBluetoothAvrcp"/> 333 </intent-filter> 334 </service> 335 <service android:process="@string/process" 336 android:name=".avrcpcontroller.AvrcpControllerService" 337 android:enabled="@bool/profile_supported_avrcp_controller" 338 android:exported="true"> 339 <intent-filter> 340 <action android:name="android.bluetooth.IBluetoothAvrcpController"/> 341 </intent-filter> 342 </service> 343 <provider android:process="@string/process" 344 android:name=".avrcpcontroller.AvrcpCoverArtProvider" 345 android:authorities="com.android.bluetooth.avrcpcontroller.AvrcpCoverArtProvider" 346 android:enabled="@bool/avrcp_controller_enable_cover_art" 347 android:grantUriPermissions="true" 348 android:exported="true"> 349 </provider> 350 <service android:process="@string/process" 351 android:name=".hid.HidHostService" 352 android:enabled="@bool/profile_supported_hid_host" 353 android:exported="true"> 354 <intent-filter> 355 <action android:name="android.bluetooth.IBluetoothHidHost"/> 356 </intent-filter> 357 </service> 358 <service android:process="@string/process" 359 android:name=".hid.HidDeviceService" 360 android:enabled="@bool/profile_supported_hid_device" 361 android:exported="true"> 362 <intent-filter> 363 <action android:name="android.bluetooth.IBluetoothHidDevice"/> 364 </intent-filter> 365 </service> 366 <service android:process="@string/process" 367 android:name=".pan.PanService" 368 android:enabled="@bool/profile_supported_pan" 369 android:exported="true"> 370 <intent-filter> 371 <action android:name="android.bluetooth.IBluetoothPan"/> 372 </intent-filter> 373 </service> 374 <service android:process="@string/process" 375 android:name=".hfpclient.HeadsetClientService" 376 android:enabled="@bool/profile_supported_hfpclient" 377 android:exported="true"> 378 <intent-filter> 379 <action android:name="android.bluetooth.IBluetoothHeadsetClient"/> 380 </intent-filter> 381 </service> 382 <service android:process="@string/process" 383 android:name=".hfpclient.connserv.HfpClientConnectionService" 384 android:permission="android.permission.BIND_CONNECTION_SERVICE" 385 android:enabled="@bool/hfp_client_connection_service_enabled" 386 android:exported="true"> 387 <intent-filter> 388 <!-- Mechanism for Telecom stack to connect --> 389 <action android:name="android.telecom.ConnectionService"/> 390 </intent-filter> 391 </service> 392 <service android:process="@string/process" 393 android:name=".pbapclient.PbapClientService" 394 android:enabled="@bool/profile_supported_pbapclient" 395 android:exported="true"> 396 <intent-filter> 397 <action android:name="android.bluetooth.IBluetoothPbapClient"/> 398 </intent-filter> 399 </service> 400 <service android:process="@string/process" 401 android:name=".hearingaid.HearingAidService" 402 android:exported="true"> 403 <intent-filter> 404 <action android:name="android.bluetooth.IBluetoothHearingAid"/> 405 </intent-filter> 406 </service> 407 <!-- Authenticator for PBAP account. --> 408 <service android:process="@string/process" 409 android:name=".pbapclient.AuthenticationService" 410 android:exported="true" 411 android:enabled="@bool/profile_supported_pbapclient"> 412 <intent-filter> 413 <action android:name="android.accounts.AccountAuthenticator"/> 414 </intent-filter> 415 <meta-data android:name="android.accounts.AccountAuthenticator" 416 android:resource="@xml/authenticator"/> 417 </service> 418 </application> 419</manifest> 420