Home | History | Annotate | Download | only in Bluetooth
      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