blob: 8ed18e2794f537d64e17000eb95616287df40892 [file] [log] [blame]
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.bluetooth"
android:sharedUserId="android.uid.bluetooth">
<!-- Allows access to the Bluetooth Share Manager -->
<permission android:name="android.permission.ACCESS_BLUETOOTH_SHARE"
android:label="@string/permlab_bluetoothShareManager"
android:description="@string/permdesc_bluetoothShareManager"
android:protectionLevel="signature|privileged"/>
<!-- Allows temporarily acceptlisting Bluetooth addresses for sharing -->
<permission android:name="com.android.permission.ALLOWLIST_BLUETOOTH_DEVICE"
android:label="@string/permlab_bluetoothAcceptlist"
android:description="@string/permdesc_bluetoothAcceptlist"
android:protectionLevel="signature|privileged"/>
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED"/>
<uses-permission android:name="android.permission.ACCESS_BLUETOOTH_SHARE"/>
<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.BLUETOOTH"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADMIN"/>
<uses-permission android:name="android.permission.BLUETOOTH_ADVERTISE"/>
<uses-permission android:name="android.permission.BLUETOOTH_CONNECT"/>
<uses-permission android:name="android.permission.BLUETOOTH_SCAN"/>
<uses-permission android:name="android.permission.BLUETOOTH_PRIVILEGED"/>
<uses-permission android:name="android.permission.BLUETOOTH_MAP"/>
<uses-permission android:name="android.permission.CONTROL_INCALL_EXPERIENCE" />
<uses-permission android:name="android.permission.WAKE_LOCK"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.READ_CONTACTS"/>
<uses-permission android:name="android.permission.WRITE_CONTACTS"/>
<uses-permission android:name="android.permission.READ_CALL_LOG"/>
<uses-permission android:name="android.permission.WRITE_CALL_LOG"/>
<uses-permission android:name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<uses-permission android:name="android.permission.LISTEN_ALWAYS_REPORTED_SIGNAL_STRENGTH"/>
<uses-permission android:name="android.permission.WRITE_SETTINGS"/>
<uses-permission android:name="android.permission.NFC_HANDOVER_STATUS"/>
<uses-permission android:name="android.permission.WRITE_SECURE_SETTINGS"/>
<uses-permission android:name="android.permission.WRITE_APN_SETTINGS"/>
<uses-permission android:name="android.permission.NET_ADMIN"/>
<uses-permission android:name="android.permission.CALL_PRIVILEGED"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_SETTINGS"/>
<uses-permission android:name="android.permission.NET_TUNNELING"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CHANGE_NETWORK_STATE"/>
<uses-permission android:name="android.permission.CONNECTIVITY_INTERNAL"/>
<uses-permission android:name="android.permission.READ_DEVICE_CONFIG"/>
<uses-permission android:name="android.permission.NETWORK_FACTORY"/>
<uses-permission android:name="android.permission.TETHER_PRIVILEGED"/>
<uses-permission android:name="android.permission.MODIFY_PHONE_STATE"/>
<uses-permission android:name="android.permission.BLUETOOTH_STACK"/>
<uses-permission android:name="android.permission.INTERACT_ACROSS_USERS"/>
<uses-permission android:name="android.permission.MANAGE_USERS"/>
<uses-permission android:name="android.permission.GET_ACCOUNTS"/>
<uses-permission android:name="android.permission.RECEIVE_SMS"/>
<uses-permission android:name="android.permission.SEND_SMS"/>
<uses-permission android:name="android.permission.READ_SMS"/>
<uses-permission android:name="android.permission.WRITE_SMS"/>
<uses-permission android:name="android.permission.MEDIA_CONTENT_CONTROL"/>
<uses-permission android:name="android.permission.UPDATE_APP_OPS_STATS"/>
<uses-permission android:name="android.permission.MANAGE_APP_OPS_MODES"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.DEVICE_POWER"/>
<uses-permission android:name="android.permission.REAL_GET_TASKS"/>
<uses-permission android:name="android.permission.MODIFY_AUDIO_ROUTING"/>
<uses-permission android:name="android.permission.UPDATE_DEVICE_STATS"/>
<uses-permission android:name="android.permission.PACKAGE_USAGE_STATS"/>
<uses-permission android:name="android.permission.QUERY_ALL_PACKAGES"/>
<uses-permission android:name="android.permission.MANAGE_COMPANION_DEVICES"/>
<uses-permission android:name="android.permission.START_FOREGROUND_SERVICES_FROM_BACKGROUND"/>
<uses-permission android:name="android.permission.HIDE_OVERLAY_WINDOWS"/>
<uses-permission android:name="android.permission.QUERY_AUDIO_STATE"/>
<uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
<uses-sdk android:minSdkVersion="14"/>
<!-- For PBAP Owner Vcard Info -->
<uses-permission android:name="android.permission.READ_PROFILE"/>
<application android:name="com.android.bluetooth.btservice.AdapterApp"
android:icon="@mipmap/bt_share"
android:persistent="false"
android:label="@string/app_name"
android:supportsRtl="true"
android:usesCleartextTraffic="false"
android:directBootAware="true"
android:defaultToDeviceProtectedStorage="true"
android:memtagMode="async">
<service android:process="@string/process"
android:name="com.android.bluetooth.btservice.AdapterService"
android:exported="true"
android:permission="android.permission.ACCESS_BLUETOOTH_SHARE">
<intent-filter>
<action android:name="android.bluetooth.IBluetooth"/>
</intent-filter>
</service>
<!-- Advanced Audio Distribution Profile (A2DP) source Profile Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.a2dp.A2dpService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothA2dp"/>
</intent-filter>
</service>
<!-- Advanced Audio Distribution Profile (A2DP) sink Profile Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.a2dpsink.A2dpSinkService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothA2dpSink"/>
</intent-filter>
</service>
<!-- Android Audio Support for Hearing Aids (ASHA) central Profile Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.hearingaid.HearingAidService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothHearingAid"/>
</intent-filter>
</service>
<!-- Audio/Video Remote Control Profile (AVRCP) target Profile Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.avrcp.AvrcpTargetService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothAvrcp"/>
</intent-filter>
</service>
<!-- Audio/Video Remote Control Profile (AVRCP) controller Profile Service and owned Services, Providers and Activiies -->
<service android:process="@string/process"
android:name="com.android.bluetooth.avrcpcontroller.AvrcpControllerService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothAvrcpController"/>
</intent-filter>
</service>
<service android:process="@string/process"
android:name="com.android.bluetooth.avrcpcontroller.BluetoothMediaBrowserService"
android:enabled="true"
android:exported="true"
android:label="@string/a2dp_sink_mbs_label">
<intent-filter>
<action android:name="android.media.browse.MediaBrowserService"/>
</intent-filter>
</service>
<provider android:process="@string/process"
android:name="com.android.bluetooth.avrcpcontroller.AvrcpCoverArtProvider"
android:authorities="com.android.bluetooth.avrcpcontroller.AvrcpCoverArtProvider"
android:enabled="false"
android:grantUriPermissions="true"
android:exported="true">
</provider>
<activity android:name="com.android.bluetooth.BluetoothPrefs"
android:exported="true"
android:enabled="false">
<intent-filter>
<action android:name="android.intent.action.APPLICATION_PREFERENCES"/>
</intent-filter>
</activity>
<!-- Basic Audio Profile (BAP) Profile Service -->
<service
android:process="@string/process"
android:name="com.android.bluetooth.le_audio.LeAudioService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothLeAudio" />
</intent-filter>
</service>
<!-- Basic Audio Profile (BAP) Broadcast Assistant Profle Service -->
<service
android:process="@string/process"
android:name = "com.android.bluetooth.bass_client.BassClientService"
android:enabled="true"
android:exported = "true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothLeBroadcastAssistant" />
</intent-filter>
</service>
<!-- Battery Service (BAS) Client Profle Service -->
<service
android:process="@string/process"
android:name="com.android.bluetooth.bas.BatteryService"
android:enabled="true"
android:exported = "true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothBattery" />
</intent-filter>
</service>
<!-- Coordinated Set Identification Profile (CSIP) set coordinator Profile Service -->
<service
android:process="@string/process"
android:name="com.android.bluetooth.csip.CsipSetCoordinatorService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothCsipSetCoordinator" />
</intent-filter>
</service>
<!-- Generic Attribute (GATT) Profile Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.gatt.GattService"
android:enabled="true"
android:exported="true"
android:permission="android.permission.ACCESS_BLUETOOTH_SHARE">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothGatt"/>
</intent-filter>
</service>
<!-- Hearing Aid Profile (HAP) client Profile Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.hap.HapClientService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothHapClient"/>
</intent-filter>
</service>
<!-- Hands-Free Profile (HFP) AG/server Profile Service and owned Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.hfp.HeadsetService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothHeadset"/>
</intent-filter>
</service>
<service
android:name="com.android.bluetooth.telephony.BluetoothInCallService"
android:permission="android.permission.BIND_INCALL_SERVICE"
android:process="@string/process"
android:enabled="false"
android:exported="true">
<meta-data android:name="android.telecom.INCLUDE_SELF_MANAGED_CALLS"
android:value="true" />
<intent-filter>
<action android:name="android.telecom.InCallService"/>
</intent-filter>
</service>
<!-- Hands-Free HF/Client Profile Service and owned Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.hfpclient.HeadsetClientService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothHeadsetClient"/>
</intent-filter>
</service>
<service android:process="@string/process"
android:name="com.android.bluetooth.hfpclient.HfpClientConnectionService"
android:permission="android.permission.BIND_CONNECTION_SERVICE"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.telecom.ConnectionService"/>
</intent-filter>
</service>
<!-- Human Interface Device (HID) host Profile Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.hid.HidHostService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothHidHost"/>
</intent-filter>
</service>
<!-- Human Interface Device (HID) device Profile Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.hid.HidDeviceService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothHidDevice"/>
</intent-filter>
</service>
<!-- Message Access Profile (MAP) server Profile Service and owned Provider and Activiie -->
<service android:process="@string/process"
android:name="com.android.bluetooth.map.BluetoothMapService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothMap"/>
<action android:name="android.btmap.intent.action.SHOW_MAPS_SETTINGS"/>
<action android:name="com.android.bluetooth.map.USER_CONFIRM_TIMEOUT"/>
</intent-filter>
</service>
<activity android:name="com.android.bluetooth.map.BluetoothMapSettings"
android:process="@string/process"
android:label="@string/bluetooth_map_settings_title"
android:excludeFromRecents="true"
android:configChanges="orientation|keyboardHidden"
android:enabled="false">
</activity>
<provider android:name="com.android.bluetooth.map.MmsFileProvider"
android:authorities="com.android.bluetooth.map.MmsFileProvider"
android:enabled="false"
android:grantUriPermissions="true"
android:exported="false">
</provider>
<!-- Message Access Profile (MAP) client Profile Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.mapclient.MapClientService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothMapClient"/>
</intent-filter>
</service>
<!-- Media Control Profile (MCP) server Profile Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.mcp.McpService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothMcpServiceManager" />
</intent-filter>
</service>
<!-- Object Push Profile (OPP) Profile Service and owned Receives, Providers and Activiies -->
<service android:process="@string/process"
android:name="com.android.bluetooth.opp.BluetoothOppService"
android:permission="android.permission.ACCESS_BLUETOOTH_SHARE"
android:enabled="true"
android:exported="true"/>
<provider android:name="com.android.bluetooth.opp.BluetoothOppProvider"
android:authorities="com.android.bluetooth.opp"
android:enabled="false"
android:exported="true"
android:process="@string/process">
<path-permission android:pathPrefix="/btopp"
android:permission="android.permission.ACCESS_BLUETOOTH_SHARE"/>
</provider>
<provider android:name="com.android.bluetooth.opp.BluetoothOppFileProvider"
android:authorities="com.android.bluetooth.opp.fileprovider"
android:grantUriPermissions="true"
android:enabled="false"
android:exported="false">
<meta-data android:name="android.support.FILE_PROVIDER_PATHS"
android:resource="@xml/file_paths"/>
</provider>
<receiver android:process="@string/process"
android:name="com.android.bluetooth.opp.BluetoothOppReceiver"
android:exported="true"
android:enabled="false">
<intent-filter>
<action android:name="android.btopp.intent.action.OPEN_RECEIVED_FILES"/>
</intent-filter>
</receiver>
<receiver android:process="@string/process"
android:name="com.android.bluetooth.opp.BluetoothOppHandoverReceiver"
android:permission="com.android.permission.ALLOWLIST_BLUETOOTH_DEVICE"
android:exported="true"
android:enabled="false">
<intent-filter>
<action android:name="android.btopp.intent.action.ACCEPTLIST_DEVICE"/>
<action android:name="android.btopp.intent.action.STOP_HANDOVER_TRANSFER"/>
</intent-filter>
<intent-filter>
<action android:name="android.nfc.handover.intent.action.HANDOVER_SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="*/*"/>
</intent-filter>
<intent-filter>
<action android:name="android.nfc.handover.intent.action.HANDOVER_SEND_MULTIPLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="*/*"/>
</intent-filter>
</receiver>
<activity android:name="com.android.bluetooth.opp.BluetoothOppLauncherActivity"
android:process="@string/process"
android:theme="@android:style/Theme.Material.Light.Dialog"
android:label="@string/bt_share_picker_label"
android:enabled="false"
android:exported="true">
<intent-filter>
<action android:name="android.intent.action.SEND"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="image/*"/>
<data android:mimeType="video/*"/>
<data android:mimeType="audio/*"/>
<data android:mimeType="text/x-vcard"/>
<data android:mimeType="text/x-vcalendar"/>
<data android:mimeType="text/calendar"/>
<data android:mimeType="text/plain"/>
<data android:mimeType="text/html"/>
<data android:mimeType="text/xml"/>
<data android:mimeType="application/zip"/>
<data android:mimeType="application/vnd.ms-excel"/>
<data android:mimeType="application/msword"/>
<data android:mimeType="application/vnd.ms-powerpoint"/>
<data android:mimeType="application/pdf"/>
<data android:mimeType="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"/>
<data android:mimeType="application/vnd.openxmlformats-officedocument.wordprocessingml.document"/>
<data android:mimeType="application/vnd.openxmlformats-officedocument.presentationml.presentation"/>
<data android:mimeType="application/x-hwp"/>
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.SEND_MULTIPLE"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="image/*"/>
<data android:mimeType="video/*"/>
<data android:mimeType="x-mixmedia/*"/>
<data android:mimeType="text/x-vcard"/>
</intent-filter>
<intent-filter>
<action android:name="android.btopp.intent.action.OPEN"/>
<category android:name="android.intent.category.DEFAULT"/>
<data android:mimeType="vnd.android.cursor.item/vnd.android.btopp"/>
</intent-filter>
</activity>
<activity android:name="com.android.bluetooth.opp.BluetoothOppBtEnableActivity"
android:process="@string/process"
android:excludeFromRecents="true"
android:theme="@style/dialog"
android:enabled="false">
</activity>
<activity android:name="com.android.bluetooth.opp.BluetoothOppBtErrorActivity"
android:process="@string/process"
android:excludeFromRecents="true"
android:theme="@style/dialog"
android:enabled="false">>
</activity>
<activity android:name="com.android.bluetooth.opp.BluetoothOppBtEnablingActivity"
android:process="@string/process"
android:excludeFromRecents="true"
android:theme="@style/dialog"
android:enabled="false">
</activity>
<activity android:name="com.android.bluetooth.opp.BluetoothOppIncomingFileConfirmActivity"
android:process="@string/process"
android:excludeFromRecents="true"
android:theme="@style/dialog"
android:enabled="false">
</activity>
<activity android:name="com.android.bluetooth.opp.BluetoothOppTransferActivity"
android:process="@string/process"
android:excludeFromRecents="true"
android:theme="@style/dialog"
android:enabled="false">
</activity>
<activity android:name="com.android.bluetooth.opp.BluetoothOppTransferHistory"
android:process="@string/process"
android:label=""
android:excludeFromRecents="true"
android:configChanges="orientation|keyboardHidden"
android:enabled="false"
android:theme="@android:style/Theme.DeviceDefault.Settings"
android:exported="true">
<intent-filter>
<action android:name="com.android.bluetooth.action.TransferHistory"/>
<category android:name="android.intent.category.DEFAULT"/>
</intent-filter>
</activity>
<!-- Personal Area Network (PAN) Profile Service -->
<service
android:process="@string/process"
android:name="com.android.bluetooth.pan.PanService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothPan"/>
</intent-filter>
</service>
<!-- Phonebook Access Profile (PBAP) server Profile Service and owned Activiie -->
<service android:process="@string/process"
android:permission="android.permission.BLUETOOTH_PRIVILEGED"
android:name="com.android.bluetooth.pbap.BluetoothPbapService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothPbap"/>
</intent-filter>
</service>
<activity android:name="com.android.bluetooth.pbap.BluetoothPbapActivity"
android:process="@string/process"
android:excludeFromRecents="true"
android:theme="@style/dialog"
android:enabled="false">
</activity>
<!-- Phonebook Access Profile (PBAP) client Profile Service and owned Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.pbapclient.PbapClientService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothPbapClient"/>
</intent-filter>
</service>
<service android:process="@string/process"
android:name="com.android.bluetooth.pbapclient.AuthenticationService"
android:enabled="false"
android:exported="true">
<intent-filter>
<action android:name="android.accounts.AccountAuthenticator"/>
</intent-filter>
<meta-data android:name="android.accounts.AccountAuthenticator"
android:resource="@xml/authenticator"/>
</service>
<!-- SIM Access Profile (SAP) server Profile Service -->
<service android:process="@string/process"
android:name="com.android.bluetooth.sap.SapService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothSap"/>
</intent-filter>
</service>
<!-- Telephony Bearer Service (TBS) server Profile Service -->
<service
android:process="@string/process"
android:name="com.android.bluetooth.tbs.TbsService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothLeCallControl" />
</intent-filter>
</service>
<!-- Volume Control Profile (VCP) server Profile Service -->
<service
android:process="@string/process"
android:name="com.android.bluetooth.vc.VolumeControlService"
android:enabled="true"
android:exported="true">
<intent-filter>
<action android:name="android.bluetooth.IBluetoothVolumeControl" />
</intent-filter>
</service>
</application>
</manifest>