diff --git a/services/abilitymgr/src/ability_manager_service.cpp b/services/abilitymgr/src/ability_manager_service.cpp index fdbc77ca40006375536dca2b198ed094f88310a7..bac97333d904be6e4a69851b13b59347e7191e00 100644 --- a/services/abilitymgr/src/ability_manager_service.cpp +++ b/services/abilitymgr/src/ability_manager_service.cpp @@ -11211,7 +11211,11 @@ int AbilityManagerService::CheckCallAbilityPermission(const AbilityRequest &abil int result = AAFwk::PermissionVerification::GetInstance()->CheckCallAbilityPermission( verificationInfo, isCallByShortcut); if (result != ERR_OK) { - TAG_LOGE(AAFwkTag::ABILITYMGR, "without start pageAbility(FA) or ability(Stage) permission"); + auto sessionInfo = callerAbilityRecord ? callerAbilityRecord->GetSessionInfo() : nullptr; + int32_t persistentId = (sessionInfo == nullptr) ? -1 : sessionInfo->persistentId; + TAG_LOGE(AAFwkTag::ABILITYMGR, + "without start pageAbility(FA) or ability(Stage) permission, caller:%{public}s %{public}d", + callerAbilityRecord ? callerAbilityRecord->GetAbilityInfo().name.c_str() : "null record", persistentId); } return result; } diff --git a/services/abilitymgr/src/implicit_start_processor.cpp b/services/abilitymgr/src/implicit_start_processor.cpp index 64e0cd7c02e3568749ac6897fe13f5d87e72588b..ad43e1d57d84fa85234987eb87005348b8cab8a0 100644 --- a/services/abilitymgr/src/implicit_start_processor.cpp +++ b/services/abilitymgr/src/implicit_start_processor.cpp @@ -110,11 +110,19 @@ int ImplicitStartProcessor::CheckImplicitCallPermission(const AbilityRequest& ab return ERR_OK; } auto ret = AAFwk::PermissionVerification::GetInstance()->VerifyBackgroundCallPermission(isBackgroundCall); - if (!ret) { - TAG_LOGE(AAFwkTag::ABILITYMGR, "CheckImplicitCallPermission failed"); + if (ret) { + return ERR_OK; + } + std::shared_ptr callerAbility = Token::GetAbilityRecordByToken(abilityRequest.callerToken); + if (callerAbility == nullptr) { + TAG_LOGE(AAFwkTag::ABILITYMGR, "permission failed"); return CHECK_PERMISSION_FAILED; } - return ERR_OK; + auto sessionInfo = callerAbility->GetSessionInfo(); + int32_t persistentId = (sessionInfo == nullptr) ? -1 : sessionInfo->persistentId; + TAG_LOGE(AAFwkTag::ABILITYMGR, "permission failed %{public}s,%{public}d", + callerAbility->GetAbilityInfo().name.c_str(), persistentId); + return CHECK_PERMISSION_FAILED; } int ImplicitStartProcessor::ImplicitStartAbility(AbilityRequest &request, int32_t userId, int32_t windowMode, diff --git a/services/abilitymgr/src/utils/ability_permission_util.cpp b/services/abilitymgr/src/utils/ability_permission_util.cpp index f7e6d447d9fbeb725a8028a5d973d0aea33222eb..dc56b6fb81fe140101a4e0a98515e68c66668063 100644 --- a/services/abilitymgr/src/utils/ability_permission_util.cpp +++ b/services/abilitymgr/src/utils/ability_permission_util.cpp @@ -362,7 +362,6 @@ bool AbilityPermissionUtil::IsStartSelfUIAbility() auto callerPid = IPCSkeleton::GetCallingPid(); auto tokenId = GetTokenIdByPid(callerPid); if (tokenId < 0) { - TAG_LOGE(AAFwkTag::ABILITYMGR, "invalid tokenId"); return false; } return PermissionVerification::GetInstance()->VerifyStartSelfUIAbility(tokenId);