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