From 0a0572499085f005aa93922a071bd9ba610e261e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E4=BC=9F?= Date: Wed, 20 Aug 2025 02:02:41 +0000 Subject: [PATCH 01/11] update services/continuous_task/include/bg_continuous_task_dumper.h. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 胡伟 --- services/continuous_task/include/bg_continuous_task_dumper.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/continuous_task/include/bg_continuous_task_dumper.h b/services/continuous_task/include/bg_continuous_task_dumper.h index c2917eaf..bdfa2190 100644 --- a/services/continuous_task/include/bg_continuous_task_dumper.h +++ b/services/continuous_task/include/bg_continuous_task_dumper.h @@ -24,7 +24,7 @@ namespace OHOS { namespace BackgroundTaskMgr { class BgContinuousTaskDumper : public DelayedSingleton { public: - void DumpInnerTask(const std::vector &dumpOption, std::vector &dumpInfo); + void DebugContinuousTask(const std::vector &dumpOption, std::vector &dumpInfo); void DumpGetTask(const std::vector &dumpOption, std::vector &dumpInfo); -- Gitee From 6d96df830284b47de150b01a8120c155a1fad1ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E4=BC=9F?= Date: Wed, 20 Aug 2025 02:04:12 +0000 Subject: [PATCH 02/11] update services/continuous_task/src/bg_continuous_task_dumper.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 胡伟 --- .../src/bg_continuous_task_dumper.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/services/continuous_task/src/bg_continuous_task_dumper.cpp b/services/continuous_task/src/bg_continuous_task_dumper.cpp index 62fd81d9..b6bb6a9d 100644 --- a/services/continuous_task/src/bg_continuous_task_dumper.cpp +++ b/services/continuous_task/src/bg_continuous_task_dumper.cpp @@ -27,10 +27,10 @@ BgContinuousTaskDumper::BgContinuousTaskDumper() {} BgContinuousTaskDumper::~BgContinuousTaskDumper() {} -void BgContinuousTaskDumper::DumpInnerTask(const std::vector &dumpOption, +void BgContinuousTaskDumper::DebugContinuousTask(const std::vector &dumpOption, std::vector &dumpInfo) { - if (dumpOption.size() != MAX_DUMP_INNER_PARAM_NUMS) { + if (dumpOption.size() < MAX_DUMP_INNER_PARAM_NUMS) { dumpInfo.emplace_back("param invaild\n"); return; } @@ -49,11 +49,15 @@ void BgContinuousTaskDumper::DumpInnerTask(const std::vector &dumpO return; } bool isApply = (operationType == "apply"); + int32_t uid = 1; + if (dumpOption.size() == MAX_DUMP_INNER_PARAM_NUMS + 1) { + uid = std::atoi(dumpOption[MAX_DUMP_PARAM_NUMS + 1].c_str()); + } sptr taskParam = sptr( - new ContinuousTaskParamForInner(1, mode, isApply)); + new ContinuousTaskParamForInner(uid, mode, isApply)); ErrCode ret = ERR_OK; BgContinuousTaskMgr::GetInstance()->SetDumperTest(true); - ret = BgContinuousTaskMgr::GetInstance()->RequestBackgroundRunningForInner(taskParam); + ret = BgContinuousTaskMgr::GetInstance()->DebugContinuousTaskInner(taskParam); if (ret != ERR_OK) { dumpInfo.emplace_back("dump inner continuous task fail.\n"); } else { -- Gitee From 4901370288a91c0743379a4bcb0958985e2f1c53 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E4=BC=9F?= Date: Wed, 20 Aug 2025 02:04:50 +0000 Subject: [PATCH 03/11] update services/continuous_task/include/bg_continuous_task_mgr.h. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 胡伟 --- services/continuous_task/include/bg_continuous_task_mgr.h | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/services/continuous_task/include/bg_continuous_task_mgr.h b/services/continuous_task/include/bg_continuous_task_mgr.h index f6175628..ca044ac1 100644 --- a/services/continuous_task/include/bg_continuous_task_mgr.h +++ b/services/continuous_task/include/bg_continuous_task_mgr.h @@ -89,6 +89,7 @@ public: ErrCode ShellDump(const std::vector &dumpOption, std::vector &dumpInfo); ErrCode GetContinuousTaskApps(std::vector> &list, int32_t uid = -1); ErrCode AVSessionNotifyUpdateNotification(int32_t uid, int32_t pid, bool isPublish = false); + ErrCode DebugContinuousTaskInner(const sptr &taskParam); bool StopContinuousTaskByUser(const std::string &mapKey); void OnAccountsStateChanged(int32_t id); void OnBundleInfoChanged(const std::string &action, const std::string &bundleName, int32_t uid); @@ -107,8 +108,6 @@ public: void OnConfigurationChanged(const AppExecFwk::Configuration &configuration); void OnRemoveSystemAbility(int32_t systemAbilityId, const std::string& deviceId); void HandleRemoveTaskByMode(uint32_t mode); - void SetDumperTest(const bool dumperTest); - bool IsDumperTest() const; private: ErrCode StartBackgroundRunningInner(std::shared_ptr &continuousTaskRecordPtr); @@ -198,7 +197,6 @@ private: std::vector continuousTaskText_ {}; std::vector continuousTaskSubText_ {}; int32_t continuousTaskIdIndex_ = 0; - bool dumperTest_ {false}; DECLARE_DELAYED_SINGLETON(BgContinuousTaskMgr); }; -- Gitee From c958b1b9a00498947dac7690fc5c08e1b8a76534 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E4=BC=9F?= Date: Wed, 20 Aug 2025 02:05:39 +0000 Subject: [PATCH 04/11] update interfaces/innerkits/include/continuous_task_param.h. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 胡伟 --- .../innerkits/include/continuous_task_param.h | 19 +------------------ 1 file changed, 1 insertion(+), 18 deletions(-) diff --git a/interfaces/innerkits/include/continuous_task_param.h b/interfaces/innerkits/include/continuous_task_param.h index e7f86241..a8dc077e 100644 --- a/interfaces/innerkits/include/continuous_task_param.h +++ b/interfaces/innerkits/include/continuous_task_param.h @@ -43,24 +43,7 @@ struct ContinuousTaskParam : public Parcelable { ContinuousTaskParam(bool isNewApi, uint32_t bgModeId, const std::shared_ptr wantAgent, const std::string abilityName, const sptr abilityToken, const std::string &appName, bool isBatchApi = false, - const std::vector &bgModeIds = {}, int32_t abilityId = -1) - : isNewApi_(isNewApi), bgModeId_(bgModeId), wantAgent_(wantAgent), abilityName_(abilityName), - abilityToken_(abilityToken), appName_(appName), isBatchApi_(isBatchApi), bgModeIds_(bgModeIds), - abilityId_(abilityId) { - if (isBatchApi_ && bgModeIds_.size() > 0) { - auto findNonDataTransfer = [](const auto &target) { - return target != BackgroundMode::DATA_TRANSFER; - }; - auto iter = std::find_if(bgModeIds_.begin(), bgModeIds_.end(), findNonDataTransfer); - if (iter != bgModeIds_.end()) { - bgModeId_ = *iter; - } else { - bgModeId_ = bgModeIds_[0]; - } - } else { - bgModeIds_.push_back(bgModeId); - } - } + const std::vector &bgModeIds = {}, int32_t abilityId = -1); bool ReadFromParcel(Parcel &parcel); bool Marshalling(Parcel &parcel) const override; static ContinuousTaskParam *Unmarshalling(Parcel &parcel); -- Gitee From 71a6521d5de538cd134c92d974dda094c1567c3a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E4=BC=9F?= Date: Wed, 20 Aug 2025 02:06:14 +0000 Subject: [PATCH 05/11] update interfaces/innerkits/src/continuous_task_param.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 胡伟 --- .../innerkits/src/continuous_task_param.cpp | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/interfaces/innerkits/src/continuous_task_param.cpp b/interfaces/innerkits/src/continuous_task_param.cpp index 04aa5847..7e6857d0 100644 --- a/interfaces/innerkits/src/continuous_task_param.cpp +++ b/interfaces/innerkits/src/continuous_task_param.cpp @@ -21,6 +21,28 @@ namespace OHOS { namespace BackgroundTaskMgr { +ContinuousTaskParam::ContinuousTaskParam(bool isNewApi, uint32_t bgModeId, + const std::shared_ptr wantAgent, const std::string abilityName, + const sptr abilityToken, const std::string &appName, bool isBatchApi, + const std::vector &bgModeIds, int32_t abilityId) + : isNewApi_(isNewApi), bgModeId_(bgModeId), wantAgent_(wantAgent), abilityName_(abilityName), + abilityToken_(abilityToken), appName_(appName), isBatchApi_(isBatchApi), bgModeIds_(bgModeIds), + abilityId_(abilityId) { + if (isBatchApi_ && bgModeIds_.size() > 0) { + auto findNonDataTransfer = [](const auto &target) { + return target != BackgroundMode::DATA_TRANSFER; + }; + auto iter = std::find_if(bgModeIds_.begin(), bgModeIds_.end(), findNonDataTransfer); + if (iter != bgModeIds_.end()) { + bgModeId_ = *iter; + } else { + bgModeId_ = bgModeIds_[0]; + } + } else { + bgModeIds_.push_back(bgModeId); + } +} + bool ContinuousTaskParam::ReadFromParcel(Parcel &parcel) { if (!parcel.ReadBool(isNewApi_)) { -- Gitee From be8a569ac95de008a1f2d6ccf26298fa4ee41440 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E4=BC=9F?= Date: Wed, 20 Aug 2025 02:06:30 +0000 Subject: [PATCH 06/11] update interfaces/innerkits/IBackgroundTaskMgr.idl. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 胡伟 --- interfaces/innerkits/IBackgroundTaskMgr.idl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/interfaces/innerkits/IBackgroundTaskMgr.idl b/interfaces/innerkits/IBackgroundTaskMgr.idl index 3d6b2e27..8c1afab2 100644 --- a/interfaces/innerkits/IBackgroundTaskMgr.idl +++ b/interfaces/innerkits/IBackgroundTaskMgr.idl @@ -52,5 +52,5 @@ interface OHOS.BackgroundTaskMgr.IBackgroundTaskMgr { void StartTransientTaskTimeForInner([in] int uid); void AVSessionNotifyUpdateNotification([in] int uid, [in] int pid, [in] boolean isPublish); void SetBgTaskConfig([in] String configData, [in] int sourceType); - void SuspendContinuousAudioTask([in] int uid); + [oneway] void SuspendContinuousAudioTask([in] int uid); } -- Gitee From e7c17476151b7aea1f0fa670d0fea330cb9d4f72 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E4=BC=9F?= Date: Wed, 20 Aug 2025 02:08:14 +0000 Subject: [PATCH 07/11] update services/continuous_task/src/bg_continuous_task_mgr.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 胡伟 --- .../src/bg_continuous_task_mgr.cpp | 23 ++++++++++--------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/services/continuous_task/src/bg_continuous_task_mgr.cpp b/services/continuous_task/src/bg_continuous_task_mgr.cpp index 4b3431f7..40034b1c 100644 --- a/services/continuous_task/src/bg_continuous_task_mgr.cpp +++ b/services/continuous_task/src/bg_continuous_task_mgr.cpp @@ -615,10 +615,7 @@ ErrCode BgContinuousTaskMgr::RequestBackgroundRunningForInner(const sptruid_) { + if (callingUid != VOIP_SA_UID && callingUid != HEALTHSPORT_SA_UID && callingUid != taskParam->uid_) { BGTASK_LOGE("continuous task param uid %{public}d is invalid, real %{public}d", taskParam->uid_, callingUid); return ERR_BGTASK_CHECK_TASK_PARAM; } @@ -2120,14 +2117,18 @@ void BgContinuousTaskMgr::OnRemoveSystemAbility(int32_t systemAbilityId, const s } } -void BgContinuousTaskMgr::SetDumperTest(const bool dumperTest) +ErrCode BgContinuousTaskMgr::DebugContinuousTaskInner(const sptr &taskParam) { - dumperTest_ = dumperTest; -} - -bool BgContinuousTaskMgr::IsDumperTest() const -{ - return dumperTest_; + if (!isSysReady_.load()) { + return ERR_BGTASK_SYS_NOT_READY; + } + if (!taskParam) { + return ERR_BGTASK_CHECK_TASK_PARAM; + } + if (taskParam->isStart_) { + return StartBackgroundRunningForInner(taskParam); + } + return StopBackgroundRunningForInner(taskParam); } } // namespace BackgroundTaskMgr } // namespace OHOS -- Gitee From aedd0152f9577a763717dc3c9b6043914c10e4d2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E4=BC=9F?= Date: Wed, 20 Aug 2025 02:49:27 +0000 Subject: [PATCH 08/11] update services/continuous_task/src/bg_continuous_task_dumper.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 胡伟 --- services/continuous_task/src/bg_continuous_task_dumper.cpp | 1 - 1 file changed, 1 deletion(-) diff --git a/services/continuous_task/src/bg_continuous_task_dumper.cpp b/services/continuous_task/src/bg_continuous_task_dumper.cpp index b6bb6a9d..ac56a881 100644 --- a/services/continuous_task/src/bg_continuous_task_dumper.cpp +++ b/services/continuous_task/src/bg_continuous_task_dumper.cpp @@ -56,7 +56,6 @@ void BgContinuousTaskDumper::DebugContinuousTask(const std::vector sptr taskParam = sptr( new ContinuousTaskParamForInner(uid, mode, isApply)); ErrCode ret = ERR_OK; - BgContinuousTaskMgr::GetInstance()->SetDumperTest(true); ret = BgContinuousTaskMgr::GetInstance()->DebugContinuousTaskInner(taskParam); if (ret != ERR_OK) { dumpInfo.emplace_back("dump inner continuous task fail.\n"); -- Gitee From 576144fc957c96a3d73f7cda56ac2f64c2c9f426 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E4=BC=9F?= Date: Wed, 20 Aug 2025 03:11:02 +0000 Subject: [PATCH 09/11] =?UTF-8?q?=E7=BC=96=E7=A0=81=E8=A7=84=E8=8C=83?= =?UTF-8?q?=E6=95=B4=E6=94=B9=20Signed-off-by:=20=E8=83=A1=E4=BC=9F=20?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- interfaces/innerkits/include/continuous_task_param.h | 2 +- interfaces/innerkits/src/continuous_task_param.cpp | 6 +++--- services/continuous_task/src/bg_continuous_task_mgr.cpp | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/interfaces/innerkits/include/continuous_task_param.h b/interfaces/innerkits/include/continuous_task_param.h index a8dc077e..ffc20be0 100644 --- a/interfaces/innerkits/include/continuous_task_param.h +++ b/interfaces/innerkits/include/continuous_task_param.h @@ -41,7 +41,7 @@ struct ContinuousTaskParam : public Parcelable { ContinuousTaskParam() = default; ContinuousTaskParam(bool isNewApi, uint32_t bgModeId, - const std::shared_ptr wantAgent, const std::string abilityName, + const std::shared_ptr wantAgent, const std::string &abilityName, const sptr abilityToken, const std::string &appName, bool isBatchApi = false, const std::vector &bgModeIds = {}, int32_t abilityId = -1); bool ReadFromParcel(Parcel &parcel); diff --git a/interfaces/innerkits/src/continuous_task_param.cpp b/interfaces/innerkits/src/continuous_task_param.cpp index 7e6857d0..efc0c8eb 100644 --- a/interfaces/innerkits/src/continuous_task_param.cpp +++ b/interfaces/innerkits/src/continuous_task_param.cpp @@ -1,5 +1,5 @@ /* - * Copyright (c) 2022 Huawei Device Co., Ltd. + * Copyright (c) 2022-2025 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 @@ -22,7 +22,7 @@ namespace OHOS { namespace BackgroundTaskMgr { ContinuousTaskParam::ContinuousTaskParam(bool isNewApi, uint32_t bgModeId, - const std::shared_ptr wantAgent, const std::string abilityName, + const std::shared_ptr wantAgent, const std::string &abilityName, const sptr abilityToken, const std::string &appName, bool isBatchApi, const std::vector &bgModeIds, int32_t abilityId) : isNewApi_(isNewApi), bgModeId_(bgModeId), wantAgent_(wantAgent), abilityName_(abilityName), @@ -30,7 +30,7 @@ ContinuousTaskParam::ContinuousTaskParam(bool isNewApi, uint32_t bgModeId, abilityId_(abilityId) { if (isBatchApi_ && bgModeIds_.size() > 0) { auto findNonDataTransfer = [](const auto &target) { - return target != BackgroundMode::DATA_TRANSFER; + return target != BackgroundMode::DATA_TRANSFER; }; auto iter = std::find_if(bgModeIds_.begin(), bgModeIds_.end(), findNonDataTransfer); if (iter != bgModeIds_.end()) { diff --git a/services/continuous_task/src/bg_continuous_task_mgr.cpp b/services/continuous_task/src/bg_continuous_task_mgr.cpp index 40034b1c..aad5e842 100644 --- a/services/continuous_task/src/bg_continuous_task_mgr.cpp +++ b/services/continuous_task/src/bg_continuous_task_mgr.cpp @@ -1540,7 +1540,7 @@ ErrCode BgContinuousTaskMgr::ShellDumpInner(const std::vector &dump } else if (dumpOption[1] == DUMP_PARAM_GET) { BgContinuousTaskDumper::GetInstance()->DumpGetTask(dumpOption, dumpInfo); } else if (dumpOption[1] == DUMP_INNER_TASK) { - BgContinuousTaskDumper::GetInstance()->DumpInnerTask(dumpOption, dumpInfo); + BgContinuousTaskDumper::GetInstance()->DebugContinuousTask(dumpOption, dumpInfo); } else { BGTASK_LOGW("invalid dump param"); } -- Gitee From 617b9d8003b2d72e83eb6b990c30ca7adcb07372 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E4=BC=9F?= Date: Wed, 20 Aug 2025 08:03:01 +0000 Subject: [PATCH 10/11] update services/continuous_task/src/bg_continuous_task_mgr.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 胡伟 --- services/continuous_task/src/bg_continuous_task_mgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/continuous_task/src/bg_continuous_task_mgr.cpp b/services/continuous_task/src/bg_continuous_task_mgr.cpp index aad5e842..dd12947c 100644 --- a/services/continuous_task/src/bg_continuous_task_mgr.cpp +++ b/services/continuous_task/src/bg_continuous_task_mgr.cpp @@ -1184,7 +1184,7 @@ bool BgContinuousTaskMgr::IsExistCallback(int32_t uid, uint32_t type) { for (auto iter = bgTaskSubscribers_.begin(); iter != bgTaskSubscribers_.end(); ++iter) { if ((*iter)->isHap_ && (*iter)->uid_ == uid && (((*iter)->flag_ & type) > 0)) { - BGTASK_LOGD("falg: %{public}d", (*iter)->flag_); + BGTASK_LOGD("flag: %{public}u", (*iter)->flag_); return true; } } -- Gitee From 07e22641ac0e2bfda36371e83807f8547024d89d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=83=A1=E4=BC=9F?= Date: Wed, 20 Aug 2025 08:03:40 +0000 Subject: [PATCH 11/11] update services/core/src/background_task_mgr_service.cpp. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 胡伟 --- services/core/src/background_task_mgr_service.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/services/core/src/background_task_mgr_service.cpp b/services/core/src/background_task_mgr_service.cpp index 987cfafd..d2d698ac 100644 --- a/services/core/src/background_task_mgr_service.cpp +++ b/services/core/src/background_task_mgr_service.cpp @@ -370,7 +370,7 @@ ErrCode BackgroundTaskMgrService::SubscribeBackgroundTask( } pid_t callingPid = IPCSkeleton::GetCallingPid(); pid_t callingUid = IPCSkeleton::GetCallingUid(); - BGTASK_LOGI("uid %{public}d pid %{public}d isHap %{public}d flag %{public}d subscribe", + BGTASK_LOGI("uid %{public}d pid %{public}d isHap %{public}d flag %{public}u subscribe", callingUid, callingPid, isHap, flag); auto subscriberInfo = std::make_shared(subscriber, callingUid, callingPid, isHap, flag); if (BgContinuousTaskMgr::GetInstance()->AddSubscriber(subscriberInfo) != ERR_OK) { -- Gitee