diff --git a/frameworks/sandbox_manager/ISandboxManager.idl b/frameworks/sandbox_manager/ISandboxManager.idl index 684b185cbf4b351996643668b2358e66c1663a3f..3acb45238323e3f02f82da5b0fc1981178f04281 100644 --- a/frameworks/sandbox_manager/ISandboxManager.idl +++ b/frameworks/sandbox_manager/ISandboxManager.idl @@ -18,6 +18,7 @@ sequenceable OHOS.AccessControl.SandboxManager.PolicyInfoParcel; rawdata OHOS.AccessControl.SandboxManager.BoolVecRawData; rawdata OHOS.AccessControl.SandboxManager.PolicyVecRawData; rawdata OHOS.AccessControl.SandboxManager.Uint32VecRawData; +option_stub_hooks on; interface OHOS.AccessControl.SandboxManager.ISandboxManager { [ipccode 0xffb0] void PersistPolicy([in] PolicyVecRawData policyRawData, [out] Uint32VecRawData resultRawData); diff --git a/services/common/BUILD.gn b/services/common/BUILD.gn index c5e4c25aec8edee2d3e904eca114a3d092ad3d56..2cec8d73280497b66ee9da57626d5623df408ccc 100644 --- a/services/common/BUILD.gn +++ b/services/common/BUILD.gn @@ -38,6 +38,10 @@ ohos_shared_library("sandbox_manager_service_common") { "utils/data_size_report_adapter.cpp", ] + if (!sandbox_manager_process_resident) { + sources += [ "utils/sandbox_memory_manager.cpp" ] + } + cflags_cc = [ "-DHILOG_ENABLE" ] configs = [ "${sandbox_manager_path}/config:coverage_flags" ] diff --git a/services/common/utils/sandbox_memory_manager.cpp b/services/common/utils/sandbox_memory_manager.cpp new file mode 100644 index 0000000000000000000000000000000000000000..7a0d989a47b14250afce4a9fc1efb44ed6b8bb37 --- /dev/null +++ b/services/common/utils/sandbox_memory_manager.cpp @@ -0,0 +1,85 @@ +/* + * Copyright (c) 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 + * + * 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 "sandbox_memory_manager.h" + +#include "sandbox_manager_log.h" + +namespace OHOS { +namespace AccessControl { +namespace SandboxManager { +namespace { +using namespace OHOS::HiviewDFX; +static constexpr OHOS::HiviewDFX::HiLogLabel LABEL = { + LOG_CORE, ACCESSCONTROL_DOMAIN_SANDBOXMANAGER, "SandboxManagerMemmgr" +}; +constexpr int32_t MAX_RUNNING_NUM = 256; +std::recursive_mutex g_instanceMutex; +} + +SandboxMemoryManager& SandboxMemoryManager::GetInstance() +{ + static SandboxMemoryManager* instance = nullptr; + if (instance == nullptr) { + std::lock_guard lock(g_instanceMutex); + if (instance == nullptr) { + SandboxMemoryManager* tmp = new (std::nothrow) SandboxMemoryManager(); + instance = std::move(tmp); + } + } + return *instance; +} + +void SandboxMemoryManager::AddFunctionRuningNum() +{ + std::lock_guard lock(callNumberMutex_); + callFuncRunningNum_++; + if (callFuncRunningNum_ > MAX_RUNNING_NUM) { + SANDBOXMANAGER_LOG_WARN(LABEL, + "The num of working function (%{public}d) over %{public}d.", callFuncRunningNum_, MAX_RUNNING_NUM); + } +} + +void SandboxMemoryManager::DecreaseFunctionRuningNum() +{ + std::lock_guard lock(callNumberMutex_); + callFuncRunningNum_--; +} + +bool SandboxMemoryManager::IsAllowedUnloadService() +{ + std::lock_guard lock(callNumberMutex_); + if (callFuncRunningNum_ == 0) { + return true; + } + SANDBOXMANAGER_LOG_WARN(LABEL, + "Not allowed to unload service, callFuncRunningNum_ is %{public}d.", callFuncRunningNum_); + return false; +} + +void SandboxMemoryManager::SetIsDelayedToUnload(bool isUnload) +{ + std::lock_guard lock(isDelayedMutex_); + isDelayedToUnload_ = isUnload; +} + +bool SandboxMemoryManager::IsDelayedToUnload() +{ + std::lock_guard lock(isDelayedMutex_); + return isDelayedToUnload_; +} + +} // namespace SandboxManager +} // namespace AccessControl +} // namespace OHOS diff --git a/services/common/utils/sandbox_memory_manager.h b/services/common/utils/sandbox_memory_manager.h new file mode 100644 index 0000000000000000000000000000000000000000..29e62a9aa4c75304e02d7ccdfadfc4c07c2ecb0d --- /dev/null +++ b/services/common/utils/sandbox_memory_manager.h @@ -0,0 +1,47 @@ +/* + * Copyright (c) 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 + * + * 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 SANDBOX_MEMORY_MANAGER_H +#define SANDBOX_MEMORY_MANAGER_H + +#include +#include +#include + +namespace OHOS { +namespace AccessControl { +namespace SandboxManager { +class SandboxMemoryManager { +public: + SandboxMemoryManager() {}; + virtual ~SandboxMemoryManager() {}; + + static SandboxMemoryManager& GetInstance(); + void AddFunctionRuningNum(); + void DecreaseFunctionRuningNum(); + bool IsAllowedUnloadService(); + void SetIsDelayedToUnload(bool isUnload); + bool IsDelayedToUnload(); + +private: + bool isDelayedToUnload_ = false; + int32_t callFuncRunningNum_ = 0; + std::mutex callNumberMutex_; + std::mutex isDelayedMutex_; +}; +} // namespace SandboxManager +} // namespace Security +} // namespace OHOS +#endif // SANDBOX_MEMORY_MANAGER_H diff --git a/services/sandbox_manager/BUILD.gn b/services/sandbox_manager/BUILD.gn index 3c213490f61996c4bfe5f2742495be31925277e1..2978a92d23c0abecd4c81dbaee2b84e06c71c3d5 100644 --- a/services/sandbox_manager/BUILD.gn +++ b/services/sandbox_manager/BUILD.gn @@ -69,6 +69,7 @@ if (is_standard_system) { cflags_cc = [ "-DHILOG_ENABLE" ] if (!sandbox_manager_process_resident) { cflags_cc += [ "-DNOT_RESIDENT" ] + cflags_cc += [ "-DMEMORY_MANAGER_ENABLE" ] } configs = [ "${sandbox_manager_path}/config:coverage_flags" ] diff --git a/services/sandbox_manager/main/cpp/include/service/sandbox_manager_service.h b/services/sandbox_manager/main/cpp/include/service/sandbox_manager_service.h index 7be618429a8f04d438102b6c3fb5a4fed317224d..fea611f3d3fca489a112bb032c4f8ddf9e7013f5 100644 --- a/services/sandbox_manager/main/cpp/include/service/sandbox_manager_service.h +++ b/services/sandbox_manager/main/cpp/include/service/sandbox_manager_service.h @@ -40,6 +40,9 @@ public: void OnStart() override; void OnStop() override; void OnStart(const SystemAbilityOnDemandReason& startReason) override; +#ifdef MEMORY_MANAGER_ENABLE + int32_t OnIdle(const SystemAbilityOnDemandReason &idleReason) override; +#endif int32_t CleanPersistPolicyByPath(const std::vector &filePathList) override; int32_t CleanPolicyByUserId(uint32_t userId, const std::vector &filePathList) override; @@ -69,6 +72,8 @@ public: void DelayUnloadService(); int32_t SetPolicyByBundleName(const std::string &bundleName, int32_t appCloneIndex, const PolicyVecRawData &policyRawData, uint64_t policyFlag, Uint32VecRawData &resultRawData) override; + int32_t CallbackEnter(uint32_t code) override; + int32_t CallbackExit(uint32_t code, int32_t result) override; private: bool Initialize(); bool InitDelayUnloadHandler(); diff --git a/services/sandbox_manager/main/cpp/src/service/sandbox_manager_service.cpp b/services/sandbox_manager/main/cpp/src/service/sandbox_manager_service.cpp index 0a6964a91917319366ef9f5511e253889fcd9e72..dba9c0ab9d9294de660c94b6e88d447e4976f699 100644 --- a/services/sandbox_manager/main/cpp/src/service/sandbox_manager_service.cpp +++ b/services/sandbox_manager/main/cpp/src/service/sandbox_manager_service.cpp @@ -31,6 +31,9 @@ #include "sandbox_manager_err_code.h" #include "sandbox_manager_event_subscriber.h" #include "sandbox_manager_log.h" +#ifdef MEMORY_MANAGER_ENABLE +#include "sandbox_memory_manager.h" +#endif #include "system_ability_definition.h" namespace OHOS { @@ -41,6 +44,10 @@ namespace { static constexpr OHOS::HiviewDFX::HiLogLabel LABEL = { LOG_CORE, ACCESSCONTROL_DOMAIN_SANDBOXMANAGER, "SandboxManagerService" }; +#ifdef MEMORY_MANAGER_ENABLE +static constexpr int32_t SA_READY_TO_UNLOAD = 0; +static constexpr int32_t SA_REFUSE_TO_UNLOAD = -1; +#endif } REGISTER_SYSTEM_ABILITY_BY_ID(SandboxManagerService, @@ -64,6 +71,38 @@ SandboxManagerService::~SandboxManagerService() SANDBOXMANAGER_LOG_INFO(LABEL, "~SandboxManagerService()"); } +// CallbackEnter, if "option_stub_hooks on", is called per IPC call at entrance of OnRemoteRequest +int32_t SandboxManagerService::CallbackEnter(uint32_t code) +{ +#ifdef MEMORY_MANAGER_ENABLE + SandboxMemoryManager::GetInstance().AddFunctionRuningNum(); +#endif + return ERR_OK; +} + +// CallbackExit, if "option_stub_hooks on", is called per IPC call at exit of OnRemoteRequest +int32_t SandboxManagerService::CallbackExit(uint32_t code, int32_t result) +{ +#ifdef MEMORY_MANAGER_ENABLE + SandboxMemoryManager::GetInstance().DecreaseFunctionRuningNum(); +#endif + return ERR_OK; +} + +#ifdef MEMORY_MANAGER_ENABLE +int32_t SandboxManagerService::OnIdle(const SystemAbilityOnDemandReason &idleReason) +{ + if (SandboxMemoryManager::GetInstance().IsDelayedToUnload() || + SandboxMemoryManager::GetInstance().IsAllowedUnloadService()) { + SANDBOXMANAGER_LOG_INFO(LABEL, "IdleReason name=%{public}s, value=%{public}s.", + idleReason.GetName().c_str(), idleReason.GetValue().c_str()); + return SA_READY_TO_UNLOAD; + } + + return SA_REFUSE_TO_UNLOAD; +} +#endif + void SandboxManagerService::OnStart() { { @@ -77,6 +116,9 @@ void SandboxManagerService::OnStart() return; } state_ = ServiceRunningState::STATE_RUNNING; +#ifdef MEMORY_MANAGER_ENABLE + SandboxMemoryManager::GetInstance().SetIsDelayedToUnload(false); +#endif SANDBOXMANAGER_LOG_INFO(LABEL, "SandboxManagerService is starting."); } bool ret = Publish(DelayedSingleton::GetInstance().get()); @@ -579,6 +621,9 @@ void SandboxManagerService::DelayUnloadService() SANDBOXMANAGER_LOG_ERROR(LABEL, "Get samgr failed."); return; } +#ifdef MEMORY_MANAGER_ENABLE + SandboxMemoryManager::GetInstance().SetIsDelayedToUnload(true); +#endif int32_t ret = samgrProxy->UnloadSystemAbility(SANDBOX_MANAGER_SERVICE_ID); if (ret != ERR_OK) { SANDBOXMANAGER_LOG_ERROR(LABEL, "Unload system ability failed."); diff --git a/services/sandbox_manager/main/sa_profile/proc_non_resident/sandbox_manager_service.json b/services/sandbox_manager/main/sa_profile/proc_non_resident/sandbox_manager_service.json index 3dc0bc874048a998bff8c7202290105456c7e595..a5c45f98c93628fe1bb29f9a9f30a38608d921c3 100644 --- a/services/sandbox_manager/main/sa_profile/proc_non_resident/sandbox_manager_service.json +++ b/services/sandbox_manager/main/sa_profile/proc_non_resident/sandbox_manager_service.json @@ -1,24 +1,30 @@ { - "process": "sandbox_manager_service", - "systemability": [{ - "name": 3508, - "libpath": "libsandbox_manager_service.z.so", - "run-on-create": false, - "distributed": false, - "dump_level": 1, + "process": "sandbox_manager_service", + "systemability": [{ + "name": 3508, + "libpath": "libsandbox_manager_service.z.so", + "run-on-create": false, + "distributed": false, + "dump_level": 1, "start-on-demand": { - "commonevent": [{ - "name": "usual.event.BOOT_COMPLETED" - }, - { - "name": "usual.event.PACKAGE_REMOVED" - }, - { - "name": "usual.event.PACKAGE_FULLY_REMOVED" - }, - { - "name": "usual.event.PACKAGE_DATA_CLEARED" - }] - } - }] + "commonevent": [{ + "name": "usual.event.BOOT_COMPLETED" + }, + { + "name": "usual.event.PACKAGE_REMOVED" + }, + { + "name": "usual.event.PACKAGE_FULLY_REMOVED" + }, + { + "name": "usual.event.PACKAGE_DATA_CLEARED" + }] + }, + "stop-on-demand": { + "param": [{ + "name": "resourceschedule.memmgr.low.memory.prepare", + "value": "true" + }] + } + }] } diff --git a/services/sandbox_manager/test/BUILD.gn b/services/sandbox_manager/test/BUILD.gn index 43ba2319134e52cb5e2ab28b9c430f38401edd90..df9a2f1288bdfe73db7a7c802d877869c8c33966 100644 --- a/services/sandbox_manager/test/BUILD.gn +++ b/services/sandbox_manager/test/BUILD.gn @@ -15,7 +15,7 @@ import("//build/test.gni") import("../../../sandbox_manager.gni") sandbox_manager_service_src = [ - "${sandbox_manager_path}/services/common/utils/data_size_report_adapter.cpp", + "${sandbox_manager_path}/services/common/utils/data_size_report_adapter.cpp", "../main/cpp/src/service/sandbox_manager_service.cpp", "../main/cpp/src/sensitive/sandbox_manager_event_subscriber.cpp", "../main/cpp/src/service/policy_info_manager.cpp", @@ -28,6 +28,10 @@ sandbox_manager_service_src = [ "../main/cpp/src/media/media_path_support.cpp", ] +if (!sandbox_manager_process_resident) { + sandbox_manager_service_src += [ "${sandbox_manager_path}/services/common/utils/sandbox_memory_manager.cpp" ] +} + sandbox_manager_service_mock_src = [ "mock/src/media_path_mock.cpp" ] @@ -104,6 +108,10 @@ ohos_unittest("libsandbox_manager_service_standard_test") { "safwk:system_ability_fwk", "samgr:samgr_proxy", ] + + if (!sandbox_manager_process_resident) { + cflags_cc += [ "-DMEMORY_MANAGER_ENABLE" ] + } } group("unittest") { diff --git a/services/sandbox_manager/test/unittest/sandbox_manager_service_test.cpp b/services/sandbox_manager/test/unittest/sandbox_manager_service_test.cpp index 5bc7d8f39a30404c9b575227e8a505f7b4e62d3f..e90e92f338267529e59d00553422a4d26ac308b0 100644 --- a/services/sandbox_manager/test/unittest/sandbox_manager_service_test.cpp +++ b/services/sandbox_manager/test/unittest/sandbox_manager_service_test.cpp @@ -34,6 +34,9 @@ #include "sandbox_manager_event_subscriber.h" #include "policy_info_manager.h" #include "sandbox_manager_service.h" +#ifdef MEMORY_MANAGER_ENABLE +#include "sandbox_memory_manager.h" +#endif // MEMORY_MANAGER_ENABLE #undef private #include "system_ability_definition.h" #include "sandbox_test_common.h" @@ -50,6 +53,12 @@ const std::string SET_POLICY_PERMISSION = "ohos.permission.SET_SANDBOX_POLICY"; const std::string CHECK_POLICY_PERMISSION = "ohos.permission.CHECK_SANDBOX_POLICY"; const std::string ACCESS_PERSIST_PERMISSION = "ohos.permission.FILE_ACCESS_PERSIST"; const uint64_t POLICY_VECTOR_SIZE = 5000; +#ifdef MEMORY_MANAGER_ENABLE +constexpr int32_t MAX_RUNNING_NUM = 256; +constexpr int64_t EXTRA_PARAM = 3; +constexpr int32_t SA_READY_TO_UNLOAD = 0; +constexpr int32_t SA_REFUSE_TO_UNLOAD = -1; +#endif Security::AccessToken::PermissionStateFull g_testState1 = { .permissionName = SET_POLICY_PERMISSION, .isGeneral = true, @@ -554,6 +563,42 @@ HWTEST_F(SandboxManagerServiceTest, SandboxManagerSubscriberTest001, TestSize.Le ASSERT_EQ(true, SandboxManagerCommonEventSubscriber::UnRegisterEvent()); ASSERT_EQ(false, SandboxManagerCommonEventSubscriber::UnRegisterEvent()); } + +#ifdef MEMORY_MANAGER_ENABLE +/** + * @tc.name: MemoryManagerTest001 + * @tc.desc: test AddFunctionRuningNum and DecreaseFunctionRuningNum. + * @tc.type: FUNC + * @tc.require: issueICIZZE + */ +HWTEST_F(SandboxManagerServiceTest, MemoryManagerTest001, TestSize.Level1) +{ + SandboxMemoryManager::GetInstance().SetIsDelayedToUnload(false); + SystemAbilityOnDemandReason reason(OnDemandReasonId::PARAM, "test", "true", EXTRA_PARAM); + for (int32_t i = 0; i <= MAX_RUNNING_NUM + 1; i++) { + SandboxMemoryManager::GetInstance().AddFunctionRuningNum(); + } + EXPECT_EQ(SA_REFUSE_TO_UNLOAD, sandboxManagerService_->OnIdle(reason)); + for (int32_t i = 0; i <= MAX_RUNNING_NUM + 1; i++) { + SandboxMemoryManager::GetInstance().DecreaseFunctionRuningNum(); + } + EXPECT_EQ(SA_READY_TO_UNLOAD, sandboxManagerService_->OnIdle(reason)); +} + +/** + * @tc.name: MemoryManagerTest002 + * @tc.desc: test SetIsDelayedToUnload and IsDelayedToUnload. + * @tc.type: FUNC + * @tc.require: issueICIZZE + */ +HWTEST_F(SandboxManagerServiceTest, MemoryManagerTest002, TestSize.Level1) +{ + SandboxMemoryManager::GetInstance().SetIsDelayedToUnload(true); + SystemAbilityOnDemandReason reason(OnDemandReasonId::PARAM, "test", "true", EXTRA_PARAM); + EXPECT_EQ(SA_READY_TO_UNLOAD, sandboxManagerService_->OnIdle(reason)); + SandboxMemoryManager::GetInstance().SetIsDelayedToUnload(false); +} +#endif } // SandboxManager } // AccessControl } // OHOS \ No newline at end of file diff --git a/test/fuzztest/services/sandbox_manager/checkpersistpolicystub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/checkpersistpolicystub_fuzzer/BUILD.gn index 6f46d96fc43ee5b3c4095d6f4ec9318157e4848a..93d09adea135b7ba2d020325146f95507599b6d8 100644 --- a/test/fuzztest/services/sandbox_manager/checkpersistpolicystub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/checkpersistpolicystub_fuzzer/BUILD.gn @@ -41,5 +41,5 @@ ohos_fuzztest("CheckPersistPolicyStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/checkpolicystub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/checkpolicystub_fuzzer/BUILD.gn index 4da14b0e4e3ebd0f7cd60c98d0995782f1bccbeb..21c9f3b7201da5cfcad9c0d127f17481dc82d8ed 100644 --- a/test/fuzztest/services/sandbox_manager/checkpolicystub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/checkpolicystub_fuzzer/BUILD.gn @@ -41,5 +41,5 @@ ohos_fuzztest("CheckPolicyStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/cleanpersistpolicybypathstub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/cleanpersistpolicybypathstub_fuzzer/BUILD.gn index a9f8a3c728d8e5fd442c7438005b290a30c95470..2c778979f972d6e69505e375a476c2f1aa312cd6 100644 --- a/test/fuzztest/services/sandbox_manager/cleanpersistpolicybypathstub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/cleanpersistpolicybypathstub_fuzzer/BUILD.gn @@ -41,5 +41,5 @@ ohos_fuzztest("CleanPersistPolicyByPathStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/cleanpolicybyuseridstub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/cleanpolicybyuseridstub_fuzzer/BUILD.gn index ecbcc90c811b877e30b1a95926963335d52e8119..da53b7ba9ee6e3e88ec52b36eed25e824f54457e 100644 --- a/test/fuzztest/services/sandbox_manager/cleanpolicybyuseridstub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/cleanpolicybyuseridstub_fuzzer/BUILD.gn @@ -41,5 +41,5 @@ ohos_fuzztest("CleanPolicyByUserIdStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/persistpolicystub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/persistpolicystub_fuzzer/BUILD.gn index 54bb4bfb2b12ceae0f75705c7a38cbf803848248..c008c94529944367e1ca54069a3548a0bd9eb4cc 100644 --- a/test/fuzztest/services/sandbox_manager/persistpolicystub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/persistpolicystub_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("PersistPolicyStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/persistpolicytokenstub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/persistpolicytokenstub_fuzzer/BUILD.gn index 57eaeca21048a6ca58d292a088db0d5bd4eec976..59ae8226f5a3427b89447530086327c6a1d04233 100644 --- a/test/fuzztest/services/sandbox_manager/persistpolicytokenstub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/persistpolicytokenstub_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("PersistPolicyTokenStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/sandbox_manager_service_fuzz.gni b/test/fuzztest/services/sandbox_manager/sandbox_manager_service_fuzz.gni index fe62386cad43c75ae967a70ca8e4264f40d3e9a7..5e215c52c47ed7cab60a780c18bdf2e612a53562 100644 --- a/test/fuzztest/services/sandbox_manager/sandbox_manager_service_fuzz.gni +++ b/test/fuzztest/services/sandbox_manager/sandbox_manager_service_fuzz.gni @@ -74,3 +74,8 @@ sandbox_manager_external_deps = [ "safwk:system_ability_fwk", "samgr:samgr_proxy", ] + +sandbox_manager_flag_cc = [ "-DHILOG_ENABLE" ] +if (!sandbox_manager_process_resident) { + sandbox_manager_flag_cc += [ "-DMEMORY_MANAGER_ENABLE" ] +} diff --git a/test/fuzztest/services/sandbox_manager/setpolicyasyncstub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/setpolicyasyncstub_fuzzer/BUILD.gn index 23e517d73a01200b4fb7fa2f2e558e9fe4c88124..264ca6306d9a7f9bd4664bd76a3fd25a2a73c838 100644 --- a/test/fuzztest/services/sandbox_manager/setpolicyasyncstub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/setpolicyasyncstub_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("SetPolicyAsyncStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/setpolicybybundlenamestub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/setpolicybybundlenamestub_fuzzer/BUILD.gn index f1b18827bc0bd5d1ba7e4a9f9f87cb2f2daa7fec..5a9b9dbf9136736642bdc4d7855751ac5d00a011 100644 --- a/test/fuzztest/services/sandbox_manager/setpolicybybundlenamestub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/setpolicybybundlenamestub_fuzzer/BUILD.gn @@ -41,5 +41,5 @@ ohos_fuzztest("SetPolicyByBundleNameStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/setpolicystub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/setpolicystub_fuzzer/BUILD.gn index 2c36661e64261bb05116f42affc3617e5c2d9fe1..90b54233de0781e5a10946eb280a3446680e96d8 100644 --- a/test/fuzztest/services/sandbox_manager/setpolicystub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/setpolicystub_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("SetPolicyStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/startaccessingbytokenidstub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/startaccessingbytokenidstub_fuzzer/BUILD.gn index 5f08d6e4f0c5d672e4ceedaa42cf2782587db453..47ef7b2d395157c61eb8eced856ecd7c6fc7aae6 100644 --- a/test/fuzztest/services/sandbox_manager/startaccessingbytokenidstub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/startaccessingbytokenidstub_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("StartAccessingByTokenidStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/startaccessingpolicystub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/startaccessingpolicystub_fuzzer/BUILD.gn index 8f9eb4dc788689cdce4260d929e5684961b4b032..a4bde34643cb0e7fd60803d853a6e92e478a0ecd 100644 --- a/test/fuzztest/services/sandbox_manager/startaccessingpolicystub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/startaccessingpolicystub_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("StartAccessingPolicyStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/startbyeventaction_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/startbyeventaction_fuzzer/BUILD.gn index bdabd61f70aed9d98e17297fb9e85c6ab1d349d0..3f905cf7cb6068b5df8877ea40692891413885ef 100644 --- a/test/fuzztest/services/sandbox_manager/startbyeventaction_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/startbyeventaction_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("StartByEventActionFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/stopaccessingpolicystub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/stopaccessingpolicystub_fuzzer/BUILD.gn index ce47d94e77b72cdbffc1dcf75b82dd7e01ab6b12..620c1f4431b76e1e174e63d24f734f841fbe90f8 100644 --- a/test/fuzztest/services/sandbox_manager/stopaccessingpolicystub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/stopaccessingpolicystub_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("StopAccessingPolicyStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/unpersistpolicystub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/unpersistpolicystub_fuzzer/BUILD.gn index a2127ba29a800cdca82619e77aee80dfc42a6618..e645cfe1b2c5fd14f026980f5c102fcca9b6ced1 100644 --- a/test/fuzztest/services/sandbox_manager/unpersistpolicystub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/unpersistpolicystub_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("UnPersistPolicyStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/unpersistpolicytokenstub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/unpersistpolicytokenstub_fuzzer/BUILD.gn index 1c91e6d6f1bb39dcddbad51272dca9b1307f214c..d28d97a92b8a0fda5167a9e631bec9c285562267 100644 --- a/test/fuzztest/services/sandbox_manager/unpersistpolicytokenstub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/unpersistpolicytokenstub_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("UnpersistPolicyTokenStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/unsetallpolicybytokenstub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/unsetallpolicybytokenstub_fuzzer/BUILD.gn index d10cb59daa526ff5bdb906ef4ab6e284f0b6ec62..15eaaa8174b0cef1f8af3dfd78c75ba6bd950537 100644 --- a/test/fuzztest/services/sandbox_manager/unsetallpolicybytokenstub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/unsetallpolicybytokenstub_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("UnsetAllPolicyByTokenStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/unsetpolicyasyncstub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/unsetpolicyasyncstub_fuzzer/BUILD.gn index 774e00083889485d10a62a0051d2c196d4aef226..328ce8f05c6ad56155c515fc7dc0076128c6ce8b 100644 --- a/test/fuzztest/services/sandbox_manager/unsetpolicyasyncstub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/unsetpolicyasyncstub_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("UnsetPolicyAsyncStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc } diff --git a/test/fuzztest/services/sandbox_manager/unsetpolicystub_fuzzer/BUILD.gn b/test/fuzztest/services/sandbox_manager/unsetpolicystub_fuzzer/BUILD.gn index be90e0e210ea8d3653b6e267c219e72db2b212f2..2e88e5c8e5d085a4ab5337c941d6f4aa9afbb798 100644 --- a/test/fuzztest/services/sandbox_manager/unsetpolicystub_fuzzer/BUILD.gn +++ b/test/fuzztest/services/sandbox_manager/unsetpolicystub_fuzzer/BUILD.gn @@ -44,5 +44,5 @@ ohos_fuzztest("UnsetPolicyStubFuzzTest") { configs = [ "${sandbox_manager_path}/config:coverage_flags" ] - cflags_cc = [ "-DHILOG_ENABLE" ] + cflags_cc = sandbox_manager_flag_cc }