# Copyright (c) 2022-2024 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. import("//build/ohos.gni") import("../../access_token.gni") ohos_prebuilt_etc("privacy.rc") { source = "privacy.cfg" relative_install_dir = "init" subsystem_name = "security" part_name = "access_token" } group("privacymanager") { if (is_standard_system && ability_base_enable == true) { deps = [ "${access_token_path}/services/privacymanager:privacy_manager_service", "${access_token_path}/services/privacymanager/sa_profile:privacy_sa_profile_standard", ] } } if (is_standard_system && ability_base_enable == true) { ohos_shared_library("privacy_manager_service") { subsystem_name = "security" part_name = "access_token" sanitize = { cfi = true cfi_cross_dso = true debug = false } branch_protector_ret = "pac_ret" if (!use_clang_coverage) { version_script = "libprivacy_map" shlib_type = "sa" } include_dirs = [ "include/active", "include/common", "include/database", "include/record", "include/service", "include/sensitive", "include/sensitive/audio_manager/", "include/sensitive/camera_manager/", "${access_token_path}/frameworks/privacy/include", "${access_token_path}/frameworks/common/include", "${access_token_path}/interfaces/innerkits/accesstoken/include", "${access_token_path}/interfaces/innerkits/privacy/include", "${access_token_path}/interfaces/innerkits/privacy/src", "${access_token_path}/services/common/ability_manager/include", "${access_token_path}/services/common/app_manager/include", "${access_token_path}/services/common/config_policy/include", "${access_token_path}/services/common/database/include", "${access_token_path}/services/common/handler/include", "${access_token_path}/services/common/libraryloader/include", "${access_token_path}/services/common/power_manager/include", "${access_token_path}/services/common/screenlock_manager/include", "${access_token_path}/services/common/utils/include", ] sources = [ "${access_token_path}/services/common/power_manager/src/power_manager_client.cpp", "${access_token_path}/services/common/power_manager/src/power_manager_proxy.cpp", "src/active/active_status_callback_manager.cpp", "src/active/perm_active_status_callback_death_recipient.cpp", "src/active/perm_active_status_change_callback_proxy.cpp", "src/active/state_change_callback_proxy.cpp", "src/common/constant.cpp", "src/database/data_translator.cpp", "src/database/permission_used_record_db.cpp", "src/database/privacy_field_const.cpp", "src/record/on_permission_used_record_callback_proxy.cpp", "src/record/permission_record.cpp", "src/record/permission_record_manager.cpp", "src/sensitive/audio_manager/audio_manager_privacy_client.cpp", "src/sensitive/audio_manager/audio_manager_privacy_death_recipient.cpp", "src/sensitive/audio_manager/audio_manager_privacy_proxy.cpp", "src/sensitive/camera_manager/camera_manager_privacy_client.cpp", "src/sensitive/camera_manager/camera_manager_privacy_death_recipient.cpp", "src/sensitive/camera_manager/camera_manager_privacy_proxy.cpp", "src/service/privacy_manager_service.cpp", "src/service/privacy_manager_stub.cpp", ] cflags_cc = [ "-DHILOG_ENABLE", "-fvisibility=hidden", ] configs = [ "${access_token_path}/config:access_token_compile_flags", "${access_token_path}/config:coverage_flags", ] defines = [ "FEATURE_DTMF_TONE" ] deps = [ "${access_token_path}/frameworks/common:accesstoken_common_cxx", "${access_token_path}/frameworks/privacy:privacy_communication_adapter_cxx", "${access_token_path}/interfaces/innerkits/accesstoken:libaccesstoken_sdk", "${access_token_path}/interfaces/innerkits/accesstoken:libtokenid_sdk", "${access_token_path}/services/common:accesstoken_service_common", "${access_token_path}/services/privacymanager:privacy.rc", ] external_deps = [ "ability_base:want", "c_utils:utils", "hilog:libhilog", "hisysevent:libhisysevent", "init:libbegetutil", "ipc:ipc_single", "safwk:system_ability_fwk", "samgr:samgr_proxy", "sqlite:sqlite", ] if (audio_framework_enable) { include_dirs += [ "${audio_framework_path}/services/audio_policy/common/include" ] } if (ohos_indep_compiler_enable) { external_deps += [ "bounds_checking_function:libsec_shared", "json:nlohmann_json_static", ] } if (eventhandler_enable == true) { cflags_cc += [ "-DEVENTHANDLER_ENABLE" ] external_deps += [ "eventhandler:libeventhandler" ] } if (common_event_service_enable) { cflags_cc += [ "-DCOMMON_EVENT_SERVICE_ENABLE" ] external_deps += [ "common_event_service:cesfwk_innerkits" ] sources += [ "src/common/privacy_common_event_subscriber.cpp" ] } if (security_component_enhance_enable == true) { cflags_cc += [ "-DSECURITY_COMPONENT_ENHANCE_ENABLE" ] include_dirs += [ "include/seccomp" ] sources += [ "src/seccomp/privacy_sec_comp_enhance_agent.cpp" ] } if (window_manager_enable && access_token_camera_float_window_enable) { cflags_cc += [ "-DCAMERA_FLOAT_WINDOW_ENABLE" ] include_dirs += [ "${access_token_path}/services/common/window_manager/include" ] sources += [ "${access_token_path}/services/common/window_manager/src/privacy_mock_session_manager_proxy.cpp", "${access_token_path}/services/common/window_manager/src/privacy_scene_session_manager_lite_proxy.cpp", "${access_token_path}/services/common/window_manager/src/privacy_scene_session_manager_proxy.cpp", "${access_token_path}/services/common/window_manager/src/privacy_session_manager_proxy.cpp", "${access_token_path}/services/common/window_manager/src/privacy_window_manager_agent.cpp", "${access_token_path}/services/common/window_manager/src/privacy_window_manager_client.cpp", "${access_token_path}/services/common/window_manager/src/privacy_window_manager_death_recipient.cpp", "${access_token_path}/services/common/window_manager/src/privacy_window_manager_proxy.cpp", ] external_deps += [ "window_manager:libwsutils" ] } if (access_token_app_security_privacy_service_enable) { cflags_cc += [ "-DAPP_SECURITY_PRIVACY_SERVICE" ] } if (hicollie_enable == true) { external_deps += [ "hicollie:libhicollie" ] cflags_cc += [ "-DHICOLLIE_ENABLE" ] } } }