Loading system/binder/android/bluetooth/IBluetooth.aidl +43 −36 Original line number Diff line number Diff line Loading @@ -42,51 +42,53 @@ interface IBluetooth int getState(); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean enable(boolean quietMode); boolean enable(boolean quietMode, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean disable(); boolean disable(in AttributionSource attributionSource); @UnsupportedAppUsage @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.LOCAL_MAC_ADDRESS})") String getAddress(); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.LOCAL_MAC_ADDRESS})") String getAddressWithAttribution(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") ParcelUuid[] getUuids(); ParcelUuid[] getUuids(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean setName(in String name); boolean setName(in String name, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") String getName(); String getName(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)") int getNameLengthForAdvertise(); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") BluetoothClass getBluetoothClass(); BluetoothClass getBluetoothClass(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setBluetoothClass(in BluetoothClass bluetoothClass); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getIoCapability(); int getIoCapability(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setIoCapability(int capability); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getLeIoCapability(); int getLeIoCapability(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setLeIoCapability(int capability); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") int getScanMode(); int getScanMode(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") boolean setScanMode(int mode, int duration); boolean setScanMode(int mode, int duration, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") int getDiscoverableTimeout(); int getDiscoverableTimeout(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") boolean setDiscoverableTimeout(int timeout); boolean setDiscoverableTimeout(int timeout, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") boolean startDiscovery(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") boolean cancelDiscovery(); boolean cancelDiscovery(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") boolean isDiscovering(); boolean isDiscovering(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") long getDiscoveryEndMillis(); Loading @@ -96,56 +98,61 @@ interface IBluetooth int getProfileConnectionState(int profile); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") BluetoothDevice[] getBondedDevices(); BluetoothDevice[] getBondedDevices(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean createBond(in BluetoothDevice device, in int transport, in OobData p192Data, in OobData p256Data, String packageName); in OobData p256Data, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean cancelBondProcess(in BluetoothDevice device); boolean cancelBondProcess(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean removeBond(in BluetoothDevice device); boolean removeBond(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getBondState(in BluetoothDevice device); int getBondState(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean isBondingInitiatedLocally(in BluetoothDevice device); boolean isBondingInitiatedLocally(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission") long getSupportedProfiles(); @UnsupportedAppUsage @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getConnectionState(in BluetoothDevice device); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") String getRemoteName(in BluetoothDevice device); int getConnectionStateWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getRemoteType(in BluetoothDevice device); String getRemoteName(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getRemoteType(in BluetoothDevice device, in AttributionSource attributionSource); @UnsupportedAppUsage @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") String getRemoteAlias(in BluetoothDevice device); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean setRemoteAlias(in BluetoothDevice device, in String name, in String callingPackage); String getRemoteAliasWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean setRemoteAlias(in BluetoothDevice device, in String name, in String callingPackage, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getRemoteClass(in BluetoothDevice device); int getRemoteClass(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") ParcelUuid[] getRemoteUuids(in BluetoothDevice device); ParcelUuid[] getRemoteUuids(in BluetoothDevice device, in AttributionSource attributionSource); @UnsupportedAppUsage @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean fetchRemoteUuids(in BluetoothDevice device); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean sdpSearch(in BluetoothDevice device, in ParcelUuid uuid); boolean fetchRemoteUuidsWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean sdpSearch(in BluetoothDevice device, in ParcelUuid uuid, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getBatteryLevel(in BluetoothDevice device); int getBatteryLevel(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getMaxConnectedAudioDevices(); int getMaxConnectedAudioDevices(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode); boolean setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[] passkey); boolean setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[] passkey, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setPairingConfirmation(in BluetoothDevice device, boolean accept); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getPhonebookAccessPermission(in BluetoothDevice device); int getPhonebookAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setSilenceMode(in BluetoothDevice device, boolean silence); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") Loading @@ -153,11 +160,11 @@ interface IBluetooth @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setPhonebookAccessPermission(in BluetoothDevice device, int value); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getMessageAccessPermission(in BluetoothDevice device); int getMessageAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setMessageAccessPermission(in BluetoothDevice device, int value); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getSimAccessPermission(in BluetoothDevice device); int getSimAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setSimAccessPermission(in BluetoothDevice device, int value); Loading Loading @@ -228,7 +235,7 @@ interface IBluetooth @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED,android.Manifest.permission.MODIFY_PHONE_STATE})") boolean setActiveDevice(in BluetoothDevice device, in int profiles); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") List<BluetoothDevice> getMostRecentlyConnectedDevices(); List<BluetoothDevice> getMostRecentlyConnectedDevices(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED,android.Manifest.permission.MODIFY_PHONE_STATE})") boolean removeActiveDevice(in int profiles); Loading system/bta/hh/bta_hh_act.cc +15 −8 Original line number Diff line number Diff line Loading @@ -817,10 +817,12 @@ void bta_hh_open_failure(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) { void bta_hh_close_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) { tBTA_HH_CONN conn_dat; tBTA_HH_CBDATA disc_dat = {BTA_HH_OK, 0}; uint32_t reason = p_data->hid_cback.data; /* Reason for closing (32-bit) */ // TODO Fix use proper types tHID_STATUS hid_status = static_cast<tHID_STATUS>(reason); uint32_t reason = p_data->hid_cback.data; /* Reason for closing (32-bit) */ const bool l2cap_conn_fail = reason & HID_L2CAP_CONN_FAIL; const bool l2cap_req_fail = reason & HID_L2CAP_REQ_FAIL; const bool l2cap_cfg_fail = reason & HID_L2CAP_CFG_FAIL; const tHID_STATUS hid_status = static_cast<tHID_STATUS>(reason & 0xff); /* if HID_HDEV_EVT_VC_UNPLUG was received, report BTA_HH_VC_UNPLUG_EVT */ uint16_t event = p_cb->vp ? BTA_HH_VC_UNPLUG_EVT : BTA_HH_CLOSE_EVT; Loading @@ -828,6 +830,16 @@ void bta_hh_close_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) { disc_dat.handle = p_cb->hid_handle; disc_dat.status = to_bta_hh_status(p_data->hid_cback.data); std::string overlay_fail = base::StringPrintf("%s %s %s", (l2cap_conn_fail) ? "l2cap_conn_fail" : "", (l2cap_req_fail) ? "l2cap_req_fail" : "", (l2cap_cfg_fail) ? "l2cap_cfg_fail" : ""); BTM_LogHistory(kBtmLogTag, p_cb->addr, "Closed", base::StringPrintf("%s reason %s %s", (p_cb->is_le_device) ? "le" : "classic", hid_status_text(hid_status).c_str(), overlay_fail.c_str())); /* Check reason for closing */ if ((reason & (HID_L2CAP_CONN_FAIL | HID_L2CAP_REQ_FAIL)) || /* Failure to initialize connection Loading @@ -851,11 +863,6 @@ void bta_hh_close_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) { } /* otherwise report CLOSE/VC_UNPLUG event */ else { BTM_LogHistory(kBtmLogTag, p_cb->addr, "Closed", base::StringPrintf("%s reason %s", (p_cb->is_le_device) ? "le" : "classic", hid_status_text(hid_status).c_str())); /* finaliza device driver */ bta_hh_co_close(p_cb->hid_handle, p_cb->app_id); /* inform role manager */ Loading system/bta/test/common/mock_stack_acl.cc +3 −0 Original line number Diff line number Diff line Loading @@ -287,6 +287,9 @@ void acl_link_segments_xmitted(BT_HDR_RIGID* p_msg) { void acl_packets_completed(uint16_t handle, uint16_t credits) { mock_function_count_map[__func__]++; } void acl_process_supported_features(uint16_t handle, uint64_t features) { mock_function_count_map[__func__]++; } void acl_process_extended_features(uint16_t handle, uint8_t current_page_number, uint8_t max_page_number, uint64_t features) { mock_function_count_map[__func__]++; Loading system/btif/src/btif_dm.cc +5 −3 Original line number Diff line number Diff line Loading @@ -480,14 +480,16 @@ static void btif_update_remote_version_property(RawAddress* p_bd) { uint8_t lmp_ver = 0; uint16_t lmp_subver = 0; uint16_t mfct_set = 0; bool version_info_valid = false; bt_remote_version_t info; bt_status_t status; version_info_valid = CHECK(p_bd != nullptr); const bool version_info_valid = BTM_ReadRemoteVersion(*p_bd, &lmp_ver, &mfct_set, &lmp_subver); LOG_INFO("remote version info [%s]: %x, %x, %x", p_bd->ToString().c_str(), LOG_INFO("Remote version info valid:%s [%s]: %x, %x, %x", logbool(version_info_valid).c_str(), PRIVATE_ADDRESS((*p_bd)), lmp_ver, mfct_set, lmp_subver); if (version_info_valid) { Loading system/gd/hci/acl_manager/classic_acl_connection.cc +3 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,9 @@ class AclConnectionTracker : public ConnectionManagementCallbacks { connection_handle_, static_cast<uint8_t>(hci_status), lmp_version, manufacturer_name, sub_version); SAVE_OR_CALL(OnReadRemoteVersionInformationComplete, hci_status, lmp_version, manufacturer_name, sub_version); } void OnReadRemoteSupportedFeaturesComplete(uint64_t features) override { SAVE_OR_CALL(OnReadRemoteSupportedFeaturesComplete, features); } void OnReadRemoteExtendedFeaturesComplete(uint8_t page_number, uint8_t max_page_number, uint64_t features) override { SAVE_OR_CALL(OnReadRemoteExtendedFeaturesComplete, page_number, max_page_number, features); } Loading Loading
system/binder/android/bluetooth/IBluetooth.aidl +43 −36 Original line number Diff line number Diff line Loading @@ -42,51 +42,53 @@ interface IBluetooth int getState(); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean enable(boolean quietMode); boolean enable(boolean quietMode, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean disable(); boolean disable(in AttributionSource attributionSource); @UnsupportedAppUsage @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.LOCAL_MAC_ADDRESS})") String getAddress(); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.LOCAL_MAC_ADDRESS})") String getAddressWithAttribution(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") ParcelUuid[] getUuids(); ParcelUuid[] getUuids(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean setName(in String name); boolean setName(in String name, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") String getName(); String getName(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_ADVERTISE)") int getNameLengthForAdvertise(); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") BluetoothClass getBluetoothClass(); BluetoothClass getBluetoothClass(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setBluetoothClass(in BluetoothClass bluetoothClass); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getIoCapability(); int getIoCapability(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setIoCapability(int capability); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getLeIoCapability(); int getLeIoCapability(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setLeIoCapability(int capability); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") int getScanMode(); int getScanMode(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") boolean setScanMode(int mode, int duration); boolean setScanMode(int mode, int duration, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") int getDiscoverableTimeout(); int getDiscoverableTimeout(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") boolean setDiscoverableTimeout(int timeout); boolean setDiscoverableTimeout(int timeout, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") boolean startDiscovery(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") boolean cancelDiscovery(); boolean cancelDiscovery(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_SCAN)") boolean isDiscovering(); boolean isDiscovering(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") long getDiscoveryEndMillis(); Loading @@ -96,56 +98,61 @@ interface IBluetooth int getProfileConnectionState(int profile); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") BluetoothDevice[] getBondedDevices(); BluetoothDevice[] getBondedDevices(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean createBond(in BluetoothDevice device, in int transport, in OobData p192Data, in OobData p256Data, String packageName); in OobData p256Data, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean cancelBondProcess(in BluetoothDevice device); boolean cancelBondProcess(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean removeBond(in BluetoothDevice device); boolean removeBond(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getBondState(in BluetoothDevice device); int getBondState(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean isBondingInitiatedLocally(in BluetoothDevice device); boolean isBondingInitiatedLocally(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresNoPermission") long getSupportedProfiles(); @UnsupportedAppUsage @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getConnectionState(in BluetoothDevice device); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") String getRemoteName(in BluetoothDevice device); int getConnectionStateWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getRemoteType(in BluetoothDevice device); String getRemoteName(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getRemoteType(in BluetoothDevice device, in AttributionSource attributionSource); @UnsupportedAppUsage @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") String getRemoteAlias(in BluetoothDevice device); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean setRemoteAlias(in BluetoothDevice device, in String name, in String callingPackage); String getRemoteAliasWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean setRemoteAlias(in BluetoothDevice device, in String name, in String callingPackage, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getRemoteClass(in BluetoothDevice device); int getRemoteClass(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") ParcelUuid[] getRemoteUuids(in BluetoothDevice device); ParcelUuid[] getRemoteUuids(in BluetoothDevice device, in AttributionSource attributionSource); @UnsupportedAppUsage @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean fetchRemoteUuids(in BluetoothDevice device); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean sdpSearch(in BluetoothDevice device, in ParcelUuid uuid); boolean fetchRemoteUuidsWithAttribution(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean sdpSearch(in BluetoothDevice device, in ParcelUuid uuid, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getBatteryLevel(in BluetoothDevice device); int getBatteryLevel(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getMaxConnectedAudioDevices(); int getMaxConnectedAudioDevices(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode); boolean setPin(in BluetoothDevice device, boolean accept, int len, in byte[] pinCode, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") boolean setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[] passkey); boolean setPasskey(in BluetoothDevice device, boolean accept, int len, in byte[] passkey, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setPairingConfirmation(in BluetoothDevice device, boolean accept); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getPhonebookAccessPermission(in BluetoothDevice device); int getPhonebookAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setSilenceMode(in BluetoothDevice device, boolean silence); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") Loading @@ -153,11 +160,11 @@ interface IBluetooth @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setPhonebookAccessPermission(in BluetoothDevice device, int value); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getMessageAccessPermission(in BluetoothDevice device); int getMessageAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setMessageAccessPermission(in BluetoothDevice device, int value); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") int getSimAccessPermission(in BluetoothDevice device); int getSimAccessPermission(in BluetoothDevice device, in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)") boolean setSimAccessPermission(in BluetoothDevice device, int value); Loading Loading @@ -228,7 +235,7 @@ interface IBluetooth @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED,android.Manifest.permission.MODIFY_PHONE_STATE})") boolean setActiveDevice(in BluetoothDevice device, in int profiles); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)") List<BluetoothDevice> getMostRecentlyConnectedDevices(); List<BluetoothDevice> getMostRecentlyConnectedDevices(in AttributionSource attributionSource); @JavaPassthrough(annotation="@android.annotation.RequiresPermission(allOf={android.Manifest.permission.BLUETOOTH_CONNECT,android.Manifest.permission.BLUETOOTH_PRIVILEGED,android.Manifest.permission.MODIFY_PHONE_STATE})") boolean removeActiveDevice(in int profiles); Loading
system/bta/hh/bta_hh_act.cc +15 −8 Original line number Diff line number Diff line Loading @@ -817,10 +817,12 @@ void bta_hh_open_failure(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) { void bta_hh_close_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) { tBTA_HH_CONN conn_dat; tBTA_HH_CBDATA disc_dat = {BTA_HH_OK, 0}; uint32_t reason = p_data->hid_cback.data; /* Reason for closing (32-bit) */ // TODO Fix use proper types tHID_STATUS hid_status = static_cast<tHID_STATUS>(reason); uint32_t reason = p_data->hid_cback.data; /* Reason for closing (32-bit) */ const bool l2cap_conn_fail = reason & HID_L2CAP_CONN_FAIL; const bool l2cap_req_fail = reason & HID_L2CAP_REQ_FAIL; const bool l2cap_cfg_fail = reason & HID_L2CAP_CFG_FAIL; const tHID_STATUS hid_status = static_cast<tHID_STATUS>(reason & 0xff); /* if HID_HDEV_EVT_VC_UNPLUG was received, report BTA_HH_VC_UNPLUG_EVT */ uint16_t event = p_cb->vp ? BTA_HH_VC_UNPLUG_EVT : BTA_HH_CLOSE_EVT; Loading @@ -828,6 +830,16 @@ void bta_hh_close_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) { disc_dat.handle = p_cb->hid_handle; disc_dat.status = to_bta_hh_status(p_data->hid_cback.data); std::string overlay_fail = base::StringPrintf("%s %s %s", (l2cap_conn_fail) ? "l2cap_conn_fail" : "", (l2cap_req_fail) ? "l2cap_req_fail" : "", (l2cap_cfg_fail) ? "l2cap_cfg_fail" : ""); BTM_LogHistory(kBtmLogTag, p_cb->addr, "Closed", base::StringPrintf("%s reason %s %s", (p_cb->is_le_device) ? "le" : "classic", hid_status_text(hid_status).c_str(), overlay_fail.c_str())); /* Check reason for closing */ if ((reason & (HID_L2CAP_CONN_FAIL | HID_L2CAP_REQ_FAIL)) || /* Failure to initialize connection Loading @@ -851,11 +863,6 @@ void bta_hh_close_act(tBTA_HH_DEV_CB* p_cb, tBTA_HH_DATA* p_data) { } /* otherwise report CLOSE/VC_UNPLUG event */ else { BTM_LogHistory(kBtmLogTag, p_cb->addr, "Closed", base::StringPrintf("%s reason %s", (p_cb->is_le_device) ? "le" : "classic", hid_status_text(hid_status).c_str())); /* finaliza device driver */ bta_hh_co_close(p_cb->hid_handle, p_cb->app_id); /* inform role manager */ Loading
system/bta/test/common/mock_stack_acl.cc +3 −0 Original line number Diff line number Diff line Loading @@ -287,6 +287,9 @@ void acl_link_segments_xmitted(BT_HDR_RIGID* p_msg) { void acl_packets_completed(uint16_t handle, uint16_t credits) { mock_function_count_map[__func__]++; } void acl_process_supported_features(uint16_t handle, uint64_t features) { mock_function_count_map[__func__]++; } void acl_process_extended_features(uint16_t handle, uint8_t current_page_number, uint8_t max_page_number, uint64_t features) { mock_function_count_map[__func__]++; Loading
system/btif/src/btif_dm.cc +5 −3 Original line number Diff line number Diff line Loading @@ -480,14 +480,16 @@ static void btif_update_remote_version_property(RawAddress* p_bd) { uint8_t lmp_ver = 0; uint16_t lmp_subver = 0; uint16_t mfct_set = 0; bool version_info_valid = false; bt_remote_version_t info; bt_status_t status; version_info_valid = CHECK(p_bd != nullptr); const bool version_info_valid = BTM_ReadRemoteVersion(*p_bd, &lmp_ver, &mfct_set, &lmp_subver); LOG_INFO("remote version info [%s]: %x, %x, %x", p_bd->ToString().c_str(), LOG_INFO("Remote version info valid:%s [%s]: %x, %x, %x", logbool(version_info_valid).c_str(), PRIVATE_ADDRESS((*p_bd)), lmp_ver, mfct_set, lmp_subver); if (version_info_valid) { Loading
system/gd/hci/acl_manager/classic_acl_connection.cc +3 −0 Original line number Diff line number Diff line Loading @@ -146,6 +146,9 @@ class AclConnectionTracker : public ConnectionManagementCallbacks { connection_handle_, static_cast<uint8_t>(hci_status), lmp_version, manufacturer_name, sub_version); SAVE_OR_CALL(OnReadRemoteVersionInformationComplete, hci_status, lmp_version, manufacturer_name, sub_version); } void OnReadRemoteSupportedFeaturesComplete(uint64_t features) override { SAVE_OR_CALL(OnReadRemoteSupportedFeaturesComplete, features); } void OnReadRemoteExtendedFeaturesComplete(uint8_t page_number, uint8_t max_page_number, uint64_t features) override { SAVE_OR_CALL(OnReadRemoteExtendedFeaturesComplete, page_number, max_page_number, features); } Loading