1# Copyright (c) 2022-2024 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("../../common/config/common.gni") 16 17config("edm_config") { 18 cflags = [ "-Wno-error=implicit-fallthrough" ] 19 include_dirs = [ 20 "include", 21 "include/connection", 22 "include/database", 23 "include/strategy", 24 "../../framework/extension/include", 25 "../edm_plugin/include", 26 "../edm_plugin/include/network", 27 "../edm_plugin/include/network/executer", 28 "../edm_plugin/include/network/rule", 29 "../edm_plugin/include/utils", 30 ] 31} 32 33ohos_shared_library("edmservice") { 34 sources = [ 35 "../edm_plugin/src/utils/install_param_serializer.cpp", 36 "../edm_plugin/src/utils/installer_callback.cpp", 37 "../edm_plugin/src/utils/operate_device_param_serializer.cpp", 38 "../edm_plugin/src/utils/uninstall_param_serializer.cpp", 39 "../edm_plugin/src/utils/update_policy_serializer.cpp", 40 "../edm_plugin/src/utils/upgrade_package_info_serializer.cpp", 41 "../edm_plugin/src/utils/watermark_application_observer.cpp", 42 "../edm_plugin/src/utils/watermark_image_serializer.cpp", 43 "./src/admin.cpp", 44 "./src/admin_manager.cpp", 45 "./src/admin_policies_storage_rdb.cpp", 46 "./src/application_state_observer.cpp", 47 "./src/connection/enterprise_admin_connection.cpp", 48 "./src/connection/enterprise_admin_proxy.cpp", 49 "./src/connection/enterprise_bundle_connection.cpp", 50 "./src/connection/enterprise_conn_manager.cpp", 51 "./src/connection/enterprise_update_connection.cpp", 52 "./src/database/edm_rdb_data_manager.cpp", 53 "./src/database/edm_rdb_open_callback.cpp", 54 "./src/device_policies_storage_rdb.cpp", 55 "./src/enterprise_device_mgr_ability.cpp", 56 "./src/enterprise_device_mgr_stub.cpp", 57 "./src/permission_manager.cpp", 58 "./src/plugin_manager.cpp", 59 "./src/policy_manager.cpp", 60 "./src/strategy/enhance_execute_strategy.cpp", 61 "./src/strategy/replace_execute_strategy.cpp", 62 "./src/strategy/single_execute_strategy.cpp", 63 "./src/super_admin.cpp", 64 "./src/user_policy_manager.cpp", 65 ] 66 public_configs = [ 67 ":edm_config", 68 "../../common/config:coverage_flags", 69 ] 70 71 defines = [] 72 73 if (target_cpu == "arm64") { 74 defines += [ "_ARM64_" ] 75 print("defines _ARM64_") 76 } 77 78 if (target_cpu == "x86_64") { 79 defines += [ "_X86_64_" ] 80 print("defines _X86_64_") 81 } 82 83 external_deps = [ 84 "ability_base:want", 85 "ability_runtime:ability_connect_callback_stub", 86 "ability_runtime:app_manager", 87 "ability_runtime:extension_manager", 88 "ability_runtime:wantagent_innerkits", 89 "access_token:libaccesstoken_sdk", 90 "access_token:libtokenid_sdk", 91 "bundle_framework:appexecfwk_base", 92 "bundle_framework:appexecfwk_core", 93 "cJSON:cjson", 94 "c_utils:utils", 95 "file_api:securitylabel", 96 "graphic_2d:librender_service_client", 97 "hilog:libhilog", 98 "init:libbegetutil", 99 "ipc:ipc_core", 100 "jsoncpp:jsoncpp", 101 "relational_store:native_rdb", 102 "safwk:system_ability_fwk", 103 "samgr:samgr_proxy", 104 "window_manager:libwm", 105 "window_manager:sms", 106 ] 107 if (enterprise_device_management_support_all) { 108 defines += [ "EDM_SUPPORT_ALL_ENABLE" ] 109 sources += [ 110 "../edm_plugin/src/allowed_install_bundles_plugin.cpp", 111 "../edm_plugin/src/bundle_install_plugin.cpp", 112 "../edm_plugin/src/disallow_modify_datetime_plugin.cpp", 113 "../edm_plugin/src/disallowed_install_bundles_plugin.cpp", 114 "../edm_plugin/src/disallowed_tethering_plugin.cpp", 115 "../edm_plugin/src/disallowed_uninstall_bundles_plugin.cpp", 116 "../edm_plugin/src/get_device_encryption_status_plugin.cpp", 117 "../edm_plugin/src/get_device_info_plugin.cpp", 118 "../edm_plugin/src/get_display_version_plugin.cpp", 119 "../edm_plugin/src/get_security_patch_tag_plugin.cpp", 120 "../edm_plugin/src/inactive_user_freeze_plugin.cpp", 121 "../edm_plugin/src/install_plugin.cpp", 122 "../edm_plugin/src/notify_update_packages_plugin.cpp", 123 "../edm_plugin/src/ntp_server_plugin.cpp", 124 "../edm_plugin/src/operate_device_plugin.cpp", 125 "../edm_plugin/src/power_policy_plugin.cpp", 126 "../edm_plugin/src/screen_off_time_plugin.cpp", 127 "../edm_plugin/src/set_update_policy_plugin.cpp", 128 "../edm_plugin/src/set_watermark_image_plugin.cpp", 129 "../edm_plugin/src/snapshot_skip_plugin.cpp", 130 "../edm_plugin/src/uninstall_plugin.cpp", 131 "../edm_plugin/src/utils/battery_utils.cpp", 132 ] 133 if (time_service_edm_enable) { 134 external_deps += [ "time_service:time_client" ] 135 sources += [ "../edm_plugin/src/set_datetime_plugin.cpp" ] 136 } 137 138 if (os_account_edm_enable) { 139 external_deps += [ 140 "os_account:libaccountkits", 141 "os_account:os_account_innerkits", 142 ] 143 sources += [ 144 "../edm_plugin/src/add_os_account_plugin.cpp", 145 "../edm_plugin/src/disallow_add_local_account_plugin.cpp", 146 "../edm_plugin/src/disallow_add_os_account_by_user_plugin.cpp", 147 ] 148 defines += [ "OS_ACCOUNT_EDM_ENABLE" ] 149 } 150 151 if (screenlock_mgr_edm_enable) { 152 external_deps += [ "screenlock_mgr:screenlock_client" ] 153 sources += [ "../edm_plugin/src/lock_screen_plugin.cpp" ] 154 } 155 156 if (power_manager_edm_enable) { 157 external_deps += [ "power_manager:powermgr_client" ] 158 sources += [ 159 "../edm_plugin/src/reboot_plugin.cpp", 160 "../edm_plugin/src/shutdown_plugin.cpp", 161 ] 162 } 163 164 if (update_service_edm_enable) { 165 external_deps += [ "update_service:updateservicekits" ] 166 sources += [ "../edm_plugin/src/reset_factory_plugin.cpp" ] 167 } 168 169 if (wifi_edm_enable) { 170 external_deps += [ "wifi:wifi_sdk" ] 171 sources += [ 172 "../edm_plugin/src/is_wifi_active_plugin.cpp", 173 "../edm_plugin/src/set_wifi_disabled_plugin.cpp", 174 "../edm_plugin/src/set_wifi_profile_plugin.cpp", 175 "../edm_plugin/src/utils/wifi_device_config_serializer.cpp", 176 ] 177 defines += [ "WIFI_EDM_ENABLE" ] 178 } 179 180 if (netmanager_base_edm_enable) { 181 defines += [ "NET_MANAGER_BASE_EDM_ENABLE" ] 182 external_deps += [ 183 "netmanager_base:net_conn_manager_if", 184 "netmanager_base:net_native_manager_if", 185 "netmanager_base:net_policy_manager_if", 186 "netmanager_base:netsys_controller", 187 ] 188 sources += [ 189 "../edm_plugin/src/disabled_network_interface_plugin.cpp", 190 "../edm_plugin/src/domain_filter_rule_plugin.cpp", 191 "../edm_plugin/src/firewall_rule_plugin.cpp", 192 "../edm_plugin/src/global_proxy_plugin.cpp", 193 "../edm_plugin/src/iptables_rule_plugin.cpp", 194 "../edm_plugin/src/network/executer/domain_executer.cpp", 195 "../edm_plugin/src/network/executer/executer_factory.cpp", 196 "../edm_plugin/src/network/executer/executer_utils.cpp", 197 "../edm_plugin/src/network/executer/firewall_executer.cpp", 198 "../edm_plugin/src/network/executer/iexecuter.cpp", 199 "../edm_plugin/src/network/iptables_manager.cpp", 200 "../edm_plugin/src/network/rule/chain_rule.cpp", 201 "../edm_plugin/src/network/rule/domain_chain_rule.cpp", 202 "../edm_plugin/src/network/rule/firewall_chain_rule.cpp", 203 "../edm_plugin/src/network/rule/rule_utils.cpp", 204 "../edm_plugin/src/utils/domain_filter_rule_serializer.cpp", 205 "../edm_plugin/src/utils/firewall_rule_serializer.cpp", 206 "../edm_plugin/src/utils/http_proxy_serializer.cpp", 207 ] 208 } 209 210 if (netmanager_ext_edm_enable) { 211 external_deps += [ "netmanager_ext:ethernet_manager_if" ] 212 sources += [ 213 "../edm_plugin/src/get_all_network_interfaces_plugin.cpp", 214 "../edm_plugin/src/get_ip_address_plugin.cpp", 215 "../edm_plugin/src/get_mac_plugin.cpp", 216 ] 217 } 218 219 if (ability_runtime_edm_enable) { 220 external_deps += [ "ability_runtime:ability_manager" ] 221 sources += [ 222 "../edm_plugin/src/disallowed_running_bundles_plugin.cpp", 223 "../edm_plugin/src/manage_auto_start_apps_plugin.cpp", 224 ] 225 } 226 227 if (certificate_manager_edm_enable) { 228 external_deps += [ "certificate_manager:cert_manager_sdk" ] 229 sources += [ "../edm_plugin/src/user_cert_plugin.cpp" ] 230 } 231 232 if (drivers_interface_usb_edm_enable && usb_manager_edm_enable) { 233 external_deps += [ "usb_manager:usbsrv_client" ] 234 sources += [ 235 "../edm_plugin/src/allowed_usb_devices_plugin.cpp", 236 "../edm_plugin/src/disable_usb_plugin.cpp", 237 "../edm_plugin/src/disallowed_usb_devices_plugin.cpp", 238 "../edm_plugin/src/utils/array_usb_device_id_serializer.cpp", 239 "../edm_plugin/src/utils/array_usb_device_type_serializer.cpp", 240 ] 241 } 242 243 if (drivers_interface_usb_edm_enable && storage_service_edm_enable && 244 usb_manager_edm_enable) { 245 external_deps += [ "storage_service:storage_manager_sa_proxy" ] 246 sources += [ "../edm_plugin/src/usb_read_only_plugin.cpp" ] 247 } 248 249 if (audio_framework_edm_enable) { 250 external_deps += [ "audio_framework:audio_client" ] 251 sources += [ 252 "../edm_plugin/src/disable_hdc_plugin.cpp", 253 "../edm_plugin/src/disable_microphone_plugin.cpp", 254 "../edm_plugin/src/disable_printer_plugin.cpp", 255 ] 256 } 257 258 if (common_event_service_edm_enable) { 259 external_deps += [ "common_event_service:cesfwk_innerkits" ] 260 sources += [ "../edm_plugin/src/set_browser_policies_plugin.cpp" ] 261 defines += [ "COMMON_EVENT_SERVICE_EDM_ENABLE" ] 262 } 263 264 if (bluetooth_edm_enable) { 265 external_deps += [ "bluetooth:btframework" ] 266 sources += [ 267 "../edm_plugin/src/allowed_bluetooth_devices_plugin.cpp", 268 "../edm_plugin/src/disable_bluetooth_plugin.cpp", 269 "../edm_plugin/src/get_bluetooth_info_plugin.cpp", 270 ] 271 } 272 273 if (location_edm_enable) { 274 external_deps += [ "location:locator_sdk" ] 275 sources += [ "../edm_plugin/src/location_policy_plugin.cpp" ] 276 } 277 278 if (telephony_core_edm_enable) { 279 external_deps += [ "core_service:tel_core_service_api" ] 280 defines += [ "TELEPHONY_CORE_EDM_ENABLE" ] 281 } 282 } 283 284 if (pasteboard_edm_enable) { 285 external_deps += [ "pasteboard:pasteboard_client" ] 286 defines += [ "PASTEBOARD_EDM_ENABLE" ] 287 sources += [ 288 "../edm_plugin/src/clipboard_policy_plugin.cpp", 289 "../edm_plugin/src/utils/clipboard_policy_serializer.cpp", 290 "../edm_plugin/src/utils/clipboard_utils.cpp", 291 ] 292 } 293 294 if (useriam_edm_enable) { 295 external_deps += [ "user_auth_framework:userauth_client" ] 296 defines += [ "USERIAM_EDM_ENABLE" ] 297 sources += [ 298 "../edm_plugin/src/fingerprint_auth_plugin.cpp", 299 "../edm_plugin/src/password_policy_plugin.cpp", 300 "../edm_plugin/src/utils/fingerprint_policy_serializer.cpp", 301 "../edm_plugin/src/utils/password_policy_serializer.cpp", 302 ] 303 } 304 305 if (enterprise_device_management_feature_charging_type_setting) { 306 defines += [ "FEATURE_CHARGING_TYPE_SETTING" ] 307 } 308 309 if (camera_framework_edm_enable) { 310 external_deps += [ "camera_framework:camera_framework" ] 311 sources += [ "../edm_plugin/src/disable_camera_plugin.cpp" ] 312 } 313 314 deps = [ 315 "../../common/external:edm_external_adapters", 316 "../../common/native:edm_commom", 317 "../../interfaces/inner_api:edmservice_kits", 318 "../../interfaces/inner_api/plugin_kits:plugin_kits", 319 ] 320 321 shlib_type = "sa" 322 323 sanitize = { 324 boundary_sanitize = true 325 cfi = true 326 cfi_cross_dso = true 327 debug = false 328 integer_overflow = true 329 ubsan = true 330 } 331 branch_protector_ret = "pac_ret" 332 subsystem_name = "customization" 333 part_name = "enterprise_device_management" 334} 335