Loading system/device/fuzzer/README.md +1 −1 Original line number Diff line number Diff line Loading @@ -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. Loading system/device/fuzzer/btdevice_esco_fuzzer.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -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, Loading system/device/include/interop.h +4 −1 Original line number Diff line number Diff line Loading @@ -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 Loading system/device/include/interop_database.h +3 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading system/device/src/interop.cc +2 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
system/device/fuzzer/README.md +1 −1 Original line number Diff line number Diff line Loading @@ -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. Loading
system/device/fuzzer/btdevice_esco_fuzzer.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -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, Loading
system/device/include/interop.h +4 −1 Original line number Diff line number Diff line Loading @@ -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 Loading
system/device/include/interop_database.h +3 −0 Original line number Diff line number Diff line Loading @@ -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 { Loading
system/device/src/interop.cc +2 −1 Original line number Diff line number Diff line Loading @@ -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