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 ef7fd8213a878b3d91d86fb5dbd4e691fe7be190..709d46b50da79d6c2b57993de68c24cc92e2a844 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 5f9125ec5e9752188bf9d8d55db86d49c8deb459..f21e0bdd10e7bfff18b9a35d4ceedb9070136c8f 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 0ef699dad01f64c724a98f5c5602841504249a58..59e421651e80ae7817230c0247498e8e8329b3d6 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 44bca47cad75190a30a297b29ab23f2511b96473..7cb243483f325945324588ae1b744970354ef930 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;