From 7561213f0089872c641a48a525d8bc3ca14c5fa8 Mon Sep 17 00:00:00 2001 From: y00620503 Date: Thu, 11 Sep 2025 16:44:50 +0800 Subject: [PATCH] =?UTF-8?q?ability=E7=8A=B6=E6=80=81=E5=8F=98=E5=8C=96?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0callerPid=E4=BF=A1=E6=81=AF=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: y00620503 Change-Id: I7a4ed20a90aa84d547373f15abf4012b9b5e1319 --- .../inner_api/app_manager/include/appmgr/ability_state_data.h | 1 + .../inner_api/app_manager/src/appmgr/ability_state_data.cpp | 4 ++++ services/appmgr/src/app_running_record.cpp | 1 + services/appmgr/src/app_state_observer_manager.cpp | 4 ++-- 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/interfaces/inner_api/app_manager/include/appmgr/ability_state_data.h b/interfaces/inner_api/app_manager/include/appmgr/ability_state_data.h index ef7fd8213a8..709d46b50da 100644 --- a/interfaces/inner_api/app_manager/include/appmgr/ability_state_data.h +++ b/interfaces/inner_api/app_manager/include/appmgr/ability_state_data.h @@ -53,6 +53,7 @@ struct AbilityStateData : public Parcelable { bool isAtomicService = false; int32_t uid = 0; int32_t callerUid = 0; + int32_t callerPid = 0; int32_t abilityRecordId = 0; int32_t appCloneIndex = -1; int32_t extensionAbilityType = -1; diff --git a/interfaces/inner_api/app_manager/src/appmgr/ability_state_data.cpp b/interfaces/inner_api/app_manager/src/appmgr/ability_state_data.cpp index 5f9125ec5e9..f21e0bdd10e 100644 --- a/interfaces/inner_api/app_manager/src/appmgr/ability_state_data.cpp +++ b/interfaces/inner_api/app_manager/src/appmgr/ability_state_data.cpp @@ -89,6 +89,9 @@ bool AbilityStateData::MarshallingOne(Parcel &parcel) const if (!parcel.WriteBool(isInnerNotify)) { return false; } + if (!parcel.WriteInt32(callerPid)) { + return false; + } return true; } @@ -124,6 +127,7 @@ bool AbilityStateData::ReadFromParcel(Parcel &parcel) processType = parcel.ReadInt32(); callerUid = parcel.ReadInt32(); isInnerNotify = parcel.ReadBool(); + callerPid = parcel.ReadInt32(); return true; } diff --git a/services/appmgr/src/app_running_record.cpp b/services/appmgr/src/app_running_record.cpp index 0ef699dad01..59e421651e8 100644 --- a/services/appmgr/src/app_running_record.cpp +++ b/services/appmgr/src/app_running_record.cpp @@ -760,6 +760,7 @@ void AppRunningRecord::StateChangedNotifyObserver(const std::shared_ptrGetWant()->GetStringParam(Want::PARAM_RESV_CALLER_ABILITY_NAME); abilityStateData.callerBundleName = ability->GetWant()->GetStringParam(Want::PARAM_RESV_CALLER_BUNDLE_NAME); abilityStateData.callerUid = ability->GetWant()->GetIntParam(Want::PARAM_RESV_CALLER_UID, -1); + abilityStateData.callerPid = ability->GetWant()->GetIntParam(Want::PARAM_RESV_CALLER_PID, -1); } if (applicationInfo && applicationInfo->bundleType == AppExecFwk::BundleType::ATOMIC_SERVICE) { abilityStateData.isAtomicService = true; diff --git a/services/appmgr/src/app_state_observer_manager.cpp b/services/appmgr/src/app_state_observer_manager.cpp index 44bca47cad7..7cb243483f3 100644 --- a/services/appmgr/src/app_state_observer_manager.cpp +++ b/services/appmgr/src/app_state_observer_manager.cpp @@ -595,12 +595,12 @@ void AppStateObserverManager::HandleStateChangedNotifyObserver( TAG_LOGD(AAFwkTag::APPMGR, "Handle state change, module:%{public}s, bundle:%{public}s, ability:%{public}s, state:%{public}d," "pid:%{public}d ,uid:%{public}d, abilityType:%{public}d, isAbility:%{public}d, callerBundleName:%{public}s," - "callerAbilityName:%{public}s, isAtomicService:%{public}d, callerUid:%{public}d", + "callerAbilityName:%{public}s, isAtomicService:%{public}d, callerUid:%{public}d, callerPid:%{public}d", abilityStateData.moduleName.c_str(), abilityStateData.bundleName.c_str(), abilityStateData.abilityName.c_str(), abilityStateData.abilityState, abilityStateData.pid, abilityStateData.uid, abilityStateData.abilityType, isAbility, abilityStateData.callerBundleName.c_str(), abilityStateData.callerAbilityName.c_str(), - abilityStateData.isAtomicService, abilityStateData.callerUid); + abilityStateData.isAtomicService, abilityStateData.callerUid, abilityStateData.callerPid); auto appStateObserverMapCopy = GetAppStateObserverMapCopy(); for (auto it = appStateObserverMapCopy.begin(); it != appStateObserverMapCopy.end(); ++it) { const auto &bundleNames = it->second.bundleNames; -- Gitee