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

Commit 64b45613 authored by kuanyuhuang's avatar kuanyuhuang Committed by Automerger Merge Worker
Browse files

Add BMW carkit interop avrcp 1.3 only am: c6cd9e20

parents 01b64bc5 c6cd9e20
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -14,7 +14,7 @@ Fuzzer assigns values to the following parameters to pass on to libbtdevice:

| Parameter| Valid Values| Configured Value|
|------------- |-------------| ----- |
| `interopFeature` | 0.`INTEROP_DISABLE_LE_SECURE_CONNECTIONS` 1.`INTEROP_AUTO_RETRY_PAIRING` 2.`INTEROP_DISABLE_ABSOLUTE_VOLUME` 3.`INTEROP_DISABLE_AUTO_PAIRING` 4.`INTEROP_KEYBOARD_REQUIRES_FIXED_PIN` 5.`INTEROP_2MBPS_LINK_ONLY` 6.`INTEROP_HID_PREF_CONN_SUP_TIMEOUT_3S` 7.`INTEROP_GATTC_NO_SERVICE_CHANGED_IND` 8.`INTEROP_DISABLE_AVDTP_RECONFIGURE` 9.`INTEROP_DYNAMIC_ROLE_SWITCH` 10.`INTEROP_DISABLE_ROLE_SWITCH` 11.`INTEROP_HID_HOST_LIMIT_SNIFF_INTERVAL` 12.`INTEROP_DISABLE_NAME_REQUEST` 13.`INTEROP_AVRCP_1_4_ONLY` 14.`INTEROP_DISABLE_SNIFF` 15.`INTEROP_DISABLE_AVDTP_SUSPEND`| Value obtained from FuzzedDataProvider |
| `interopFeature` | 0.`INTEROP_DISABLE_LE_SECURE_CONNECTIONS` 1.`INTEROP_AUTO_RETRY_PAIRING` 2.`INTEROP_DISABLE_ABSOLUTE_VOLUME` 3.`INTEROP_DISABLE_AUTO_PAIRING` 4.`INTEROP_KEYBOARD_REQUIRES_FIXED_PIN` 5.`INTEROP_2MBPS_LINK_ONLY` 6.`INTEROP_HID_PREF_CONN_SUP_TIMEOUT_3S` 7.`INTEROP_GATTC_NO_SERVICE_CHANGED_IND` 8.`INTEROP_DISABLE_AVDTP_RECONFIGURE` 9.`INTEROP_DYNAMIC_ROLE_SWITCH` 10.`INTEROP_DISABLE_ROLE_SWITCH` 11.`INTEROP_HID_HOST_LIMIT_SNIFF_INTERVAL` 12.`INTEROP_DISABLE_NAME_REQUEST` 13.`INTEROP_AVRCP_1_4_ONLY` 14.`INTEROP_DISABLE_SNIFF` 15.`INTEROP_DISABLE_AVDTP_SUSPEND` 16.`INTEROP_SLC_SKIP_BIND_COMMAND` 17.`INTEROP_AVRCP_1_3_ONLY`| Value obtained from FuzzedDataProvider |
| `escoCodec` | 0.`SCO_CODEC_CVSD_D1` 1.`ESCO_CODEC_CVSD_S3` 2.`ESCO_CODEC_CVSD_S4` 3.`ESCO_CODEC_MSBC_T1` 4.`ESCO_CODEC_MSBC_T2`| Value obtained from FuzzedDataProvider |
This also ensures that the plugins are always deterministic for any given input.

+2 −0
Original line number Diff line number Diff line
@@ -41,6 +41,8 @@ constexpr interop_feature_t kInteropFeature[] = {
    interop_feature_t::INTEROP_AVRCP_1_4_ONLY,
    interop_feature_t::INTEROP_DISABLE_SNIFF,
    interop_feature_t::INTEROP_DISABLE_AVDTP_SUSPEND,
    interop_feature_t::INTEROP_SLC_SKIP_BIND_COMMAND,
    interop_feature_t::INTEROP_AVRCP_1_3_ONLY,
};
constexpr esco_codec_t kEscoCodec[] = {
    esco_codec_t::SCO_CODEC_CVSD_D1,  esco_codec_t::ESCO_CODEC_CVSD_S3,
+4 −1
Original line number Diff line number Diff line
@@ -115,7 +115,10 @@ typedef enum {

  // Some car kits do not send the AT+BIND command while establishing the SLC
  // which causes an HFP profile connection failure
  INTEROP_SLC_SKIP_BIND_COMMAND
  INTEROP_SLC_SKIP_BIND_COMMAND,

  // Respond AVRCP profile version only 1.3 for some device.
  INTEROP_AVRCP_1_3_ONLY
} interop_feature_t;

// Check if a given |addr| matches a known interoperability workaround as
+3 −0
Original line number Diff line number Diff line
@@ -187,6 +187,9 @@ static const interop_addr_entry_t interop_addr_database[] = {

    // Toyota Camry 2018 Carkit HFP AT+BIND missing
    {{{0x94, 0xb2, 0xcc, 0x30, 0, 0}}, 4, INTEROP_SLC_SKIP_BIND_COMMAND},

    // BMW Carkit
    {{{0x00, 0x0a, 0x08, 0, 0, 0}}, 3, INTEROP_AVRCP_1_3_ONLY},
};

typedef struct {
+2 −1
Original line number Diff line number Diff line
@@ -137,7 +137,8 @@ static const char* interop_feature_string_(const interop_feature_t feature) {
    CASE_RETURN_STR(INTEROP_AVRCP_1_4_ONLY)
    CASE_RETURN_STR(INTEROP_DISABLE_SNIFF)
    CASE_RETURN_STR(INTEROP_DISABLE_AVDTP_SUSPEND)
    CASE_RETURN_STR(INTEROP_SLC_SKIP_BIND_COMMAND);
    CASE_RETURN_STR(INTEROP_SLC_SKIP_BIND_COMMAND)
    CASE_RETURN_STR(INTEROP_AVRCP_1_3_ONLY);
  }

  return "UNKNOWN";
Loading