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