119e95205Sopenharmony_ci/* 219e95205Sopenharmony_ci * Copyright (C) 2021 Huawei Device Co., Ltd. 319e95205Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License"); 419e95205Sopenharmony_ci * you may not use this file except in compliance with the License. 519e95205Sopenharmony_ci * You may obtain a copy of the License at 619e95205Sopenharmony_ci * 719e95205Sopenharmony_ci * http://www.apache.org/licenses/LICENSE-2.0 819e95205Sopenharmony_ci * 919e95205Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software 1019e95205Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS, 1119e95205Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1219e95205Sopenharmony_ci * See the License for the specific language governing permissions and 1319e95205Sopenharmony_ci * limitations under the License. 1419e95205Sopenharmony_ci */ 1519e95205Sopenharmony_ci 1619e95205Sopenharmony_ci#include "compat.h" 1719e95205Sopenharmony_ci 1819e95205Sopenharmony_ci#include <algorithm> 1919e95205Sopenharmony_ci 2019e95205Sopenharmony_cinamespace OHOS { 2119e95205Sopenharmony_cinamespace bluetooth { 2219e95205Sopenharmony_ciconst std::map<CompatType, std::vector<std::string>> Compat::COMPAT_DATA = { 2319e95205Sopenharmony_ci {CompatType::COMPAT_DISABLE_BLE_SECURE_CONNECTIONS, { 2419e95205Sopenharmony_ci "08:62:66", 2519e95205Sopenharmony_ci "38:2C:4A:C9", 2619e95205Sopenharmony_ci "38:2C:4A:E6", 2719e95205Sopenharmony_ci "54:A0:50:D9", 2819e95205Sopenharmony_ci "AC:9E:17", 2919e95205Sopenharmony_ci "F0:79:59", 3019e95205Sopenharmony_ci "80:E4:DA:70", 3119e95205Sopenharmony_ci "1C:96:5A"}}, 3219e95205Sopenharmony_ci {CompatType::COMPAT_REJECT_NAME_REQUEST, { 3319e95205Sopenharmony_ci "D4:7A:E2"}}, 3419e95205Sopenharmony_ci {CompatType::COMPAT_REJECT_AUTO_PAIRING, { 3519e95205Sopenharmony_ci "34:C7:31", 3619e95205Sopenharmony_ci "00:07:04", 3719e95205Sopenharmony_ci "E0:75:0A", 3819e95205Sopenharmony_ci "Audi", 3919e95205Sopenharmony_ci "BMW", 4019e95205Sopenharmony_ci "Parrot", 4119e95205Sopenharmony_ci "Car", 4219e95205Sopenharmony_ci "NISSAN", 4319e95205Sopenharmony_ci "CAR"}}, 4419e95205Sopenharmony_ci {CompatType::COMPAT_KEYBOARD_REQUIRES_FIXED_PIN, { 4519e95205Sopenharmony_ci "00:0F:F6"}}, 4619e95205Sopenharmony_ci {CompatType::COMPAT_GATTC_NO_SERVICE_CHANGED_IND, { 4719e95205Sopenharmony_ci "Pixel C Keyboard"}}, 4819e95205Sopenharmony_ci {CompatType::COMPAT_REJECT_AVDTP_RECONFIGURE, { 4919e95205Sopenharmony_ci "00:1D:86", 5019e95205Sopenharmony_ci "KMM-BT51*HD"}}, 5119e95205Sopenharmony_ci {CompatType::COMPAT_REJECT_ABSOLUTE_VOLUME, { 5219e95205Sopenharmony_ci "44:5E:F3", 5319e95205Sopenharmony_ci "D4:9C:28", 5419e95205Sopenharmony_ci "00:24:1C", 5519e95205Sopenharmony_ci "A4:15:66", 5619e95205Sopenharmony_ci "00:26:7E", 5719e95205Sopenharmony_ci "90:03:B7", 5819e95205Sopenharmony_ci "0C:A6:94", 5919e95205Sopenharmony_ci "00:18:6B", 6019e95205Sopenharmony_ci "B8:AD:3E", 6119e95205Sopenharmony_ci "A0:E9:DB", 6219e95205Sopenharmony_ci "00:14:02", 6319e95205Sopenharmony_ci "00:11:B1", 6419e95205Sopenharmony_ci "00:14:F1", 6519e95205Sopenharmony_ci "94:16:25", 6619e95205Sopenharmony_ci "9C:64:8B"}} 6719e95205Sopenharmony_ci}; 6819e95205Sopenharmony_ci 6919e95205Sopenharmony_cibool Compat::CompatCheck(CompatType type, const std::string &value) 7019e95205Sopenharmony_ci{ 7119e95205Sopenharmony_ci auto data = COMPAT_DATA.find(type); 7219e95205Sopenharmony_ci if (data != COMPAT_DATA.end()) { 7319e95205Sopenharmony_ci for (auto it = data->second.begin(); it != data->second.end(); it++) { 7419e95205Sopenharmony_ci if (value.compare(0, it->size(), *it) == 0) { 7519e95205Sopenharmony_ci return true; 7619e95205Sopenharmony_ci } 7719e95205Sopenharmony_ci } 7819e95205Sopenharmony_ci } 7919e95205Sopenharmony_ci return false; 8019e95205Sopenharmony_ci} 8119e95205Sopenharmony_ci} // namespace bluetooth 8219e95205Sopenharmony_ci} // namespace OHOS