diff --git a/frameworks/BUILD.gn b/frameworks/BUILD.gn index c06ff02aa5709be43e7e86a37403bdbcedef9df3..fe84faf4975cda6fb33dbcfa59bbe6465cfbc7c3 100644 --- a/frameworks/BUILD.gn +++ b/frameworks/BUILD.gn @@ -199,3 +199,34 @@ ohos_source_set("security_component_no_cfi_enhance_adapter_src_set") { "-fvisibility=hidden", ] } + +ohos_source_set("security_component_no_cfi_disable_enhance_adapter_src_set") { + branch_protector_ret = "pac_ret" + subsystem_name = "security" + part_name = "security_component_manager" + include_dirs = [ + "common/include", + "enhance_adapter/include", + "${sec_comp_root_dir}/interfaces/inner_api/security_component_common", + "${sec_comp_root_dir}/interfaces/inner_api/security_component/include", + "${sec_comp_root_dir}/frameworks/inner_api/security_component/include", + ] + + sources = [ "enhance_adapter/src/sec_comp_enhance_adapter.cpp" ] + + configs = [ "${sec_comp_root_dir}/config:coverage_flags" ] + public_configs = [ ":security_component_enhance_adapter_src_set_config" ] + + external_deps = [ + "c_utils:utils", + "hilog:libhilog", + "ipc:ipc_single", + "json:nlohmann_json_static", + ] + + cflags_cc = [ + "-DHILOG_ENABLE", + "-fvisibility=hidden", + "-DSECURITY_COMPONENT_ENHANCE_DISABLE" + ] +} diff --git a/frameworks/enhance_adapter/src/sec_comp_enhance_adapter.cpp b/frameworks/enhance_adapter/src/sec_comp_enhance_adapter.cpp index 6f3686c32140e63c7d237e53a3676c481499d5e3..867a945ac447b85e6826ccd6ca9fb178d3403dad 100644 --- a/frameworks/enhance_adapter/src/sec_comp_enhance_adapter.cpp +++ b/frameworks/enhance_adapter/src/sec_comp_enhance_adapter.cpp @@ -67,7 +67,11 @@ void SecCompEnhanceAdapter::InitEnhanceHandler(EnhanceInterfaceType type) break; } +#ifdef SECURITY_COMPONENT_ENHANCE_DISABLE + void* handler = nullptr; +#else void* handler = dlopen(libPath.c_str(), RTLD_LAZY); +#endif if (handler == nullptr) { SC_LOG_ERROR(LABEL, "init enhance lib %{public}s failed, error %{public}s", libPath.c_str(), dlerror()); return; diff --git a/services/security_component_service/sa/test/BUILD.gn b/services/security_component_service/sa/test/BUILD.gn index dae5246d69625dee956bcfd53b23b0925c639fef..fa87d02c17e8db6dd7b52e34670da8ebb67f8a9e 100644 --- a/services/security_component_service/sa/test/BUILD.gn +++ b/services/security_component_service/sa/test/BUILD.gn @@ -71,7 +71,7 @@ ohos_unittest("sec_comp_service_test") { } deps = [ - "${sec_comp_root_dir}/frameworks:security_component_no_cfi_enhance_adapter_src_set", + "${sec_comp_root_dir}/frameworks:security_component_no_cfi_disable_enhance_adapter_src_set", "${sec_comp_root_dir}/frameworks:security_component_no_cfi_framework_src_set", "${sec_comp_root_dir}/services/security_component_service/sa:sec_comp_service_stub_no_cfi", ]