!1828 AMS关键trace补齐

Merge pull request !1828 from 周士成/master
This commit is contained in:
openharmony_ci
2022-05-26 14:09:07 +00:00
committed by Gitee
38 changed files with 930 additions and 19 deletions
+1
View File
@@ -33,6 +33,7 @@
"distributeddatamgr_appdatamgr",
"dsoftbus_standard",
"form_runtime",
"hisysevent_native",
"hiviewdfx_hilog_native",
"ipc",
"dataability",
+1
View File
@@ -98,6 +98,7 @@ ohos_shared_library("libfms") {
"distributeddatamgr:distributeddata_inner",
"eventhandler:libeventhandler",
"form_runtime:form_manager",
"hisysevent_native:libhisysevent",
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",
"safwk:system_ability_fwk",
+68
View File
@@ -0,0 +1,68 @@
# Copyright (c) 2022 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
domain: AAFWK
# form behavior event
ADD_FORM:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: form manager}
FORM_ID: {type: INT64, desc: formId}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
REQUEST_FORM:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: form manager}
FORM_ID: {type: INT64, desc: formId}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
DELETE_FORM:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: form manager}
FORM_ID: {type: INT64, desc: formId}
CASTTEMP_FORM:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: form manager}
FORM_ID: {type: INT64, desc: formId}
ACQUIREFORMSTATE_FORM:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: form manager}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
MESSAGE_EVENT_FORM:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: form manager}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
ROUTE_EVENT_FORM:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: form manager}
FORM_ID: {type: INT64, desc: formId}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
RELEASE_FORM:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: form manager}
FORM_ID: {type: INT64, desc: formId}
DELETE_INVALID_FORM:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: form manager}
SET_NEXT_REFRESH_TIME_FORM:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: form manager}
FORM_ID: {type: INT64, desc: formId}
@@ -40,6 +40,8 @@
#include "permission_verification.h"
#include "string_ex.h"
#include "system_ability_definition.h"
#include "event_report.h"
#include "hisysevent.h"
namespace OHOS {
namespace AppExecFwk {
@@ -91,6 +93,12 @@ int FormMgrService::AddForm(const int64_t formId, const Want &want,
const sptr<IRemoteObject> &callerToken, FormJsInfo &formInfo)
{
ErrCode ret = CheckFormPermission();
AAFWK::EventInfo eventInfo;
eventInfo.userId = formId;
eventInfo.bundleName = want.GetElement().GetBundleName();
eventInfo.moduleName = want.GetElement().GetModuleName();
eventInfo.abilityName = want.GetElement().GetAbilityName();
AAFWK::EventReport::SendFormEvent(AAFWK::ADD_FORM, HiSysEventType::BEHAVIOR, eventInfo);
if (ret != ERR_OK) {
HILOG_ERROR("%{public}s fail, add form permission denied", __func__);
return ret;
@@ -111,6 +119,9 @@ int FormMgrService::DeleteForm(const int64_t formId, const sptr<IRemoteObject> &
HILOG_ERROR("%{public}s fail, delete form permission denied", __func__);
return ret;
}
AAFWK::EventInfo eventInfo;
eventInfo.userId = formId;
AAFWK::EventReport::SendFormEvent(AAFWK::DELETE_FORM, HiSysEventType::BEHAVIOR, eventInfo);
return FormMgrAdapter::GetInstance().DeleteForm(formId, callerToken);
}
@@ -129,6 +140,9 @@ int FormMgrService::ReleaseForm(const int64_t formId, const sptr<IRemoteObject>
HILOG_ERROR("%{public}s fail, release form permission denied", __func__);
return ret;
}
AAFWK::EventInfo eventInfo;
eventInfo.userId = formId;
AAFWK::EventReport::SendFormEvent(AAFWK::RELEASE_FORM, HiSysEventType::BEHAVIOR, eventInfo);
return FormMgrAdapter::GetInstance().ReleaseForm(formId, callerToken, delCache);
}
@@ -173,6 +187,12 @@ int FormMgrService::RequestForm(const int64_t formId, const sptr<IRemoteObject>
HILOG_ERROR("%{public}s fail, request form permission denied", __func__);
return ret;
}
AAFWK::EventInfo eventInfo;
eventInfo.userId = formId;
eventInfo.bundleName = want.GetElement().GetBundleName();
eventInfo.moduleName = want.GetElement().GetModuleName();
eventInfo.abilityName = want.GetElement().GetAbilityName();
AAFWK::EventReport::SendFormEvent(AAFWK::REQUEST_FORM, HiSysEventType::BEHAVIOR, eventInfo);
return FormMgrAdapter::GetInstance().RequestForm(formId, callerToken, want);
}
@@ -187,6 +207,10 @@ int FormMgrService::RequestForm(const int64_t formId, const sptr<IRemoteObject>
int FormMgrService::SetNextRefreshTime(const int64_t formId, const int64_t nextTime)
{
HILOG_INFO("%{public}s called.", __func__);
AAFWK::EventInfo eventInfo;
eventInfo.userId = formId;
AAFWK::EventReport::SendFormEvent(AAFWK::SET_NEXT_REFRESH_TIME_FORM,
HiSysEventType::BEHAVIOR, eventInfo);
return FormMgrAdapter::GetInstance().SetNextRefreshTime(formId, nextTime);
}
@@ -266,6 +290,10 @@ int FormMgrService::CastTempForm(const int64_t formId, const sptr<IRemoteObject>
HILOG_ERROR("%{public}s fail, cast temp form permission denied", __func__);
return ret;
}
AAFWK::EventInfo eventInfo;
eventInfo.userId = formId;
AAFWK::EventReport::SendFormEvent(AAFWK::CASTTEMP_FORM,
HiSysEventType::BEHAVIOR, eventInfo);
return FormMgrAdapter::GetInstance().CastTempForm(formId, callerToken);
}
@@ -348,6 +376,12 @@ int FormMgrService::MessageEvent(const int64_t formId, const Want &want, const s
HILOG_ERROR("%{public}s fail, request form permission denied", __func__);
return ret;
}
AAFWK::EventInfo eventInfo;
eventInfo.bundleName = want.GetElement().GetBundleName();
eventInfo.moduleName = want.GetElement().GetModuleName();
eventInfo.abilityName = want.GetElement().GetAbilityName();
AAFWK::EventReport::SendFormEvent(AAFWK::MESSAGE_EVENT_FORM,
HiSysEventType::BEHAVIOR, eventInfo);
return FormMgrAdapter::GetInstance().MessageEvent(formId, want, callerToken);
}
@@ -365,6 +399,13 @@ int FormMgrService::RouterEvent(const int64_t formId, Want &want)
HILOG_ERROR("%{public}s fail, request form permission denied", __func__);
return ret;
}
AAFWK::EventInfo eventInfo;
eventInfo.userId = formId;
eventInfo.bundleName = want.GetElement().GetBundleName();
eventInfo.moduleName = want.GetElement().GetModuleName();
eventInfo.abilityName = want.GetElement().GetAbilityName();
AAFWK::EventReport::SendFormEvent(AAFWK::ROUTE_EVENT_FORM,
HiSysEventType::BEHAVIOR, eventInfo);
return FormMgrAdapter::GetInstance().RouterEvent(formId, want);
}
@@ -536,6 +577,9 @@ int FormMgrService::DeleteInvalidForms(const std::vector<int64_t> &formIds, cons
HILOG_ERROR("%{public}s fail, delete form permission denied", __func__);
return ret;
}
AAFWK::EventInfo eventInfo;
AAFWK::EventReport::SendFormEvent(AAFWK::DELETE_INVALID_FORM,
HiSysEventType::BEHAVIOR, eventInfo);
return FormMgrAdapter::GetInstance().DeleteInvalidForms(formIds, callerToken, numFormsDeleted);
}
@@ -554,6 +598,12 @@ int FormMgrService::AcquireFormState(const Want &want, const sptr<IRemoteObject>
HILOG_ERROR("%{public}s fail, acquire form state permission denied", __func__);
return ret;
}
AAFWK::EventInfo eventInfo;
eventInfo.bundleName = want.GetElement().GetBundleName();
eventInfo.moduleName = want.GetElement().GetModuleName();
eventInfo.abilityName = want.GetElement().GetAbilityName();
AAFWK::EventReport::SendFormEvent(AAFWK::ACQUIREFORMSTATE_FORM,
HiSysEventType::BEHAVIOR, eventInfo);
return FormMgrAdapter::GetInstance().AcquireFormState(want, callerToken, stateInfo);
}
@@ -125,6 +125,7 @@ ErrCode AbilityContextImpl::StartAbilityWithAccount(const AAFwk::Want &want, int
ErrCode AbilityContextImpl::StartAbility(const AAFwk::Want &want, const AAFwk::StartOptions &startOptions,
int requestCode)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("AbilityContextImpl::StartAbility. Start calling StartAbility.");
ErrCode err = AAFwk::AbilityManagerClient::GetInstance()->StartAbility(want, startOptions, token_, requestCode);
HILOG_INFO("AbilityContextImpl::StartAbility. End calling StartAbility. ret=%{public}d", err);
@@ -239,6 +240,7 @@ void AbilityContextImpl::OnAbilityResult(int requestCode, int resultCode, const
bool AbilityContextImpl::ConnectAbility(const AAFwk::Want &want,
const sptr<AbilityConnectCallback> &connectCallback)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Connect ability begin, ability:%{public}s.",
abilityInfo_ == nullptr ? "" : abilityInfo_->name.c_str());
ErrCode ret =
@@ -260,6 +262,7 @@ bool AbilityContextImpl::ConnectAbilityWithAccount(const AAFwk::Want &want, int
void AbilityContextImpl::DisconnectAbility(const AAFwk::Want &want,
const sptr<AbilityConnectCallback> &connectCallback)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Disconnect ability begin, caller:%{public}s.",
abilityInfo_ == nullptr ? "" : abilityInfo_->name.c_str());
ErrCode ret =
@@ -347,6 +350,7 @@ ErrCode AbilityContextImpl::TerminateSelf()
ErrCode AbilityContextImpl::CloseAbility()
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("%{public}s begin.", __func__);
isTerminating_ = true;
AAFwk::Want resultWant;
@@ -1296,6 +1296,7 @@ ErrCode Ability::StartAbility(const Want &want)
*/
ErrCode Ability::TerminateAbility()
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("%{public}s begin.", __func__);
return AbilityContext::TerminateAbility();
}
@@ -26,6 +26,7 @@
#include "resource_manager.h"
#include "sys_mgr_client.h"
#include "system_ability_definition.h"
#include "hitrace_meter.h"
namespace OHOS {
namespace AppExecFwk {
@@ -169,6 +170,7 @@ std::shared_ptr<ElementName> AbilityContext::GetCallingAbility()
bool AbilityContext::ConnectAbility(const Want &want, const sptr<AAFwk::IAbilityConnection> &conn)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
AppExecFwk::AbilityType type = GetAbilityInfoType();
std::shared_ptr<AbilityInfo> abilityInfo = GetAbilityInfo();
@@ -196,6 +198,7 @@ bool AbilityContext::ConnectAbility(const Want &want, const sptr<AAFwk::IAbility
ErrCode AbilityContext::DisconnectAbility(const sptr<AAFwk::IAbilityConnection> &conn)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
std::shared_ptr<AbilityInfo> info = GetAbilityInfo();
HILOG_INFO("Disconnect ability begin, caller:%{public}s.", info == nullptr ? "" : info->name.c_str());
@@ -34,6 +34,7 @@
#include "string_wrapper.h"
#include "context/context.h"
#include "context/application_context.h"
#include "hitrace_meter.h"
namespace OHOS {
namespace AbilityRuntime {
@@ -119,6 +120,7 @@ void JsAbility::Init(const std::shared_ptr<AbilityInfo> &abilityInfo,
void JsAbility::OnStart(const Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("OnStart begin, ability is %{public}s.", GetAbilityName().c_str());
Ability::OnStart(want);
@@ -163,6 +165,7 @@ void JsAbility::OnStart(const Want &want)
void JsAbility::OnStop()
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
Ability::OnStop();
CallObjectMethod("onDestroy");
@@ -190,6 +193,7 @@ const std::string PAGE_STACK_PROPERTY_NAME = "pageStack";
void JsAbility::OnSceneCreated()
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("OnSceneCreated begin, ability is %{public}s.", GetAbilityName().c_str());
Ability::OnSceneCreated();
auto jsAppWindowStage = CreateAppWindowStage();
@@ -255,6 +259,7 @@ void JsAbility::onSceneDestroyed()
void JsAbility::OnForeground(const Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("OnForeground begin, ability is %{public}s.", GetAbilityName().c_str());
Ability::OnForeground(want);
@@ -290,6 +295,7 @@ void JsAbility::OnForeground(const Want &want)
void JsAbility::OnBackground()
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
Ability::OnBackground();
CallObjectMethod("onBackground");
@@ -30,6 +30,7 @@
#include "start_options.h"
#include "want.h"
#include "event_handler.h"
#include "hitrace_meter.h"
#ifdef SUPPORT_GRAPHICS
#include "pixel_map_napi.h"
@@ -130,6 +131,7 @@ NativeValue* JsAbilityContext::ConnectAbilityWithAccount(NativeEngine* engine, N
NativeValue* JsAbilityContext::DisconnectAbility(NativeEngine* engine, NativeCallbackInfo* info)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
JsAbilityContext* me = CheckParamsAndGetThis<JsAbilityContext>(engine, info);
return (me != nullptr) ? me->OnDisconnectAbility(*engine, *info) : nullptr;
}
@@ -166,6 +168,7 @@ NativeValue* JsAbilityContext::IsTerminating(NativeEngine* engine, NativeCallbac
NativeValue* JsAbilityContext::OnStartAbility(NativeEngine& engine, NativeCallbackInfo& info)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("OnStartAbility is called.");
if (info.argc == ARGC_ZERO) {
@@ -700,6 +703,7 @@ NativeValue* JsAbilityContext::OnTerminateSelfWithResult(NativeEngine& engine, N
NativeValue* JsAbilityContext::OnConnectAbility(NativeEngine& engine, NativeCallbackInfo& info)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("Connect ability called.");
// only support two params
if (info.argc != ARGC_TWO) {
@@ -792,6 +792,7 @@ void AbilityThread::ScheduleConnectAbility(const Want &want)
*/
void AbilityThread::ScheduleDisconnectAbility(const Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("Schedule disconnect ability begin, isExtension:%{public}d.", isExtension_);
wptr<AbilityThread> weak = this;
auto task = [weak, want]() {
@@ -1177,6 +1178,7 @@ void AbilityThread::AbilityThreadMain(std::shared_ptr<OHOSApplication> &applicat
const std::shared_ptr<AbilityLocalRecord> &abilityRecord, const std::shared_ptr<EventRunner> &mainRunner,
const std::shared_ptr<AbilityRuntime::Context> &stageContext)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("AbilityThread main start.");
sptr<AbilityThread> thread = sptr<AbilityThread>(new (std::nothrow) AbilityThread());
if (thread == nullptr) {
@@ -1202,6 +1204,7 @@ void AbilityThread::AbilityThreadMain(
std::shared_ptr<OHOSApplication> &application, const std::shared_ptr<AbilityLocalRecord> &abilityRecord,
const std::shared_ptr<AbilityRuntime::Context> &stageContext)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("AbilityThread main start.");
sptr<AbilityThread> thread = sptr<AbilityThread>(new (std::nothrow) AbilityThread());
if (thread == nullptr || abilityRecord == nullptr) {
@@ -19,6 +19,7 @@
#include "configuration.h"
#include "extension_context.h"
#include "hilog_wrapper.h"
#include "hitrace_meter.h"
namespace OHOS {
namespace AbilityRuntime {
@@ -40,6 +41,7 @@ void Extension::Init(const std::shared_ptr<AppExecFwk::AbilityLocalRecord> &reco
void Extension::OnStart(const AAFwk::Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("OnStart begin, extension:%{public}s.", abilityInfo_->name.c_str());
SetLaunchWant(want);
SetLastRequestWant(want);
@@ -54,6 +56,7 @@ void Extension::OnStop()
sptr<IRemoteObject> Extension::OnConnect(const AAFwk::Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("OnConnect begin, extension:%{public}s.", abilityInfo_->name.c_str());
HILOG_INFO("OnConnect end, extension:%{public}s.", abilityInfo_->name.c_str());
return nullptr;
@@ -61,6 +64,7 @@ sptr<IRemoteObject> Extension::OnConnect(const AAFwk::Want &want)
void Extension::OnDisconnect(const AAFwk::Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("OnDisconnect begin, extension:%{public}s.", abilityInfo_->name.c_str());
HILOG_INFO("OnDisconnect end, extension:%{public}s.", abilityInfo_->name.c_str());
}
@@ -28,6 +28,7 @@
#include "napi_remote_object.h"
#include "napi_common_start_options.h"
#include "start_options.h"
#include "hitrace_meter.h"
namespace OHOS {
namespace AbilityRuntime {
@@ -118,6 +119,7 @@ private:
std::weak_ptr<ServiceExtensionContext> context_;
NativeValue* OnStartAbility(NativeEngine& engine, NativeCallbackInfo& info)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("OnStartAbility is called");
// only support one or two or three params
if (info.argc != ARGC_ONE && info.argc != ARGC_TWO && info.argc != ARGC_THREE) {
@@ -15,6 +15,7 @@
#include "page_ability_impl.h"
#include "hilog_wrapper.h"
#include "hitrace_meter.h"
namespace OHOS {
namespace AppExecFwk {
@@ -28,6 +29,7 @@ using AbilityManagerClient = OHOS::AAFwk::AbilityManagerClient;
*/
void PageAbilityImpl::HandleAbilityTransaction(const Want &want, const AAFwk::LifeCycleStateInfo &targetState)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("Handle ability transaction start, sourceState:%{public}d, targetState:%{public}d, "
"isNewWant:%{public}d, sceneFlag:%{public}d.",
lifecycleState_,
@@ -298,6 +298,7 @@ ohos_unittest("page_ability_impl_test") {
]
external_deps = [
"hitrace_native:hitrace_meter",
"hiviewdfx_hilog_native:libhilog",
"input:libmmi-client",
"ipc:ipc_core",
@@ -330,6 +331,7 @@ ohos_unittest("service_ability_impl_test") {
]
external_deps = [
"hitrace_native:hitrace_meter",
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",
]
@@ -18,6 +18,7 @@
#include "ability_connection.h"
#include "ability_manager_client.h"
#include "hilog_wrapper.h"
#include "hitrace_meter.h"
namespace OHOS {
namespace AbilityRuntime {
@@ -26,6 +27,7 @@ int ServiceExtensionContext::ILLEGAL_REQUEST_CODE(-1);
ErrCode ServiceExtensionContext::StartAbility(const AAFwk::Want &want) const
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Start ability begin, ability:%{public}s.", want.GetElement().GetAbilityName().c_str());
ErrCode err = AAFwk::AbilityManagerClient::GetInstance()->StartAbility(want, token_, ILLEGAL_REQUEST_CODE);
if (err != ERR_OK) {
@@ -36,6 +38,7 @@ ErrCode ServiceExtensionContext::StartAbility(const AAFwk::Want &want) const
ErrCode ServiceExtensionContext::StartAbility(const AAFwk::Want &want, const AAFwk::StartOptions &startOptions) const
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Start ability begin, ability:%{public}s.", want.GetElement().GetAbilityName().c_str());
ErrCode err = AAFwk::AbilityManagerClient::GetInstance()->StartAbility(want, startOptions, token_,
ILLEGAL_REQUEST_CODE);
@@ -452,6 +452,7 @@ void MainThread::ScheduleAbilityStage(const HapModuleInfo &abilityStage)
void MainThread::ScheduleLaunchAbility(const AbilityInfo &info, const sptr<IRemoteObject> &token,
const std::shared_ptr<AAFwk::Want> &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("MainThread schedule launch ability, name is %{public}s, type is %{public}d.",
info.name.c_str(), info.type);
+141 -2
View File
@@ -1,4 +1,4 @@
# Copyright (c) 2021 Huawei Device Co., Ltd.
# Copyright (c) 2021-2022 Huawei Device Co., Ltd.
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
@@ -44,4 +44,143 @@ THREAD_BLOCK_6S:
UID: {type: INT32, desc: uid}
PACKAGE_NAME: {type: STRING, desc: package name}
PROCESS_NAME: {type: STRING, desc: process name}
MSG: {type: STRING, desc: application event message}
MSG: {type: STRING, desc: application event message}
# fault event
START_ABILITY_ERROR:
__BASE: {type: FAULT, level: MINOR, tag: ability, desc: start ability error}
ABILITY_NAME: {type: STRING, desc: ability name}
TERMINATE_ABILITY_ERROR:
__BASE: {type: FAULT, level: MINOR, tag: ability, desc: terminate ability error}
USER_ID: {type: INT32, desc: userId}
ERROR_CODE: {type: INT32, desc: error code}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
START_EXTENSION_ERROR:
__BASE: {type: FAULT, level: MINOR, tag: ability, desc: start extensionAbility error}
USER_ID: {type: INT32, desc: userId}
ERROR_CODE: {type: INT32, desc: error code}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
STOP_EXTENSION_ERROR:
__BASE: {type: FAULT, level: MINOR, tag: ability, desc: stop extensionAbility error}
USER_ID: {type: INT32, desc: userId}
ERROR_CODE: {type: INT32, desc: error code}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
CONNECT_SERVICE_ERROR:
__BASE: {type: FAULT, level: MINOR, tag: ability, desc: connnect serviceExtensionAbility error}
USER_ID: {type: INT32, desc: userId}
ERROR_CODE: {type: INT32, desc: error code}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
DISCONNECT_SERVICE_ERROR:
__BASE: {type: FAULT, level: MINOR, tag: ability, desc: disconnect serviceExtensionAbility error}
USER_ID: {type: INT32, desc: userId}
ERROR_CODE: {type: INT32, desc: error code}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
# ability behavior event
START_ABILITY:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: start ability}
USER_ID: {type: INT32, desc: userId}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
DO_FOREGROUND_ABILITY:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: foreground ability}
SCENE_FLAG: {type: STRING, desc: scene flag}
DO_BACKGROUND_ABILITY:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: background ability}
SCENE_FLAG: {type: STRING, desc: scene flag}
CLOSE_ABILITY:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: close ability}
TERMINATE_ABILITY:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: terminate ability}
# serviceExtensionAbility behavior event
START_SERVICE:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: start serviceExtensionAbility}
USER_ID: {type: INT32, desc: userId}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
EXTENSION_TYPE: {type: STRING, desc: extension type}
STOP_SERVICE:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: stop serviceExtensionAbility}
USER_ID: {type: INT32, desc: userId}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
EXTENSION_TYPE: {type: STRING, desc: extension type}
CONNECT_SERVICE:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: connect serviceAbility}
USER_ID: {type: INT32, desc: userId}
BUNDLE_NAME: {type: STRING, desc: bundle name}
MODULE_NAME: {type: STRING, desc: module name}
ABILITY_NAME: {type: STRING, desc: ability name}
DISCONNECT_SERVICE:
__BASE: {type: BEHAVIOR, level: MINOR, tag: ability, desc: disconnect serviceAbility}
# app behavior event
APP_ATTACH:
__BASE: {type: BEHAVIOR, level: MINOR, tag: app, desc: attach app}
BUNDLE_NAME: {type: STRING, desc: bundle name}
VERSION_NAME: {type: STRING, desc: version name}
VERSION_CODE: {type: INT32, desc: version code}
PID: {type: INT32, desc: pid}
TIME_STAMP: {type: INT32, desc: time stamp}
APP_LAUNCH:
__BASE: {type: BEHAVIOR, level: MINOR, tag: app, desc: launch app}
BUNDLE_NAME: {type: STRING, desc: bundle name}
VERSION_NAME: {type: STRING, desc: version name}
VERSION_CODE: {type: INT32, desc: version code}
PID: {type: INT32, desc: pid}
TIME_STAMP: {type: INT32, desc: time stamp}
APP_FOREGROUND:
__BASE: {type: BEHAVIOR, level: MINOR, tag: app, desc: foreground app}
BUNDLE_NAME: {type: STRING, desc: bundle name}
VERSION_NAME: {type: STRING, desc: version name}
VERSION_CODE: {type: INT32, desc: version code}
PID: {type: INT32, desc: pid}
TIME_STAMP: {type: INT32, desc: time stamp}
APP_BACKGROUND:
__BASE: {type: BEHAVIOR, level: MINOR, tag: app, desc: background app}
BUNDLE_NAME: {type: STRING, desc: bundle name}
VERSION_NAME: {type: STRING, desc: version name}
VERSION_CODE: {type: INT32, desc: version code}
PID: {type: INT32, desc: pid}
TIME_STAMP: {type: INT32, desc: time stamp}
APP_TERMINATE:
__BASE: {type: BEHAVIOR, level: MINOR, tag: app, desc: terminate app}
BUNDLE_NAME: {type: STRING, desc: bundle name}
VERSION_NAME: {type: STRING, desc: version name}
VERSION_CODE: {type: INT32, desc: version code}
PID: {type: INT32, desc: pid}
TIME_STAMP: {type: INT32, desc: time stamp}
@@ -52,6 +52,7 @@ ohos_shared_library("featureability") {
"bundle_framework:appexecfwk_core",
"dataability:native_dataability",
"eventhandler:libeventhandler",
"hitrace_native:hitrace_meter",
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",
"napi:ace_napi",
@@ -25,6 +25,7 @@
#include "napi_context.h"
#include "napi_data_ability_helper.h"
#include "securec.h"
#include "hitrace_meter.h"
using namespace OHOS::AAFwk;
using namespace OHOS::AppExecFwk;
@@ -1383,6 +1384,7 @@ napi_value NAPI_AcquireDataAbilityHelper(napi_env env, napi_callback_info info)
*/
napi_value NAPI_FAConnectAbility(napi_env env, napi_callback_info info)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("FA connect ability called.");
return NAPI_ConnectAbilityCommon(env, info, AbilityType::PAGE);
}
@@ -1397,6 +1399,7 @@ napi_value NAPI_FAConnectAbility(napi_env env, napi_callback_info info)
*/
napi_value NAPI_FADisConnectAbility(napi_env env, napi_callback_info info)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("FA disconnect ability called.");
return NAPI_DisConnectAbilityCommon(env, info, AbilityType::PAGE);
}
@@ -23,6 +23,7 @@
#include "iservice_registry.h"
#include "string_ex.h"
#include "system_ability_definition.h"
#include "hitrace_meter.h"
namespace OHOS {
namespace AAFwk {
@@ -97,6 +98,7 @@ ErrCode AbilityManagerClient::ScheduleCommandAbilityDone(const sptr<IRemoteObjec
ErrCode AbilityManagerClient::StartAbility(const Want &want, int requestCode, int32_t userId)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
auto abms = GetAbilityManager();
CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
return abms->StartAbility(want, userId, requestCode);
@@ -105,6 +107,7 @@ ErrCode AbilityManagerClient::StartAbility(const Want &want, int requestCode, in
ErrCode AbilityManagerClient::StartAbility(
const Want &want, const sptr<IRemoteObject> &callerToken, int requestCode, int32_t userId)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
auto abms = GetAbilityManager();
CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
HILOG_INFO("Start ability come, ability:%{public}s, userId:%{public}d.",
@@ -115,6 +118,7 @@ ErrCode AbilityManagerClient::StartAbility(
ErrCode AbilityManagerClient::StartAbility(const Want &want, const AbilityStartSetting &abilityStartSetting,
const sptr<IRemoteObject> &callerToken, int requestCode, int32_t userId)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
auto abms = GetAbilityManager();
CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
return abms->StartAbility(want, abilityStartSetting, callerToken, userId, requestCode);
@@ -123,6 +127,7 @@ ErrCode AbilityManagerClient::StartAbility(const Want &want, const AbilityStartS
ErrCode AbilityManagerClient::StartAbility(const Want &want, const StartOptions &startOptions,
const sptr<IRemoteObject> &callerToken, int requestCode, int32_t userId)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
auto abms = GetAbilityManager();
CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
HILOG_INFO("%{public}s come, abilityName=%{public}s, userId=%{public}d.",
@@ -160,6 +165,7 @@ ErrCode AbilityManagerClient::TerminateAbility(const sptr<IRemoteObject> &token,
ErrCode AbilityManagerClient::TerminateAbility(const sptr<IRemoteObject> &callerToken, int requestCode)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
auto abms = GetAbilityManager();
CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
return abms->TerminateAbilityByCaller(callerToken, requestCode);
@@ -182,6 +188,7 @@ ErrCode AbilityManagerClient::CloseAbility(const sptr<IRemoteObject> &token, int
ErrCode AbilityManagerClient::MinimizeAbility(const sptr<IRemoteObject> &token, bool fromUser)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
auto abms = GetAbilityManager();
CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
HILOG_INFO("Minimize ability, fromUser:%{public}d.", fromUser);
@@ -190,6 +197,7 @@ ErrCode AbilityManagerClient::MinimizeAbility(const sptr<IRemoteObject> &token,
ErrCode AbilityManagerClient::ConnectAbility(const Want &want, const sptr<IAbilityConnection> &connect, int32_t userId)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
auto abms = GetAbilityManager();
CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
HILOG_INFO("Connect ability called, bundleName:%{public}s, abilityName:%{public}s, userId:%{public}d.",
@@ -200,6 +208,7 @@ ErrCode AbilityManagerClient::ConnectAbility(const Want &want, const sptr<IAbili
ErrCode AbilityManagerClient::ConnectAbility(
const Want &want, const sptr<IAbilityConnection> &connect, const sptr<IRemoteObject> &callerToken, int32_t userId)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
auto abms = GetAbilityManager();
CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
HILOG_INFO("Connect ability called, bundleName:%{public}s, abilityName:%{public}s, userId:%{public}d.",
@@ -209,6 +218,7 @@ ErrCode AbilityManagerClient::ConnectAbility(
ErrCode AbilityManagerClient::DisconnectAbility(const sptr<IAbilityConnection> &connect)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
auto abms = GetAbilityManager();
CHECK_POINTER_RETURN_NOT_CONNECTED(abms);
HILOG_INFO("Disconnect ability begin.");
@@ -56,6 +56,8 @@
#include "uri_permission_manager_client.h"
#include "xcollie/watchdog.h"
#include "parameter.h"
#include "event_report.h"
#include "hisysevent.h"
#ifdef SUPPORT_GRAPHICS
#include "display_manager.h"
@@ -255,8 +257,22 @@ ServiceRunningState AbilityManagerService::QueryServiceState() const
int AbilityManagerService::StartAbility(const Want &want, int32_t userId, int requestCode)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("%{public}s coldStart:%{public}d", __func__, want.GetBoolParam("coldStart", false));
return StartAbilityInner(want, nullptr, requestCode, -1, userId);
AAFWK::EventInfo eventInfo;
eventInfo.userId = userId;
eventInfo.bundleName = want.GetElement().GetBundleName();
eventInfo.moduleName = want.GetElement().GetModuleName();
eventInfo.abilityName = want.GetElement().GetAbilityName();
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY,
HiSysEventType::BEHAVIOR, eventInfo);
int32_t ret = StartAbilityInner(want, nullptr, requestCode, -1, userId);
if (ret != ERR_OK) {
eventInfo.errCode = ret;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
}
return ret;
}
int AbilityManagerService::StartAbility(const Want &want, const sptr<IRemoteObject> &callerToken,
@@ -264,8 +280,18 @@ int AbilityManagerService::StartAbility(const Want &want, const sptr<IRemoteObje
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
auto flags = want.GetFlags();
AAFWK::EventInfo eventInfo;
eventInfo.userId = userId;
eventInfo.bundleName = want.GetElement().GetBundleName();
eventInfo.moduleName = want.GetElement().GetModuleName();
eventInfo.abilityName = want.GetElement().GetAbilityName();
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY,
HiSysEventType::BEHAVIOR, eventInfo);
if ((flags & Want::FLAG_ABILITY_CONTINUATION) == Want::FLAG_ABILITY_CONTINUATION) {
HILOG_ERROR("StartAbility with continuation flags is not allowed!");
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
@@ -278,16 +304,29 @@ int AbilityManagerService::StartAbility(const Want &want, const sptr<IRemoteObje
fiWant.SetParam(FREE_INSTALL_TYPE, freeInstallType);
int32_t validUserId = GetValidUserId(userId);
auto manager = std::make_shared<FreeInstallManager>(weak_from_this());
return manager->FreeInstall(fiWant, validUserId, requestCode, callerToken, CheckIfOperateRemote(want));
eventInfo.errCode = manager->FreeInstall(fiWant, validUserId, requestCode, callerToken,
CheckIfOperateRemote(want));
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return eventInfo.errCode;
}
HILOG_INFO("Start ability come, ability is %{public}s, userId is %{public}d",
want.GetElement().GetAbilityName().c_str(), userId);
if (CheckIfOperateRemote(want)) {
HILOG_INFO("AbilityManagerService::StartAbility. try to StartRemoteAbility");
return StartRemoteAbility(want, requestCode);
eventInfo.errCode = StartRemoteAbility(want, requestCode);
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return eventInfo.errCode;
}
return StartAbilityInner(want, callerToken, requestCode, -1, userId);
int32_t ret = StartAbilityInner(want, callerToken, requestCode, -1, userId);
if (ret != ERR_OK) {
eventInfo.errCode = ret;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
}
return ret;
}
int AbilityManagerService::StartAbilityInner(const Want &want, const sptr<IRemoteObject> &callerToken,
@@ -377,19 +416,35 @@ int AbilityManagerService::StartAbility(const Want &want, const AbilityStartSett
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Start ability setting.");
AAFWK::EventInfo eventInfo;
eventInfo.userId = userId;
eventInfo.bundleName = want.GetElement().GetBundleName();
eventInfo.moduleName = want.GetElement().GetModuleName();
eventInfo.abilityName = want.GetElement().GetAbilityName();
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY,
HiSysEventType::BEHAVIOR, eventInfo);
if (VerifyAccountPermission(userId) == CHECK_PERMISSION_FAILED) {
HILOG_ERROR("%{public}s: Permission verification failed", __func__);
eventInfo.errCode = CHECK_PERMISSION_FAILED;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return CHECK_PERMISSION_FAILED;
}
if (callerToken != nullptr && !VerificationAllToken(callerToken)) {
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
int32_t oriValidUserId = GetValidUserId(userId);
int32_t validUserId = oriValidUserId;
if (!JudgeMultiUserConcurrency(validUserId)) {
HILOG_ERROR("Multi-user non-concurrent mode is not satisfied.");
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
@@ -397,6 +452,9 @@ int AbilityManagerService::StartAbility(const Want &want, const AbilityStartSett
auto result = GenerateAbilityRequest(want, requestCode, abilityRequest, callerToken, validUserId);
if (result != ERR_OK) {
HILOG_ERROR("Generate ability request local error.");
eventInfo.errCode = result;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return result;
}
auto abilityInfo = abilityRequest.abilityInfo;
@@ -406,11 +464,17 @@ int AbilityManagerService::StartAbility(const Want &want, const AbilityStartSett
result = CheckStaticCfgPermission(abilityInfo);
if (result != AppExecFwk::Constants::PERMISSION_GRANTED) {
eventInfo.errCode = result;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return result;
}
result = AbilityUtil::JudgeAbilityVisibleControl(abilityInfo);
if (result != ERR_OK) {
HILOG_ERROR("%{public}s JudgeAbilityVisibleControl error.", __func__);
eventInfo.errCode = result;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return result;
}
@@ -418,6 +482,9 @@ int AbilityManagerService::StartAbility(const Want &want, const AbilityStartSett
if (abilityInfo.type == AppExecFwk::AbilityType::DATA) {
HILOG_ERROR("Cannot start data ability, use 'AcquireDataAbility()' instead.");
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
@@ -427,24 +494,42 @@ int AbilityManagerService::StartAbility(const Want &want, const AbilityStartSett
HILOG_ERROR("StartAbility: App data ability preloading failed, '%{public}s', %{public}d",
abilityInfo.bundleName.c_str(),
result);
eventInfo.errCode = result;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return result;
}
}
#ifdef SUPPORT_GRAPHICS
if (abilityInfo.type != AppExecFwk::AbilityType::PAGE) {
HILOG_ERROR("Only support for page type ability.");
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
#endif
if (!IsAbilityControllerStart(want, abilityInfo.bundleName)) {
eventInfo.errCode = ERR_WOULD_BLOCK;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_WOULD_BLOCK;
}
auto missionListManager = GetListManagerByUserId(oriValidUserId);
if (missionListManager == nullptr) {
HILOG_ERROR("missionListManager is Null. userId=%{public}d", oriValidUserId);
HILOG_ERROR("missionListManager is Null. userId=%{public}d", validUserId);
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
return missionListManager->StartAbility(abilityRequest);
int32_t ret = missionListManager->StartAbility(abilityRequest);
if (ret != ERR_OK) {
eventInfo.errCode = ret;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
}
return ret;
}
int AbilityManagerService::StartAbility(const Want &want, const StartOptions &startOptions,
@@ -452,19 +537,35 @@ int AbilityManagerService::StartAbility(const Want &want, const StartOptions &st
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Start ability options.");
AAFWK::EventInfo eventInfo;
eventInfo.userId = userId;
eventInfo.bundleName = want.GetElement().GetBundleName();
eventInfo.moduleName = want.GetElement().GetModuleName();
eventInfo.abilityName = want.GetElement().GetAbilityName();
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY,
HiSysEventType::BEHAVIOR, eventInfo);
if (VerifyAccountPermission(userId) == CHECK_PERMISSION_FAILED) {
HILOG_ERROR("%{public}s: Permission verification failed", __func__);
eventInfo.errCode = CHECK_PERMISSION_FAILED;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return CHECK_PERMISSION_FAILED;
}
if (callerToken != nullptr && !VerificationAllToken(callerToken)) {
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
int32_t oriValidUserId = GetValidUserId(userId);
int32_t validUserId = oriValidUserId;
if (!JudgeMultiUserConcurrency(validUserId)) {
HILOG_ERROR("Multi-user non-concurrent mode is not satisfied.");
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
@@ -472,6 +573,9 @@ int AbilityManagerService::StartAbility(const Want &want, const StartOptions &st
auto result = GenerateAbilityRequest(want, requestCode, abilityRequest, callerToken, validUserId);
if (result != ERR_OK) {
HILOG_ERROR("Generate ability request local error.");
eventInfo.errCode = result;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return result;
}
@@ -482,16 +586,25 @@ int AbilityManagerService::StartAbility(const Want &want, const StartOptions &st
result = CheckStaticCfgPermission(abilityInfo);
if (result != AppExecFwk::Constants::PERMISSION_GRANTED) {
eventInfo.errCode = result;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return result;
}
result = AbilityUtil::JudgeAbilityVisibleControl(abilityInfo);
if (result != ERR_OK) {
HILOG_ERROR("%{public}s JudgeAbilityVisibleControl error.", __func__);
eventInfo.errCode = result;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return result;
}
if (abilityInfo.type != AppExecFwk::AbilityType::PAGE) {
HILOG_ERROR("Only support for page type ability.");
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
@@ -501,11 +614,17 @@ int AbilityManagerService::StartAbility(const Want &want, const StartOptions &st
HILOG_ERROR("StartAbility: App data ability preloading failed, '%{public}s', %{public}d",
abilityInfo.bundleName.c_str(),
result);
eventInfo.errCode = result;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return result;
}
}
if (!IsAbilityControllerStart(want, abilityInfo.bundleName)) {
eventInfo.errCode = ERR_WOULD_BLOCK;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_WOULD_BLOCK;
}
GrantUriPermission(want, validUserId);
@@ -514,9 +633,18 @@ int AbilityManagerService::StartAbility(const Want &want, const StartOptions &st
auto missionListManager = GetListManagerByUserId(oriValidUserId);
if (missionListManager == nullptr) {
HILOG_ERROR("missionListManager is Null. userId=%{public}d", oriValidUserId);
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
return missionListManager->StartAbility(abilityRequest);
int32_t ret = missionListManager->StartAbility(abilityRequest);
if (ret != ERR_OK) {
eventInfo.errCode = ret;
AAFWK::EventReport::SendAbilityEvent(AAFWK::START_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
}
return ret;
}
int AbilityManagerService::CheckOptExtensionAbility(const Want &want, AbilityRequest &abilityRequest,
@@ -557,18 +685,35 @@ int AbilityManagerService::StartExtensionAbility(const Want &want, const sptr<IR
{
HILOG_INFO("Start extension ability come, bundlename: %{public}s, ability is %{public}s, userId is %{public}d",
want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str(), userId);
AAFWK::EventInfo eventInfo;
eventInfo.userId = userId;
eventInfo.bundleName = want.GetElement().GetBundleName();
eventInfo.moduleName = want.GetElement().GetModuleName();
eventInfo.abilityName = want.GetElement().GetAbilityName();
eventInfo.extensionType = (int32_t)extensionType;
AAFWK::EventReport::SendExtensionEvent(AAFWK::START_SERVICE,
HiSysEventType::BEHAVIOR, eventInfo);
if (VerifyAccountPermission(userId) == CHECK_PERMISSION_FAILED) {
HILOG_ERROR("%{public}s: Permission verification failed.", __func__);
eventInfo.errCode = CHECK_PERMISSION_FAILED;
AAFWK::EventReport::SendExtensionEvent(AAFWK::START_EXTENSION_ERROR,
HiSysEventType::FAULT, eventInfo);
return CHECK_PERMISSION_FAILED;
}
if (callerToken != nullptr && !VerificationAllToken(callerToken)) {
HILOG_ERROR("%{public}s VerificationAllToken failed.", __func__);
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendExtensionEvent(AAFWK::START_EXTENSION_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
int32_t validUserId = GetValidUserId(userId);
if (!JudgeMultiUserConcurrency(validUserId)) {
HILOG_ERROR("Multi-user non-concurrent mode is not satisfied.");
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendExtensionEvent(AAFWK::START_EXTENSION_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
@@ -576,6 +721,9 @@ int AbilityManagerService::StartExtensionAbility(const Want &want, const sptr<IR
auto result = GenerateExtensionAbilityRequest(want, abilityRequest, callerToken, validUserId);
if (result != ERR_OK) {
HILOG_ERROR("Generate ability request local error.");
eventInfo.errCode = result;
AAFWK::EventReport::SendExtensionEvent(AAFWK::START_EXTENSION_ERROR,
HiSysEventType::FAULT, eventInfo);
return result;
}
@@ -587,16 +735,27 @@ int AbilityManagerService::StartExtensionAbility(const Want &want, const sptr<IR
result = CheckOptExtensionAbility(want, abilityRequest, validUserId, extensionType);
if (result != ERR_OK) {
HILOG_ERROR("CheckOptExtensionAbility error.");
eventInfo.errCode = result;
AAFWK::EventReport::SendExtensionEvent(AAFWK::START_EXTENSION_ERROR,
HiSysEventType::FAULT, eventInfo);
return result;
}
auto connectManager = GetConnectManagerByUserId(validUserId);
if (!connectManager) {
HILOG_ERROR("connectManager is nullptr. userId=%{public}d", validUserId);
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendExtensionEvent(AAFWK::START_EXTENSION_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
HILOG_INFO("Start extension begin, name is %{public}s.", abilityInfo.name.c_str());
return connectManager->StartAbility(abilityRequest);
eventInfo.errCode = connectManager->StartAbility(abilityRequest);
if (eventInfo.errCode != ERR_OK) {
AAFWK::EventReport::SendExtensionEvent(AAFWK::START_EXTENSION_ERROR,
HiSysEventType::FAULT, eventInfo);
}
return eventInfo.errCode;
}
int AbilityManagerService::StopExtensionAbility(const Want &want, const sptr<IRemoteObject> &callerToken,
@@ -604,18 +763,38 @@ int AbilityManagerService::StopExtensionAbility(const Want &want, const sptr<IRe
{
HILOG_INFO("Stop extension ability come, bundlename: %{public}s, ability is %{public}s, userId is %{public}d",
want.GetElement().GetBundleName().c_str(), want.GetElement().GetAbilityName().c_str(), userId);
AAFWK::EventInfo eventInfo;
eventInfo.userId = userId;
eventInfo.bundleName = want.GetElement().GetBundleName();
eventInfo.moduleName = want.GetElement().GetModuleName();
eventInfo.abilityName = want.GetElement().GetAbilityName();
eventInfo.extensionType = (int32_t)extensionType;
AAFWK::EventReport::SendExtensionEvent(AAFWK::STOP_SERVICE,
HiSysEventType::BEHAVIOR, eventInfo);
if (VerifyAccountPermission(userId) == CHECK_PERMISSION_FAILED) {
HILOG_ERROR("%{public}s: Permission verification failed.", __func__);
eventInfo.errCode = CHECK_PERMISSION_FAILED;
AAFWK::EventReport::SendExtensionEvent(AAFWK::STOP_EXTENSION_ERROR,
HiSysEventType::FAULT,
eventInfo);
return CHECK_PERMISSION_FAILED;
}
if (callerToken != nullptr && !VerificationAllToken(callerToken)) {
HILOG_ERROR("%{public}s VerificationAllToken failed.", __func__);
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendExtensionEvent(AAFWK::STOP_EXTENSION_ERROR,
HiSysEventType::FAULT,
eventInfo);
return ERR_INVALID_VALUE;
}
int32_t validUserId = GetValidUserId(userId);
if (!JudgeMultiUserConcurrency(validUserId)) {
HILOG_ERROR("Multi-user non-concurrent mode is not satisfied.");
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendExtensionEvent(AAFWK::STOP_EXTENSION_ERROR,
HiSysEventType::FAULT,
eventInfo);
return ERR_INVALID_VALUE;
}
@@ -623,6 +802,10 @@ int AbilityManagerService::StopExtensionAbility(const Want &want, const sptr<IRe
auto result = GenerateExtensionAbilityRequest(want, abilityRequest, callerToken, validUserId);
if (result != ERR_OK) {
HILOG_ERROR("Generate ability request local error.");
eventInfo.errCode = result;
AAFWK::EventReport::SendExtensionEvent(AAFWK::STOP_EXTENSION_ERROR,
HiSysEventType::FAULT,
eventInfo);
return result;
}
@@ -634,16 +817,28 @@ int AbilityManagerService::StopExtensionAbility(const Want &want, const sptr<IRe
result = CheckOptExtensionAbility(want, abilityRequest, validUserId, extensionType);
if (result != ERR_OK) {
HILOG_ERROR("CheckOptExtensionAbility error.");
eventInfo.errCode = result;
AAFWK::EventReport::SendAbilityEvent(AAFWK::STOP_EXTENSION_ERROR,
HiSysEventType::FAULT,
eventInfo);
return result;
}
auto connectManager = GetConnectManagerByUserId(validUserId);
if (!connectManager) {
HILOG_ERROR("connectManager is nullptr. userId=%{public}d", validUserId);
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendExtensionEvent(AAFWK::STOP_EXTENSION_ERROR,
HiSysEventType::FAULT,
eventInfo);
return ERR_INVALID_VALUE;
}
HILOG_INFO("Stop extension begin, name is %{public}s.", abilityInfo.name.c_str());
return connectManager->StopServiceAbility(abilityRequest);
eventInfo.errCode = connectManager->StopServiceAbility(abilityRequest);
AAFWK::EventReport::SendExtensionEvent(AAFWK::STOP_EXTENSION_ERROR,
HiSysEventType::FAULT,
eventInfo);
return eventInfo.errCode;
}
@@ -702,11 +897,21 @@ void AbilityManagerService::GrantUriPermission(const Want &want, int32_t validUs
int AbilityManagerService::TerminateAbility(const sptr<IRemoteObject> &token, int resultCode, const Want *resultWant)
{
AAFWK::EventInfo eventInfo;
AAFWK::EventReport::SendAbilityEvent(AAFWK::TERMINATE_ABILITY,
HiSysEventType::BEHAVIOR, eventInfo);
if (eventInfo.errCode != ERR_OK) {
AAFWK::EventReport::SendAbilityEvent(AAFWK::TERMINATE_ABILITY_ERROR,
HiSysEventType::FAULT, eventInfo);
}
return TerminateAbilityWithFlag(token, resultCode, resultWant, true);
}
int AbilityManagerService::CloseAbility(const sptr<IRemoteObject> &token, int resultCode, const Want *resultWant)
{
AAFWK::EventInfo eventInfo;
AAFWK::EventReport::SendAbilityEvent(AAFWK::CLOSE_ABILITY,
HiSysEventType::BEHAVIOR, eventInfo);
return TerminateAbilityWithFlag(token, resultCode, resultWant, false);
}
@@ -904,6 +1109,7 @@ int AbilityManagerService::TerminateAbilityByCaller(const sptr<IRemoteObject> &c
int AbilityManagerService::MinimizeAbility(const sptr<IRemoteObject> &token, bool fromUser)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("Minimize ability, fromUser:%{public}d.", fromUser);
if (!VerificationAllToken(token)) {
return ERR_INVALID_VALUE;
@@ -948,20 +1154,36 @@ int AbilityManagerService::ConnectAbility(
HILOG_INFO("Connect ability called.");
CHECK_POINTER_AND_RETURN(connect, ERR_INVALID_VALUE);
CHECK_POINTER_AND_RETURN(connect->AsObject(), ERR_INVALID_VALUE);
AAFWK::EventInfo eventInfo;
eventInfo.userId = userId;
eventInfo.bundleName = want.GetElement().GetBundleName();
eventInfo.moduleName = want.GetElement().GetModuleName();
eventInfo.abilityName = want.GetElement().GetAbilityName();
AAFWK::EventReport::SendExtensionEvent(AAFWK::CONNECT_SERVICE, HiSysEventType::BEHAVIOR,
eventInfo);
if (VerifyAccountPermission(userId) == CHECK_PERMISSION_FAILED) {
HILOG_ERROR("%{public}s: Permission verification failed", __func__);
eventInfo.errCode = CHECK_PERMISSION_FAILED;
AAFWK::EventReport::SendExtensionEvent(AAFWK::CONNECT_SERVICE_ERROR,
HiSysEventType::FAULT, eventInfo);
return CHECK_PERMISSION_FAILED;
}
int32_t validUserId = GetValidUserId(userId);
std::string localDeviceId;
if (!GetLocalDeviceId(localDeviceId)) {
HILOG_ERROR("%{public}s: Get Local DeviceId failed", __func__);
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendExtensionEvent(AAFWK::CONNECT_SERVICE_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
auto manager = std::make_shared<FreeInstallManager>(weak_from_this());
int result = manager->IsConnectFreeInstall(want, validUserId, callerToken, localDeviceId);
if (result != ERR_OK) {
eventInfo.errCode = result;
AAFWK::EventReport::SendExtensionEvent(AAFWK::CONNECT_SERVICE_ERROR,
HiSysEventType::FAULT, eventInfo);
return result;
}
@@ -976,6 +1198,9 @@ int AbilityManagerService::ConnectAbility(
bool queryResult = IN_PROCESS_CALL(bms->QueryExtensionAbilityInfoByUri(uri, validUserId, extensionInfo));
if (!queryResult || extensionInfo.name.empty() || extensionInfo.bundleName.empty()) {
HILOG_ERROR("Invalid extension ability info.");
eventInfo.errCode = ERR_INVALID_VALUE;
AAFWK::EventReport::SendExtensionEvent(AAFWK::CONNECT_SERVICE_ERROR,
HiSysEventType::FAULT, eventInfo);
return ERR_INVALID_VALUE;
}
abilityWant.SetElementName(extensionInfo.bundleName, extensionInfo.name);
@@ -983,26 +1208,44 @@ int AbilityManagerService::ConnectAbility(
if (CheckIfOperateRemote(abilityWant)) {
HILOG_INFO("AbilityManagerService::ConnectAbility. try to ConnectRemoteAbility");
return ConnectRemoteAbility(abilityWant, connect->AsObject());
eventInfo.errCode = ConnectRemoteAbility(abilityWant, connect->AsObject());
AAFWK::EventReport::SendExtensionEvent(AAFWK::CONNECT_SERVICE_ERROR,
HiSysEventType::FAULT, eventInfo);
return eventInfo.errCode;
}
if (callerToken != nullptr && callerToken->GetObjectDescriptor() != u"ohos.aafwk.AbilityToken") {
HILOG_INFO("%{public}s invalid Token.", __func__);
return ConnectLocalAbility(abilityWant, validUserId, connect, nullptr);
eventInfo.errCode = ConnectLocalAbility(abilityWant, validUserId, connect, nullptr);
AAFWK::EventReport::SendExtensionEvent(AAFWK::CONNECT_SERVICE_ERROR,
HiSysEventType::FAULT, eventInfo);
return eventInfo.errCode;
}
return ConnectLocalAbility(abilityWant, validUserId, connect, callerToken);
eventInfo.errCode = ConnectLocalAbility(abilityWant, validUserId, connect, callerToken);
if (eventInfo.errCode != ERR_OK) {
AAFWK::EventReport::SendExtensionEvent(AAFWK::CONNECT_SERVICE_ERROR,
HiSysEventType::FAULT, eventInfo);
}
return eventInfo.errCode;
}
int AbilityManagerService::DisconnectAbility(const sptr<IAbilityConnection> &connect)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Disconnect ability begin.");
AAFWK::EventInfo eventInfo;
AAFWK::EventReport::SendExtensionEvent(AAFWK::DISCONNECT_SERVICE, HiSysEventType::BEHAVIOR,
eventInfo);
CHECK_POINTER_AND_RETURN(connect, ERR_INVALID_VALUE);
CHECK_POINTER_AND_RETURN(connect->AsObject(), ERR_INVALID_VALUE);
DisconnectLocalAbility(connect);
DisconnectRemoteAbility(connect->AsObject());
return ERR_OK;
eventInfo.errCode = DisconnectLocalAbility(connect);
eventInfo.errCode |= DisconnectRemoteAbility(connect->AsObject());
if (eventInfo.errCode != ERR_OK) {
AAFWK::EventReport::SendExtensionEvent(AAFWK::DISCONNECT_SERVICE_ERROR,
HiSysEventType::FAULT, eventInfo);
}
return eventInfo.errCode;
}
int AbilityManagerService::ConnectLocalAbility(const Want &want, const int32_t userId,
@@ -3906,6 +4149,10 @@ int AbilityManagerService::DoAbilityForeground(const sptr<IRemoteObject> &token,
}
abilityRecord->ProcessForegroundAbility(flag);
AAFWK::EventInfo eventInfo;
eventInfo.sceneFlag = flag;
AAFWK::EventReport::SendAbilityEvent(AAFWK::DO_FOREGROUND_ABILITY,
HiSysEventType::BEHAVIOR, eventInfo);
return ERR_OK;
}
@@ -3920,6 +4167,10 @@ int AbilityManagerService::DoAbilityBackground(const sptr<IRemoteObject> &token,
abilityRecord->lifeCycleStateInfo_.sceneFlag = flag;
int ret = MinimizeAbility(token);
abilityRecord->lifeCycleStateInfo_.sceneFlag = SCENE_FLAG_NORMAL;
AAFWK::EventInfo eventInfo;
eventInfo.sceneFlag = flag;
AAFWK::EventReport::SendAbilityEvent(AAFWK::DO_FOREGROUND_ABILITY,
HiSysEventType::BEHAVIOR, eventInfo);
return ret;
}
@@ -249,6 +249,7 @@ void AbilityRecord::ProcessForegroundAbility(uint32_t sceneFlag)
void AbilityRecord::BackgroundAbility(const Closure &task)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("Move the ability to background, ability:%{public}s.", abilityInfo_.name.c_str());
if (lifecycleDeal_ == nullptr) {
HILOG_ERROR("Move the ability to background fail, lifecycleDeal_ is null.");
@@ -279,6 +280,7 @@ void AbilityRecord::BackgroundAbility(const Closure &task)
int AbilityRecord::TerminateAbility()
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("Schedule terminate ability to AppMs, ability:%{public}s.", abilityInfo_.name.c_str());
return DelayedSingleton<AppScheduler>::GetInstance()->TerminateAbility(token_);
}
@@ -454,6 +456,7 @@ void AbilityRecord::Activate()
void AbilityRecord::Inactivate()
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("Inactivate ability start, ability:%{public}s.", abilityInfo_.name.c_str());
CHECK_POINTER(lifecycleDeal_);
@@ -467,6 +470,7 @@ void AbilityRecord::Inactivate()
void AbilityRecord::Terminate(const Closure &task)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("Begin to terminate ability, ability:%{public}s.", abilityInfo_.name.c_str());
CHECK_POINTER(lifecycleDeal_);
auto handler = DelayedSingleton<AbilityManagerService>::GetInstance()->GetEventHandler();
@@ -495,6 +499,7 @@ void AbilityRecord::ConnectAbility()
void AbilityRecord::DisconnectAbility()
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("Disconnect ability, ability:%{public}s.", abilityInfo_.name.c_str());
CHECK_POINTER(lifecycleDeal_);
lifecycleDeal_->DisconnectAbility(want_);
@@ -76,6 +76,7 @@ bool AppScheduler::Init(const std::weak_ptr<AppStateCallback> &callback)
int AppScheduler::LoadAbility(const sptr<IRemoteObject> &token, const sptr<IRemoteObject> &preToken,
const AppExecFwk::AbilityInfo &abilityInfo, const AppExecFwk::ApplicationInfo &applicationInfo, const Want &want)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Send load ability to AppMgrService.");
CHECK_POINTER_AND_RETURN(appMgrClient_, INNER_ERR);
/* because the errcode type of AppMgr Client API will be changed to int,
@@ -242,6 +242,7 @@ void MissionListManager::StartWaittingAbility()
int MissionListManager::StartAbilityLocked(const std::shared_ptr<AbilityRecord> &currentTopAbility,
const std::shared_ptr<AbilityRecord> &callerAbility, const AbilityRequest &abilityRequest)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_DEBUG("Start ability locked.");
// 1. choose target mission list
auto targetList = GetTargetMissionList(callerAbility, abilityRequest);
@@ -621,6 +622,7 @@ std::shared_ptr<AbilityRecord> MissionListManager::GetCurrentTopAbilityLocked()
int MissionListManager::AttachAbilityThread(const sptr<IAbilityScheduler> &scheduler, const sptr<IRemoteObject> &token)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
std::lock_guard<std::recursive_mutex> guard(managerLock_);
auto abilityRecord = GetAbilityRecordByToken(token);
CHECK_POINTER_AND_RETURN(abilityRecord, ERR_INVALID_VALUE);
@@ -775,6 +777,7 @@ std::shared_ptr<Mission> MissionListManager::GetMissionById(int missionId) const
int MissionListManager::AbilityTransactionDone(const sptr<IRemoteObject> &token, int state, const PacMap &saveData)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
int targetState = AbilityRecord::ConvertLifeCycleToAbilityState(static_cast<AbilityLifeCycleState>(state));
std::string abilityState = AbilityRecord::ConvertAbilityState(static_cast<AbilityState>(targetState));
HILOG_INFO("AbilityTransactionDone, state: %{public}s.", abilityState.c_str());
@@ -960,6 +963,7 @@ void MissionListManager::CompleteBackground(const std::shared_ptr<AbilityRecord>
int MissionListManager::TerminateAbility(const std::shared_ptr<AbilityRecord> &abilityRecord,
int resultCode, const Want *resultWant, bool flag)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
std::string element = abilityRecord->GetWant().GetElement().GetURI();
HILOG_DEBUG("Terminate ability, ability is %{public}s.", element.c_str());
std::lock_guard<std::recursive_mutex> guard(managerLock_);
@@ -1324,6 +1328,7 @@ int MissionListManager::SetMissionLockedState(int missionId, bool lockedState)
void MissionListManager::MoveToBackgroundTask(const std::shared_ptr<AbilityRecord> &abilityRecord)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
if (abilityRecord == nullptr) {
HILOG_ERROR("Move the ability to background fail, ability record is null.");
return;
+1
View File
@@ -58,6 +58,7 @@ ohos_source_set("abilityms_test_source") {
"${services_path}/abilitymgr/src/want_sender_proxy.cpp",
"${services_path}/abilitymgr/src/want_sender_stub.cpp",
"${services_path}/abilitymgr/src/wants_info.cpp",
"${services_path}/common/src/event_report.cpp",
]
include_dirs = [
@@ -57,6 +57,7 @@ ohos_unittest("ability_manager_client_test") {
"ability_base:zuri",
"access_token:libaccesstoken_sdk",
"dsoftbus_standard:softbus_client",
"hitrace_native:hitrace_meter",
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",
]
@@ -49,6 +49,8 @@
#include "locale_config.h"
#endif
#include "uri_permission_manager_client.h"
#include "event_report.h"
#include "hisysevent.h"
namespace OHOS {
namespace AppExecFwk {
@@ -269,6 +271,14 @@ void AppMgrServiceInner::AttachApplication(const pid_t pid, const sptr<IAppSched
LaunchApplication(appRecord);
}
appRecord->RegisterAppDeathRecipient();
AAFWK::EventInfo eventInfo;
auto applicationInfo = appRecord->GetApplicationInfo();
eventInfo.pid = appRecord->GetPriorityObject()->GetPid();
eventInfo.bundleName = applicationInfo->name;
eventInfo.versionName = applicationInfo->versionName;
eventInfo.versionCode = applicationInfo->versionCode;
eventInfo.processName = applicationInfo->process;
AAFWK::EventReport::SendAppEvent(AAFWK::APP_ATTACH, HiSysEventType::BEHAVIOR, eventInfo);
}
void AppMgrServiceInner::LaunchApplication(const std::shared_ptr<AppRunningRecord> &appRecord)
@@ -304,6 +314,14 @@ void AppMgrServiceInner::LaunchApplication(const std::shared_ptr<AppRunningRecor
return;
}
appRecord->LaunchPendingAbilities();
AAFWK::EventInfo eventInfo;
auto applicationInfo = appRecord->GetApplicationInfo();
eventInfo.pid = appRecord->GetPriorityObject()->GetPid();
eventInfo.bundleName = applicationInfo->name;
eventInfo.versionName = applicationInfo->versionName;
eventInfo.versionCode = applicationInfo->versionCode;
eventInfo.processName = applicationInfo->process;
AAFWK::EventReport::SendAppEvent(AAFWK::APP_LAUNCH, HiSysEventType::BEHAVIOR, eventInfo);
}
void AppMgrServiceInner::AddAbilityStageDone(const int32_t recordId)
@@ -338,6 +356,15 @@ void AppMgrServiceInner::ApplicationForegrounded(const int32_t recordId)
// push the foregrounded app front of RecentAppList.
PushAppFront(recordId);
HILOG_INFO("application is foregrounded");
AAFWK::EventInfo eventInfo;
auto applicationInfo = appRecord->GetApplicationInfo();
eventInfo.pid = appRecord->GetPriorityObject()->GetPid();
eventInfo.bundleName = applicationInfo->name;
eventInfo.versionName = applicationInfo->versionName;
eventInfo.versionCode = applicationInfo->versionCode;
eventInfo.processName = applicationInfo->process;
AAFWK::EventReport::SendAppEvent(AAFWK::APP_FOREGROUND,
HiSysEventType::BEHAVIOR, eventInfo);
}
void AppMgrServiceInner::ApplicationBackgrounded(const int32_t recordId)
@@ -358,6 +385,15 @@ void AppMgrServiceInner::ApplicationBackgrounded(const int32_t recordId)
}
HILOG_INFO("application is backgrounded");
AAFWK::EventInfo eventInfo;
auto applicationInfo = appRecord->GetApplicationInfo();
eventInfo.pid = appRecord->GetPriorityObject()->GetPid();
eventInfo.bundleName = applicationInfo->name;
eventInfo.versionName = applicationInfo->versionName;
eventInfo.versionCode = applicationInfo->versionCode;
eventInfo.processName = applicationInfo->process;
AAFWK::EventReport::SendAppEvent(AAFWK::APP_BACKGROUND,
HiSysEventType::BEHAVIOR, eventInfo);
}
void AppMgrServiceInner::ApplicationTerminated(const int32_t recordId)
@@ -387,6 +423,14 @@ void AppMgrServiceInner::ApplicationTerminated(const int32_t recordId)
OnAppStateChanged(appRecord, ApplicationState::APP_STATE_TERMINATED);
appRunningManager_->RemoveAppRunningRecordById(recordId);
RemoveAppFromRecentListById(recordId);
AAFWK::EventInfo eventInfo;
auto applicationInfo = appRecord->GetApplicationInfo();
eventInfo.pid = appRecord->GetPriorityObject()->GetPid();
eventInfo.bundleName = applicationInfo->name;
eventInfo.versionName = applicationInfo->versionName;
eventInfo.versionCode = applicationInfo->versionCode;
eventInfo.processName = applicationInfo->process;
AAFWK::EventReport::SendAppEvent(AAFWK::APP_TERMINATE, HiSysEventType::BEHAVIOR, eventInfo);
DelayedSingleton<AppStateObserverManager>::GetInstance()->OnProcessDied(appRecord);
HILOG_INFO("application is terminated");
@@ -17,6 +17,7 @@
#include "app_mgr_service_inner.h"
#include "app_running_record.h"
#include "hilog_wrapper.h"
#include "hitrace_meter.h"
namespace OHOS {
namespace AppExecFwk {
@@ -188,6 +189,7 @@ void ModuleRunningRecord::OnAbilityStateChanged(
void ModuleRunningRecord::LaunchAbility(const std::shared_ptr<AbilityRunningRecord> &ability)
{
HITRACE_METER_NAME(HITRACE_TAG_ABILITY_MANAGER, __PRETTY_FUNCTION__);
HILOG_INFO("Launch ability.");
if (!ability || !ability->GetToken()) {
HILOG_ERROR("null abilityRecord or abilityToken");
+9 -2
View File
@@ -35,7 +35,10 @@ ohos_source_set("abilitymgr_common") {
config("perm_verification_config") {
visibility = [ ":*" ]
include_dirs = [ "include" ]
include_dirs = [
"include",
"${bundlefwk_inner_api_path}/appexecfwk_base/include",
]
cflags = []
if (target_cpu == "arm") {
cflags += [ "-DBINDER_IPC_32BIT" ]
@@ -46,10 +49,14 @@ config("perm_verification_config") {
ohos_shared_library("perm_verification") {
public_configs = [ ":perm_verification_config" ]
sources = [ "src/permission_verification.cpp" ]
sources = [
"src/event_report.cpp",
"src/permission_verification.cpp",
]
external_deps = [
"access_token:libaccesstoken_sdk",
"hisysevent_native:libhisysevent",
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",
"utils_base:utils",
+114
View File
@@ -0,0 +1,114 @@
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#ifndef FOUNDATION_AAFWK_SERVICES_ABILITYMGR_INCLUDE_INNER_EVENT_REPORT_H
#define FOUNDATION_AAFWK_SERVICES_ABILITYMGR_INCLUDE_INNER_EVENT_REPORT_H
#include <string>
#include <unordered_map>
#include "errors.h"
#include "hisysevent.h"
#include "extension_ability_info.h"
using HiSysEventType = OHOS::HiviewDFX::HiSysEvent::EventType;
using HiSysEvent = OHOS::HiviewDFX::HiSysEvent;
namespace OHOS {
namespace AAFWK {
namespace {
// fault event
const std::string START_ABILITY_ERROR = "START_ABILITY_ERROR";
const std::string TERMINATE_ABILITY_ERROR = "TERMINATE_ABILITY_ERROR";
const std::string START_EXTENSION_ERROR = "START_EXTENSION_ERROR";
const std::string STOP_EXTENSION_ERROR = "STOP_EXTENSION_ERROR";
const std::string CONNECT_SERVICE_ERROR = "CONNECT_SERVICE_ERROR";
const std::string DISCONNECT_SERVICE_ERROR = "DISCONNECT_SERVICE_ERROR";
// ability behavior event
const std::string START_ABILITY = "START_ABILITY";
const std::string TERMINATE_ABILITY = "TERMINATE_ABILITY";
const std::string CLOSE_ABILITY = "CLOSE_ABILITY";
const std::string DO_FOREGROUND_ABILITY = "DO_FOREGROUND_ABILITY";
const std::string DO_BACKGROUND_ABILITY = "DO_BACKGROUND_ABILITY";
// serviceExtensionAbility behavior event
const std::string START_SERVICE = "START_SERVICE";
const std::string STOP_SERVICE = "STOP_SERVICE";
const std::string CONNECT_SERVICE = "CONNECT_SERVICE";
const std::string DISCONNECT_SERVICE = "DISCONNECT_SERVICE";
// form behavior event
const std::string ADD_FORM = "ADD_FORM";
const std::string REQUEST_FORM = "REQUEST_FORM";
const std::string DELETE_FORM = "DELETE_FORM";
const std::string CASTTEMP_FORM = "CASTTEMP_FORM";
const std::string ACQUIREFORMSTATE_FORM = "ACQUIREFORMSTATE_FORM";
const std::string MESSAGE_EVENT_FORM = "MESSAGE_EVENT_FORM";
const std::string ROUTE_EVENT_FORM = "ROUTE_EVENT_FORM";
const std::string RELEASE_FORM = "RELEASE_FORM";
const std::string DELETE_INVALID_FORM = "DELETE_INVALID_FORM";
const std::string SET_NEXT_REFRESH_TIME_FORM = "SET_NEXT_REFRESH_TIME_FORM";
// app behavior event
const std::string APP_ATTACH = "APP_ATTACH";
const std::string APP_LAUNCH = "APP_LAUNCH";
const std::string APP_FOREGROUND = "APP_FOREGROUND";
const std::string APP_BACKGROUND = "APP_BACKGROUND";
const std::string APP_TERMINATE = "APP_TERMINATE";
}
struct EventInfo {
int32_t pid = -1;
int32_t userId = -1;
int64_t formId = -1;
int32_t extensionType = -1;
uint32_t versionCode = 0;
uint32_t sceneFlag = -1;
std::string versionName;
std::string bundleName;
std::string moduleName;
std::string abilityName;
std::string processName;
// olny used in fault event
ErrCode errCode = ERR_OK;
void Reset()
{
pid =-1;
userId = -1;
formId =-1;
versionCode = 0;
sceneFlag = -1;
versionName.clear();
bundleName.clear();
moduleName.clear();
abilityName.clear();
processName.clear();
extensionType = (int32_t)AppExecFwk::ExtensionAbilityType::UNSPECIFIED;
errCode = ERR_OK;
}
};
class EventReport {
public:
static void SendAppEvent(const std::string &eventName, HiSysEventType type,
const EventInfo& eventInfo);
static void SendAbilityEvent(const std::string &eventName, HiSysEventType type,
const EventInfo& eventInfo);
static void SendExtensionEvent(const std::string &eventName, HiSysEventType type,
const EventInfo& eventInfo);
static void SendFormEvent(const std::string &eventName, HiSysEventType type,
const EventInfo& eventInfo);
};
} // namespace AAFWK
} // namespace OHOS
#endif // FOUNDATION_AAFWK_SERVICES_ABILITYMGR_INCLUDE_INNER_EVENT_REPORT_H
+164
View File
@@ -0,0 +1,164 @@
/*
* Copyright (c) 2022 Huawei Device Co., Ltd.
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#include "event_report.h"
#include "hilog_wrapper.h"
#include <chrono>
namespace OHOS {
namespace AAFWK {
namespace {
// event params
const std::string TYPE = "TYPE";
const std::string EVENT_KEY_PID = "PID";
const std::string EVENT_KEY_USERID = "USERID";
const std::string EVENT_KEY_FORM_ID = "FORM_ID";
const std::string EVENT_KEY_ERROR_CODE = "ERROR_CODE";
const std::string EVENT_KEY_SCENE_FLAG = "SCENE_FLAG";
const std::string EVENT_KEY_BUNDLE_NAME = "BUNDLE_NAME";
const std::string EVENT_KEY_MODULE_NAME = "MODULE_NAME";
const std::string EVENT_KEY_ABILITY_NAME = "ABILITY_NAME";
const std::string EVENT_KEY_VERSION_NAME = "VERSION_NAME";
const std::string EVENT_KEY_VERSION_CODE = "VERSION_CODE";
const std::string EVENT_KEY_PROCESS_NAME = "PROCESS_NAME";
const std::string EVENT_KEY_EXTENSION_TYPE = "EXTENSION_TYPE";
}
void EventReport::SendAppEvent(const std::string &eventName, HiSysEventType type,
const EventInfo& eventInfo)
{
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type,
EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
EVENT_KEY_VERSION_NAME, eventInfo.versionName,
EVENT_KEY_VERSION_CODE, eventInfo.versionCode,
EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
EVENT_KEY_PROCESS_NAME, eventInfo.processName);
}
void EventReport::SendAbilityEvent(const std::string &eventName, HiSysEventType type,
const EventInfo& eventInfo)
{
if (eventName == START_ABILITY_ERROR || eventName == TERMINATE_ABILITY_ERROR) {
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type,
EVENT_KEY_USERID, eventInfo.userId,
EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
EVENT_KEY_ERROR_CODE, eventInfo.errCode);
} else if (eventName == START_ABILITY_ERROR) {
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type,
EVENT_KEY_USERID, eventInfo.userId,
EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
EVENT_KEY_ABILITY_NAME, eventInfo.abilityName);
} else if (eventName == DO_FOREGROUND_ABILITY || eventName == DO_BACKGROUND_ABILITY) {
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type,
EVENT_KEY_SCENE_FLAG, eventInfo.sceneFlag);
} else {
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type);
}
}
void EventReport::SendExtensionEvent(const std::string &eventName, HiSysEventType type,
const EventInfo& eventInfo)
{
if (eventName == DISCONNECT_SERVICE) {
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type);
} else if (eventName == CONNECT_SERVICE) {
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type,
EVENT_KEY_USERID, eventInfo.userId,
EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
EVENT_KEY_ABILITY_NAME, eventInfo.abilityName);
} else if (eventName == START_SERVICE || eventName == STOP_SERVICE) {
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type,
EVENT_KEY_USERID, eventInfo.userId,
EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
EVENT_KEY_EXTENSION_TYPE, eventInfo.extensionType);
} else {
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type,
EVENT_KEY_USERID, eventInfo.userId,
EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
EVENT_KEY_ABILITY_NAME, eventInfo.abilityName,
EVENT_KEY_ERROR_CODE, eventInfo.errCode);
}
}
void EventReport::SendFormEvent(const std::string &eventName, HiSysEventType type,
const EventInfo& eventInfo)
{
if (eventName == DELETE_INVALID_FORM) {
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type);
} else if (eventName == ACQUIREFORMSTATE_FORM || eventName == MESSAGE_EVENT_FORM) {
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type,
EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
EVENT_KEY_ABILITY_NAME, eventInfo.abilityName);
} else if (eventName == ADD_FORM || eventName == REQUEST_FORM || eventName == ROUTE_EVENT_FORM) {
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type,
EVENT_KEY_ABILITY_NAME, eventInfo.formId,
EVENT_KEY_BUNDLE_NAME, eventInfo.bundleName,
EVENT_KEY_MODULE_NAME, eventInfo.moduleName,
EVENT_KEY_ABILITY_NAME, eventInfo.abilityName);
} else {
HiSysEvent::Write(
HiSysEvent::Domain::AAFWK,
eventName,
type,
EVENT_KEY_ABILITY_NAME, eventInfo.formId);
}
}
} // namespace AAFWK
} // namespace OHOS
@@ -117,6 +117,7 @@ ohos_moduletest("AbilityRecordModuleTest") {
"dataability:native_dataability",
"dsoftbus_standard:softbus_client",
"hicollie_native:libhicollie",
"hisysevent_native:libhisysevent",
"hitrace_native:hitrace_meter",
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",
@@ -117,6 +117,7 @@ ohos_moduletest("ability_timeout_module_test") {
"dataability:native_dataability",
"dsoftbus_standard:softbus_client",
"hicollie_native:libhicollie",
"hisysevent_native:libhisysevent",
"hitrace_native:hitrace_meter",
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",
@@ -43,6 +43,7 @@ ohos_source_set("appmgr_mst_source") {
"${services_path}/appmgr/src/module_running_record.cpp",
"${services_path}/appmgr/src/remote_client_manager.cpp",
"${services_path}/appmgr/test/mock/src/mock_bundle_manager.cpp",
"${services_path}/common/src/event_report.cpp",
]
defines = [ "AMS_LOG_TAG = \"AppMgrService\"" ]
@@ -32,6 +32,7 @@ ohos_moduletest("specified_ability_service_test") {
"${aafwk_path}/services/abilitymgr/src/ability_manager_proxy.cpp",
"${aafwk_path}/services/abilitymgr/src/ability_manager_service.cpp",
"${aafwk_path}/services/abilitymgr/test/mock/libs/sa_mgr/src/sa_mgr_client_mock.cpp",
"${aafwk_path}/services/common/src/event_report.cpp",
"${aafwk_path}/services/common/src/permission_verification.cpp",
"${aafwk_path}/services/test/mock/src/mock_app_mgr_client.cpp",
"${aafwk_path}/services/test/mock/src/mock_bundle_mgr.cpp",
@@ -88,6 +89,7 @@ ohos_moduletest("specified_ability_service_test") {
"dataability:native_dataability",
"dsoftbus_standard:softbus_client",
"hicollie_native:libhicollie",
"hisysevent_native:libhisysevent",
"hitrace_native:hitrace_meter",
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",
@@ -49,6 +49,7 @@ ohos_moduletest("mission_dump_test") {
"${services_path}/abilitymgr/test/mock/libs/aakit:aakit_mock",
"${services_path}/abilitymgr/test/mock/libs/appexecfwk_core:appexecfwk_appmgr_mock",
"${services_path}/abilitymgr/test/mock/libs/appexecfwk_core:appexecfwk_bundlemgr_mock",
"${services_path}/common:perm_verification",
"//third_party/googletest:gmock_main",
"//third_party/googletest:gtest_main",
"//third_party/libpng:libpng",
@@ -32,6 +32,7 @@ ohos_moduletest("on_new_want_module_test") {
"${aafwk_path}/services/abilitymgr/src/ability_manager_service.cpp",
"${aafwk_path}/services/abilitymgr/src/mission_list.cpp",
"${aafwk_path}/services/abilitymgr/src/mission_list_manager.cpp",
"${aafwk_path}/services/common/src/event_report.cpp",
"${aafwk_path}/services/common/src/permission_verification.cpp",
"//foundation/distributedhardware/devicemanager/test/unittest/mock/parameter.cpp",
]
@@ -112,6 +112,7 @@ ohos_moduletest("running_infos_module_test") {
"dataability:native_dataability",
"dsoftbus_standard:softbus_client",
"hicollie_native:libhicollie",
"hisysevent_native:libhisysevent",
"hitrace_native:hitrace_meter",
"hiviewdfx_hilog_native:libhilog",
"ipc:ipc_core",