1# Copyright (c) 2022-2023 Huawei Device Co., Ltd. 2# Licensed under the Apache License, Version 2.0 (the "License"); 3# you may not use this file except in compliance with the License. 4# You may obtain a copy of the License at 5# 6# http://www.apache.org/licenses/LICENSE-2.0 7# 8# Unless required by applicable law or agreed to in writing, software 9# distributed under the License is distributed on an "AS IS" BASIS, 10# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 11# See the License for the specific language governing permissions and 12# limitations under the License. 13 14import("//build/ohos.gni") 15import("../../access_token.gni") 16 17ohos_prebuilt_etc("privacy.rc") { 18 source = "privacy.cfg" 19 relative_install_dir = "init" 20 subsystem_name = "security" 21 part_name = "access_token" 22} 23 24group("privacymanager") { 25 if (is_standard_system && ability_base_enable == true) { 26 deps = [ 27 "${access_token_path}/services/privacymanager:privacy_manager_service", 28 "${access_token_path}/services/privacymanager/sa_profile:privacy_sa_profile_standard", 29 ] 30 } 31} 32 33if (is_standard_system && ability_base_enable == true) { 34 ohos_shared_library("privacy_manager_service") { 35 subsystem_name = "security" 36 part_name = "access_token" 37 if (!use_clang_coverage) { 38 version_script = "libprivacy_map" 39 } 40 include_dirs = [ 41 "${access_token_path}/interfaces/innerkits/privacy/src", 42 "include/active", 43 "include/common", 44 "include/database", 45 "include/record", 46 "include/service", 47 "include/sensitive", 48 "include/sensitive/ability_manager/", 49 "include/sensitive/app_manager/", 50 "include/sensitive/audio_manager/", 51 "include/sensitive/camera_manager/", 52 "include/sensitive/window_manager/", 53 "${access_token_path}/frameworks/privacy/include", 54 "${access_token_path}/frameworks/common/include", 55 "${access_token_path}/interfaces/innerkits/accesstoken/include", 56 "${access_token_path}/interfaces/innerkits/privacy/include", 57 "${access_token_path}/services/common/database/include", 58 "//third_party/sqlite/include/", 59 ] 60 61 sources = [ 62 "src/active/active_status_callback_manager.cpp", 63 "src/active/perm_active_status_callback_death_recipient.cpp", 64 "src/active/perm_active_status_change_callback_proxy.cpp", 65 "src/active/state_change_callback_proxy.cpp", 66 "src/common/constant.cpp", 67 "src/common/privacy_field_const.cpp", 68 "src/common/time_util.cpp", 69 "src/database/data_translator.cpp", 70 "src/database/permission_used_record_db.cpp", 71 "src/record/on_permission_used_record_callback_proxy.cpp", 72 "src/record/permission_record.cpp", 73 "src/record/permission_record_manager.cpp", 74 "src/record/permission_record_repository.cpp", 75 "src/record/permission_used_record_cache.cpp", 76 "src/sensitive/ability_manager/ability_manager_privacy_client.cpp", 77 "src/sensitive/ability_manager/ability_manager_privacy_death_recipient.cpp", 78 "src/sensitive/ability_manager/ability_manager_privacy_proxy.cpp", 79 "src/sensitive/app_manager/app_manager_death_recipient.cpp", 80 "src/sensitive/app_manager/app_manager_privacy_client.cpp", 81 "src/sensitive/app_manager/app_manager_privacy_proxy.cpp", 82 "src/sensitive/app_manager/app_state_data.cpp", 83 "src/sensitive/app_manager/app_status_change_callback.cpp", 84 "src/sensitive/app_manager/process_data.cpp", 85 "src/sensitive/audio_manager/audio_global_switch_change_stub.cpp", 86 "src/sensitive/audio_manager/audio_manager_privacy_client.cpp", 87 "src/sensitive/audio_manager/audio_manager_privacy_death_recipient.cpp", 88 "src/sensitive/audio_manager/audio_manager_privacy_proxy.cpp", 89 "src/sensitive/camera_manager/camera_manager_privacy_client.cpp", 90 "src/sensitive/camera_manager/camera_manager_privacy_death_recipient.cpp", 91 "src/sensitive/camera_manager/camera_manager_privacy_proxy.cpp", 92 "src/sensitive/camera_manager/camera_service_callback_stub.cpp", 93 "src/sensitive/window_manager/window_manager_privacy_agent.cpp", 94 "src/sensitive/window_manager/window_manager_privacy_client.cpp", 95 "src/sensitive/window_manager/window_manager_privacy_death_recipient.cpp", 96 "src/sensitive/window_manager/window_manager_privacy_proxy.cpp", 97 "src/service/privacy_manager_service.cpp", 98 "src/service/privacy_manager_stub.cpp", 99 ] 100 101 cflags_cc = [ "-DHILOG_ENABLE" ] 102 configs = [ "${access_token_path}/config:coverage_flags" ] 103 104 deps = [ 105 "${access_token_path}/frameworks/common:accesstoken_common_cxx", 106 "${access_token_path}/frameworks/privacy:privacy_communication_adapter_cxx", 107 "${access_token_path}/interfaces/innerkits/accesstoken:libaccesstoken_sdk", 108 "${access_token_path}/interfaces/innerkits/accesstoken:libtokenid_sdk", 109 "${access_token_path}/services/common/database:accesstoken_database_cxx", 110 "${access_token_path}/services/privacymanager:privacy.rc", 111 ] 112 113 external_deps = [ 114 "ability_base:want", 115 "c_utils:utils", 116 "hilog:libhilog", 117 "hisysevent:libhisysevent", 118 "ipc:ipc_core", 119 "safwk:system_ability_fwk", 120 "samgr:samgr_proxy", 121 ] 122 if (!use_clang_coverage) { 123 shlib_type = "sa" 124 } 125 126 if (power_manager_enable) { 127 cflags_cc += [ "-DPOWER_MANAGER_ENABLE" ] 128 include_dirs += [ "include/power" ] 129 sources += [ "src/power/privacy_power_shutdown_callback.cpp" ] 130 external_deps += [ "power_manager:powermgr_client" ] 131 } 132 133 if (security_component_enhance_enable == true) { 134 cflags_cc += [ "-DSECURITY_COMPONENT_ENHANCE_ENABLE" ] 135 include_dirs += [ "include/seccomp" ] 136 sources += [ "src/seccomp/privacy_sec_comp_enhance_agent.cpp" ] 137 } 138 } 139} 140