Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a1b53730 authored by Rahul Arya's avatar Rahul Arya Committed by Automerger Merge Worker
Browse files

Merge "Disable Database Hash read for Eero devices" am: 60df9674

parents 92f2e915 60df9674
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@
#include "btif/include/core_callbacks.h"
#include "btif/include/stack_manager.h"
#include "device/include/controller.h"
#include "device/include/interop.h"
#include "main/shim/dumpsys.h"
#include "osi/include/allocator.h"
#include "osi/include/log.h"
@@ -816,6 +817,18 @@ void bta_gattc_start_discover(tBTA_GATTC_CLCB* p_clcb,
        p_clcb->p_srcb->srvc_hdl_db_hash = false;
      }

      // Some LMP 5.2 devices also don't support robust caching. This workaround
      // conditionally disables the feature based on a combination of LMP
      // version and OUI prefix.
      if (lmp_version < 0x0c &&
          interop_match_addr(INTEROP_DISABLE_ROBUST_CACHING, &p_clcb->bda)) {
        LOG_WARN(
            "Device LMP version 0x%02x <= Bluetooth 5.2 and MAC addr on "
            "interop list, skipping robust caching",
            lmp_version);
        p_clcb->p_srcb->srvc_hdl_db_hash = false;
      }

      /* read db hash if db hash characteristic exists */
      if (bta_gattc_is_robust_caching_enabled() &&
          p_clcb->p_srcb->srvc_hdl_db_hash &&
+36 −1
Original line number Diff line number Diff line
@@ -808,3 +808,38 @@ fc:35:e6 = Address_Based
# HFP AT+BIND missing
[INTEROP_SLC_SKIP_BIND_COMMAND]
94:b2:cc:30 = Address_Based

# Some remote devices have LMP version in [5.0, 5.2] but do not support robust caching
# or correctly response with an error. We disable the database hash lookup for such devices.
[INTEROP_DISABLE_ROBUST_CACHING]
08:9b:f1 = Address_Based
20:be:cd = Address_Based
30:34:22 = Address_Based
3c:5c:f1 = Address_Based
40:47:5e = Address_Based
50:27:a9 = Address_Based
64:97:14 = Address_Based
64:c2:69 = Address_Based
68:4a:76 = Address_Based
6c:ae:f6 = Address_Based
78:76:89 = Address_Based
78:d6:d6 = Address_Based
84:70:d7 = Address_Based
98:ed:7e = Address_Based
9c:0b:05 = Address_Based
9c:57:bc = Address_Based
9c:a5:70 = Address_Based
a0:8e:24 = Address_Based
ac:ec:85 = Address_Based
b4:20:46 = Address_Based
b4:b9:e6 = Address_Based
c0:36:53 = Address_Based
c4:f1:74 = Address_Based
c8:b8:2f = Address_Based
c8:e3:06 = Address_Based
d4:05:de = Address_Based
d4:3f:32 = Address_Based
ec:74:27 = Address_Based
f0:21:e0 = Address_Based
f0:b6:61 = Address_Based
fc:3f:a6 = Address_Based
+5 −0
Original line number Diff line number Diff line
@@ -321,6 +321,11 @@ typedef enum {
  // during connection.
  INTEROP_DISABLE_ROLE_SWITCH_DURING_CONNECTION,

  // Some remote devices have LMP version in[5.0, 5.2] but do not support robust
  // caching or correctly response with an error. We disable the database hash
  // lookup for such devices.
  INTEROP_DISABLE_ROBUST_CACHING,

  INTEROP_HFP_1_7_ALLOWLIST,
  END_OF_INTEROP_LIST
} interop_feature_t;
+1 −0
Original line number Diff line number Diff line
@@ -379,6 +379,7 @@ static const char* interop_feature_string_(const interop_feature_t feature) {
    CASE_RETURN_STR(INTEROP_DISABLE_AVDTP_SUSPEND)
    CASE_RETURN_STR(INTEROP_SLC_SKIP_BIND_COMMAND)
    CASE_RETURN_STR(INTEROP_AVRCP_1_3_ONLY)
    CASE_RETURN_STR(INTEROP_DISABLE_ROBUST_CACHING);
    CASE_RETURN_STR(INTEROP_HFP_1_7_ALLOWLIST);
  }
  return UNKNOWN_INTEROP_FEATURE;