From df59de1cf98f1e7fc9760186c4b59d1302d59c41 Mon Sep 17 00:00:00 2001 From: TianYH Date: Tue, 9 Sep 2025 14:17:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=AF=E6=8C=81wifi=E5=85=B3=E9=97=AD?= =?UTF-8?q?=E6=97=B6=E7=A6=81=E7=94=A8=E9=9A=8F=E6=9C=BAmac?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: TianYH --- .../wifi_manage/libwifi_manager.map | 1 + .../wifi_manage/wifi_sta/ista_service.h | 17 +++--- .../wifi_manage/wifi_sta/sta_interface.cpp | 16 ++--- .../wifi_manage/wifi_sta/sta_interface.h | 16 +++-- .../wifi_manage/wifi_sta/sta_service.cpp | 60 ++++++++----------- .../wifi_manage/wifi_sta/sta_service.h | 17 +++--- .../wifi_sta_sa/wifi_device_service_impl.cpp | 19 ++++-- .../wifi_sta/Mock/mock_sta_interface.cpp | 12 ++-- .../wifi_manage/wifi_sta/sta_service_test.cpp | 58 +----------------- 9 files changed, 78 insertions(+), 138 deletions(-) diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/libwifi_manager.map b/wifi/services/wifi_standard/wifi_framework/wifi_manage/libwifi_manager.map index 436338e66..d27541220 100755 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/libwifi_manager.map +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/libwifi_manager.map @@ -473,6 +473,7 @@ "OHOS::Wifi::ApConfigUse::GetApVaildChannel(OHOS::Wifi::BandType, std::__h::vector>&) const"; "OHOS::Wifi::ApConfigUse::UpdateApChannelConfig(OHOS::Wifi::HotspotConfig&) const"; "OHOS::Wifi::WifiSettings::IsRandomMacDisabled(int)"; + "OHOS::Wifi::WifiSettings::SetRandomMacDisabled(bool, int)"; }; local: *; diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/ista_service.h b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/ista_service.h index 4d4ddaa1c..6f8f0f680 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/ista_service.h +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/ista_service.h @@ -251,14 +251,6 @@ public: */ virtual ErrCode SetSuspendMode(bool mode) = 0; - /** - * @Description Set Random Mac Disabled. - * - * @param isRandomMacDisabled: True for disabled False for enabled - * @return WifiErrorNo - */ - virtual ErrCode SetRandomMacDisabled(bool isRandomMacDisabled) = 0; - /** * @Description send power mode for wpa. * @@ -481,6 +473,7 @@ public: virtual ErrCode GetSignalPollInfoArray(std::vector &wifiSignalPollInfos, int length) = 0; +#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT /** * @Description Add wifi block list and wifi white list * @@ -488,8 +481,14 @@ public: * @param result - the result of wifi access list * @return ErrCode - operation result */ -#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT virtual ErrCode SetWifiRestrictedList(const std::vector &wifiRestrictedInfoList) = 0; + + /** + * @Description Reconnect By Mdm + * + * @return ErrCode - operation result + */ + virtual ErrCode ReconnectByMdm() = 0; #endif }; } // namespace Wifi diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.cpp index 89807245d..8ec62cc31 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.cpp @@ -224,6 +224,14 @@ ErrCode StaInterface::SetWifiRestrictedList(const std::vector lock(mutex); + CHECK_NULL_AND_RETURN(pStaService, WIFI_OPT_FAILED); + return pStaService->ReconnectByMdm(); +} #endif int StaInterface::UpdateDeviceConfig(const WifiDeviceConfig &config) @@ -281,14 +289,6 @@ ErrCode StaInterface::AllowAutoConnect(int32_t networkId, bool isAllowed) return pStaService->AllowAutoConnect(networkId, isAllowed); } -ErrCode StaInterface::SetRandomMacDisabled(bool isRandomMacDisabled) -{ - LOGI("Enter SetRandomMacDisabled, isRandomMacDisabled:%{public}d", isRandomMacDisabled); - std::lock_guard lock(mutex); - CHECK_NULL_AND_RETURN(pStaService, WIFI_OPT_FAILED); - return pStaService->SetRandomMacDisabled(isRandomMacDisabled); -} - ErrCode StaInterface::StartWps(const WpsConfig &config) { LOGI("Enter StartWps.\n"); diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.h b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.h index fb7ce47ad..ba014bd94 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.h +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_interface.h @@ -149,6 +149,7 @@ public: * @Return success: networkId fail: -1 */ virtual int AddDeviceConfig(const WifiDeviceConfig &config) override; +#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT /** * @Description Add wifi block list and wifi white list * @@ -156,8 +157,13 @@ public: * @param result - the result of wifi access list * @return ErrCode - operation result */ -#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT virtual ErrCode SetWifiRestrictedList(const std::vector &wifiRestrictedInfoList) override; + /** + * @Description Reconnect By Mdm + * + * @return ErrCode - operation result + */ + ErrCode ReconnectByMdm() override; #endif /** * @Description Update a network to config @@ -254,14 +260,6 @@ public: */ virtual ErrCode SetSuspendMode(bool mode) override; - /** - * @Description Set Random Mac Disabled. - * - * @param isRandomMacDisabled: True for disabled False for enabled - * @return WifiErrorNo - */ - virtual ErrCode SetRandomMacDisabled(bool isRandomMacDisabled) override; - /** * @Description send power mode for wpa. * diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.cpp index f7541982e..c7b0a4c9c 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.cpp @@ -387,6 +387,31 @@ ErrCode StaService::SetWifiRestrictedList(const std::vector } return WIFI_OPT_SUCCESS; } + +ErrCode StaService::ReconnectByMdm() const +{ + WifiLinkedInfo linkedInfo; + WifiConfigCenter::GetInstance().GetLinkedInfo(linkedInfo); + int networkId = linkedInfo.networkId; + if (networkId == INVALID_NETWORK_ID) { + WIFI_LOGE("No network connect"); + return WIFI_OPT_FAILED; + } + WifiDeviceConfig targetNetwork; + if (WifiSettings::GetInstance().GetDeviceConfig(networkId, targetNetwork)) { + WIFI_LOGE("Failed tot get device config"); + return WIFI_OPT_FAILED; + } + + if (targetNetwork.wifiPrivacySetting == WifiPrivacyConfig::RANDOMMAC) { + Disconnect(); + if (ConnectToNetwork(networkId, NETWORK_SELECTED_BY_MDM) != WIFI_OPT_SUCCESS) { + WIFI_LOGE("Connect to network failed"); + return WIFI_OPT_FAILED; + } + } + return WIFI_OPT_SUCCESS; +} #endif int StaService::AddDeviceConfig(const WifiDeviceConfig &config) const @@ -710,41 +735,6 @@ ErrCode StaService::AllowAutoConnect(int32_t networkId, bool isAllowed) const return WIFI_OPT_SUCCESS; } -ErrCode StaService::SetRandomMacDisabled(bool isRandomMacDisabled) const -{ - if (WifiSettings::GetInstance().IsRandomMacDisabled() == isRandomMacDisabled) { - return WIFI_OPT_SUCCESS; - } - WifiSettings::GetInstance().SetRandomMacDisabled(isRandomMacDisabled); - ReconnectByMdm(); - return WIFI_OPT_SUCCESS; -} - -ErrCode StaService::ReconnectByMdm() const -{ - WifiLinkedInfo linkedInfo; - WifiConfigCenter::GetInstance().GetLinkedInfo(linkedInfo); - int networkId = linkedInfo.networkId; - if (networkId == INVALID_NETWORK_ID) { - WIFI_LOGE("No network connect"); - return WIFI_OPT_FAILED; - } - WifiDeviceConfig targetNetwork; - if (WifiSettings::GetInstance().GetDeviceConfig(networkId, targetNetwork)) { - WIFI_LOGE("Failed tot get device config"); - return WIFI_OPT_FAILED; - } - - if (targetNetwork.wifiPrivacySetting == WifiPrivacyConfig::RANDOMMAC) { - Disconnect(); - if (ConnectToNetwork(networkId, NETWORK_SELECTED_BY_MDM) != WIFI_OPT_SUCCESS) { - WIFI_LOGE("Connect to network failed"); - return WIFI_OPT_FAILED; - } - } - return WIFI_OPT_SUCCESS; -} - ErrCode StaService::Disconnect() const { WIFI_LOGI("Enter Disconnect.\n"); diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.h b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.h index 6423b3e39..542eb8541 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.h +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service.h @@ -198,13 +198,6 @@ public: * @return ErrCode - operation result */ virtual ErrCode AllowAutoConnect(int32_t networkId, bool isAllowed) const; - /** - * @Description Set Random Mac Disabled. - * - * @param isRandomMacDisabled: True for Disabled, false for enabled - * @return ErrCode - operation result - */ - virtual ErrCode SetRandomMacDisabled(bool isRandomMacDisabled) const; /** * @Description Start WPS Connection * @@ -458,6 +451,7 @@ public: */ virtual void GetDetectNetState(OperateResState &state); +#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT /** * @Description Add wifi block list and wifi white list * @@ -465,11 +459,16 @@ public: * @param result - the result of wifi access list * @return ErrCode - operation result */ -#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT virtual ErrCode SetWifiRestrictedList(const std::vector &wifiRestrictedInfoList) const; + + /** + * @Description Reconnect By Mdm + * + * @return ErrCode - operation result + */ + ErrCode ReconnectByMdm() const; #endif private: - ErrCode ReconnectByMdm() const; void NotifyDeviceConfigChange(ConfigChange value, WifiDeviceConfig config, bool isRemoveAll) const; void NotifyCandidateApprovalStatus(CandidateApprovalStatus status) const; int FindDeviceConfig(const WifiDeviceConfig &config, WifiDeviceConfig &outConfig) const; diff --git a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_service_impl.cpp b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_service_impl.cpp index 1c0ef0983..92ace8d1f 100644 --- a/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_service_impl.cpp +++ b/wifi/services/wifi_standard/wifi_framework/wifi_manage/wifi_sta_sa/wifi_device_service_impl.cpp @@ -2721,6 +2721,7 @@ bool WifiDeviceServiceImpl::IsDisableWifiProhibitedByEdm(void) ErrCode WifiDeviceServiceImpl::IsRandomMacDisabled(bool &isRandomMacDisabled) { +#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT if (WifiPermissionUtils::VerifyGetWifiInfoPermission() == PERMISSION_DENIED) { WIFI_LOGE("IsRandomMacDisabled:VerifyGetWifiInfoPermission() PERMISSION_DENIED!"); return WIFI_OPT_PERMISSION_DENIED; @@ -2733,23 +2734,29 @@ ErrCode WifiDeviceServiceImpl::IsRandomMacDisabled(bool &isRandomMacDisabled) isRandomMacDisabled = WifiSettings::GetInstance().IsRandomMacDisabled(); WIFI_LOGI("Get isRandomMacDisabled success, isRandomMacDisabled= %{public}d", isRandomMacDisabled); return WIFI_OPT_SUCCESS; +#else + return WIFI_OPT_FAILED; +#endif } ErrCode WifiDeviceServiceImpl::SetRandomMacDisabled(bool isRandomMacDisabled) { +#ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT if (WifiPermissionUtils::VerifyManageEdmPolicyPermission() == PERMISSION_DENIED) { WIFI_LOGE("SetRandomMacDisabeled:VerifyManageEdmPolicyPermission() PERMISSION_DENIED!"); return WIFI_OPT_PERMISSION_DENIED; } - if (!IsStaServiceRunning()) { - return WIFI_OPT_STA_NOT_OPENED; - } + WifiSettings::GetInstance().SetRandomMacDisabled(isRandomMacDisabled); + WIFI_LOGI("Set isRandomMacDisabled success, isRandomMacDisabled= %{public}d", isRandomMacDisabled); IStaService *pService = WifiServiceManager::GetInstance().GetStaServiceInst(m_instId); - if (pService == nullptr) { - return WIFI_OPT_STA_NOT_OPENED; + if (pService != nullptr) { + pService->ReconnectByMdm(); } - return pService->SetRandomMacDisabled(isRandomMacDisabled); + return WIFI_OPT_SUCCESS; +#else + return WIFI_OPT_FAILED; +#endif } } // namespace Wifi } // namespace OHOS diff --git a/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/Mock/mock_sta_interface.cpp b/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/Mock/mock_sta_interface.cpp index 6925daf85..de19b2bc1 100644 --- a/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/Mock/mock_sta_interface.cpp +++ b/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/Mock/mock_sta_interface.cpp @@ -218,12 +218,6 @@ ErrCode StaInterface::EnableAutoJoin(const std::string &conditionName) return WIFI_OPT_SUCCESS; } -ErrCode StaInterface::SetRandomMacDisabled(bool isRandomMacDisabled) -{ - LOGI("Enter SetRandomMacDisabled, isRandomMacDisabled=[%{public}d]!", isRandomMacDisabled); - return WIFI_OPT_SUCCESS; -} - ErrCode StaInterface::RegisterAutoJoinCondition(const std::string &conditionName, const std::function &autoJoinCondition) { @@ -377,6 +371,12 @@ ErrCode StaInterface::SetWifiRestrictedList(const std::vectorSetWifiRestrictedList(wifiRestrictedInfoList); } + +ErrCode StaInterface::ReconnectByMdm() +{ + LOGI("Enter ReconnectByMdm"); + return WIFI_OPT_SUCCESS; +} #endif } // namespace Wifi } // namespace OHOS diff --git a/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service_test.cpp b/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service_test.cpp index a2305550b..8bffb37fa 100644 --- a/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service_test.cpp +++ b/wifi/test/wifi_standard/wifi_framework/wifi_manage/wifi_sta/sta_service_test.cpp @@ -120,10 +120,6 @@ public: void StaServiceStartWifiDetectionTest(); #ifdef FEATURE_WIFI_MDM_RESTRICTED_SUPPORT void StaServiceSetWifiRestrictedListSuccess(); - void StaServiceSetRandomMacDisabledTrueSuccess1(); - void StaServiceSetRandomMacDisabledTrueSuccess2(); - void StaServiceSetRandomMacDisabledFalseSuccess1(); - void StaServiceSetRandomMacDisabledFalseSuccess2(); void StaServiceReconnectByMdmTest1(); void StaServiceReconnectByMdmTest2(); @@ -492,38 +488,6 @@ void StaServiceTest::StaServiceDisconnectSuccess() EXPECT_TRUE(pStaService->Disconnect() == WIFI_OPT_SUCCESS); } -void StaServiceTest::StaServiceSetRandomMacDisabledTrueSuccess1() -{ - pStaService->SetRandomMacDisabled(true); - pStaService->SetRandomMacDisabled(true); - bool result = WifiSettings::GetInstance().IsRandomMacDisabled(0); - EXPECT_EQ(result, true); -} - -void StaServiceTest::StaServiceSetRandomMacDisabledTrueSuccess2() -{ - pStaService->SetRandomMacDisabled(false); - pStaService->SetRandomMacDisabled(true); - bool result = WifiSettings::GetInstance().IsRandomMacDisabled(0); - EXPECT_EQ(result, true); -} - -void StaServiceTest::StaServiceSetRandomMacDisabledFalseSuccess1() -{ - pStaService->SetRandomMacDisabled(true); - pStaService->SetRandomMacDisabled(false); - bool result = WifiSettings::GetInstance().IsRandomMacDisabled(0); - EXPECT_EQ(result, false); -} - -void StaServiceTest::StaServiceSetRandomMacDisabledFalseSuccess2() -{ - pStaService->SetRandomMacDisabled(false); - pStaService->SetRandomMacDisabled(false); - bool result = WifiSettings::GetInstance().IsRandomMacDisabled(0); - EXPECT_EQ(result, false); -} - void StaServiceTest::StaServiceReconnectByMdmTest1() { WifiDeviceConfig config; @@ -534,7 +498,7 @@ void StaServiceTest::StaServiceReconnectByMdmTest1() EXPECT_CALL(WifiSettings::GetInstance(), GetDeviceConfig(_, _, _)) .Times(AtLeast(0)).WillOnce(DoAll(SetArgReferee<1>(config), Return(0))); - pStaService->SetRandomMacDisabled(false); + EXPECT_CALL(WifiSettings::GetInstance(), SetRandomMacDisabled(_, _)).WillRepeatedly(Return(false)); EXPECT_TRUE(pStaService->ReconnectByMdm() == WIFI_OPT_SUCCESS); } @@ -548,7 +512,7 @@ void StaServiceTest::StaServiceReconnectByMdmTest2() EXPECT_CALL(WifiSettings::GetInstance(), GetDeviceConfig(_, _, _)) .Times(AtLeast(0)).WillOnce(DoAll(SetArgReferee<1>(config), Return(0))); - pStaService->SetRandomMacDisabled(true); + EXPECT_CALL(WifiSettings::GetInstance(), SetRandomMacDisabled(_, _)).WillRepeatedly(Return(true)); EXPECT_TRUE(pStaService->ReconnectByMdm() == WIFI_OPT_SUCCESS); } @@ -1101,24 +1065,6 @@ HWTEST_F(StaServiceTest, StaServiceSetWifiRestrictedListSuccess, TestSize.Level0 StaServiceSetWifiRestrictedListSuccess(); } -HWTEST_F(StaServiceTest, StaServiceSetRandomMacDisabledTrueSuccess1, TestSize.Level0) -{ - StaServiceSetRandomMacDisabledTrueSuccess1(); -} - -HWTEST_F(StaServiceTest, StaServiceSetRandomMacDisabledTrueSuccess2, TestSize.Level0) -{ - StaServiceSetRandomMacDisabledTrueSuccess2(); -} -HWTEST_F(StaServiceTest, StaServiceSetRandomMacDisabledFalseSuccess1, TestSize.Level0) -{ - StaServiceSetRandomMacDisabledFalseSuccess1(); -} - -HWTEST_F(StaServiceTest, StaServiceSetRandomMacDisabledFalseSuccess2, TestSize.Level0) -{ - StaServiceSetRandomMacDisabledFalseSuccess2(); -} HWTEST_F(StaServiceTest, StaServiceReconnectByMdmTest1, TestSize.Level0) { StaServiceReconnectByMdmTest1(); -- Gitee