From ddbe5c330128e6f89e546864992eadf785f7c7a9 Mon Sep 17 00:00:00 2001 From: lidongrui Date: Fri, 5 Sep 2025 10:45:37 +0800 Subject: [PATCH] =?UTF-8?q?Signed-off-by:=20lidongrui=20=20StartAbilityForOption=E7=9A=84DLP=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- services/abilitymgr/src/ability_manager_service.cpp | 8 +++++++- .../ability_manager_service_fourth_test.cpp | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index bac97333d90..807545a1d63 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -1982,7 +1982,6 @@ int AbilityManagerService::StartAbilityForOptionInner(const Want &want, const St } InsightIntentExecuteParam::RemoveInsightIntent(const_cast(want)); SendAbilityEvent(EventName::START_ABILITY, HiSysEventType::BEHAVIOR, eventInfo); - #ifdef WITH_DLP if (!DlpUtils::OtherAppsAccessDlpCheck(callerToken, want) || VerifyAccountPermission(userId) == CHECK_PERMISSION_FAILED || @@ -1992,6 +1991,13 @@ int AbilityManagerService::StartAbilityForOptionInner(const Want &want, const St "permission verify failed"); return CHECK_PERMISSION_FAILED; } + + if (AbilityUtil::HandleDlpApp(const_cast(want))) { + auto result = StartExtensionAbilityInner(want, callerToken, userId, + AppExecFwk::ExtensionAbilityType::SERVICE, false, false, true, isStartAsCaller); + eventHelper_.SendStartAbilityErrorEvent(eventInfo, result, "StartExtensionAbilityInner failed"); + return result; + } #endif // WITH_DLP if (auto pluginRet = CheckStartPlugin(want, callerToken); pluginRet != ERR_OK) { eventHelper_.SendStartAbilityErrorEvent(eventInfo, pluginRet, "CheckStartPlugin failed"); diff --git a/test/unittest/ability_manager_service_fourth_test/ability_manager_service_fourth_test.cpp b/test/unittest/ability_manager_service_fourth_test/ability_manager_service_fourth_test.cpp index b0f174aae22..0cabec3ed13 100644 --- a/test/unittest/ability_manager_service_fourth_test/ability_manager_service_fourth_test.cpp +++ b/test/unittest/ability_manager_service_fourth_test/ability_manager_service_fourth_test.cpp @@ -447,7 +447,7 @@ HWTEST_F(AbilityManagerServiceFourthTest, StartAbilityForOptionInner_001, TestSi abilityMs->interceptorExecuter_ = std::make_shared(); result = abilityMs->StartAbilityForOptionInner(want, startOptions, callerToken, false, userId, requestCode, isStartAsCaller, specifyTokenId, isImplicit); - EXPECT_NE(result, ERR_INVALID_VALUE); + EXPECT_EQ(result, ERR_IMPLICIT_START_ABILITY_FAIL); abilityMs-> implicitStartProcessor_ = std::make_shared(); result = abilityMs->StartAbilityForOptionInner(want, startOptions, callerToken, false, userId, requestCode, -- Gitee