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

Commit 60df9674 authored by Rahul Arya's avatar Rahul Arya Committed by Gerrit Code Review
Browse files

Merge "Disable Database Hash read for Eero devices"

parents 6591cccb df2b4c53
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;