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