# 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("../../common/config/common.gni") config("edm_config") { cflags = [ "-Wno-error=implicit-fallthrough" ] include_dirs = [ "include", "include/connection", "include/database", "include/strategy", "../../framework/extension/include", "../edm_plugin/include", "../edm_plugin/include/network", "../edm_plugin/include/network/executer", "../edm_plugin/include/network/rule", "../edm_plugin/include/utils", ] } ohos_shared_library("edmservice") { sources = [ "../edm_plugin/src/utils/install_param_serializer.cpp", "../edm_plugin/src/utils/installer_callback.cpp", "../edm_plugin/src/utils/operate_device_param_serializer.cpp", "../edm_plugin/src/utils/password_policy_serializer.cpp", "../edm_plugin/src/utils/uninstall_param_serializer.cpp", "../edm_plugin/src/utils/update_policy_serializer.cpp", "../edm_plugin/src/utils/upgrade_package_info_serializer.cpp", "./src/admin.cpp", "./src/admin_manager.cpp", "./src/admin_policies_storage_rdb.cpp", "./src/application_state_observer.cpp", "./src/connection/enterprise_admin_connection.cpp", "./src/connection/enterprise_admin_proxy.cpp", "./src/connection/enterprise_bundle_connection.cpp", "./src/connection/enterprise_conn_manager.cpp", "./src/connection/enterprise_update_connection.cpp", "./src/database/edm_rdb_data_manager.cpp", "./src/database/edm_rdb_open_callback.cpp", "./src/device_policies_storage_rdb.cpp", "./src/enterprise_device_mgr_ability.cpp", "./src/enterprise_device_mgr_stub.cpp", "./src/permission_manager.cpp", "./src/plugin_manager.cpp", "./src/policy_manager.cpp", "./src/strategy/enhance_execute_strategy.cpp", "./src/strategy/replace_execute_strategy.cpp", "./src/strategy/single_execute_strategy.cpp", "./src/user_policy_manager.cpp", ] public_configs = [ ":edm_config", "../../common/config:coverage_flags", ] defines = [] if (target_cpu == "arm64") { defines += [ "_ARM64_" ] print("defines _ARM64_") } if (target_cpu == "x86_64") { defines += [ "_X86_64_" ] print("defines _X86_64_") } external_deps = [ "ability_base:want", "ability_runtime:app_manager", "ability_runtime:extension_manager", "ability_runtime:wantagent_innerkits", "access_token:libaccesstoken_sdk", "access_token:libtokenid_sdk", "bundle_framework:appexecfwk_base", "bundle_framework:appexecfwk_core", "cJSON:cjson", "c_utils:utils", "hilog:libhilog", "init:libbegetutil", "ipc:ipc_core", "jsoncpp:jsoncpp", "relational_store:native_rdb", "safwk:system_ability_fwk", "samgr:samgr_proxy", "user_auth_framework:userauth_client", ] if (enterprise_device_management_support_all) { defines += [ "EDM_SUPPORT_ALL_ENABLE" ] sources += [ "../edm_plugin/src/allowed_install_bundles_plugin.cpp", "../edm_plugin/src/bundle_install_plugin.cpp", "../edm_plugin/src/disallow_modify_datetime_plugin.cpp", "../edm_plugin/src/disallowed_install_bundles_plugin.cpp", "../edm_plugin/src/disallowed_uninstall_bundles_plugin.cpp", "../edm_plugin/src/get_device_encryption_status_plugin.cpp", "../edm_plugin/src/get_device_info_plugin.cpp", "../edm_plugin/src/get_display_version_plugin.cpp", "../edm_plugin/src/get_security_patch_tag_plugin.cpp", "../edm_plugin/src/install_plugin.cpp", "../edm_plugin/src/notify_update_packages_plugin.cpp", "../edm_plugin/src/ntp_server_plugin.cpp", "../edm_plugin/src/operate_device_plugin.cpp", "../edm_plugin/src/password_policy_plugin.cpp", "../edm_plugin/src/power_policy_plugin.cpp", "../edm_plugin/src/screen_off_time_plugin.cpp", "../edm_plugin/src/set_update_policy_plugin.cpp", "../edm_plugin/src/uninstall_plugin.cpp", ] if (time_service_edm_enable) { external_deps += [ "time_service:time_client" ] sources += [ "../edm_plugin/src/set_datetime_plugin.cpp" ] } if (os_account_edm_enable) { external_deps += [ "os_account:libaccountkits", "os_account:os_account_innerkits", ] sources += [ "../edm_plugin/src/add_os_account_plugin.cpp", "../edm_plugin/src/disallow_add_local_account_plugin.cpp", "../edm_plugin/src/disallow_add_os_account_by_user_plugin.cpp", ] defines += [ "OS_ACCOUNT_EDM_ENABLE" ] } if (screenlock_mgr_edm_enable) { external_deps += [ "screenlock_mgr:screenlock_client" ] sources += [ "../edm_plugin/src/lock_screen_plugin.cpp" ] } if (power_manager_edm_enable) { external_deps += [ "power_manager:powermgr_client" ] sources += [ "../edm_plugin/src/reboot_plugin.cpp", "../edm_plugin/src/shutdown_plugin.cpp", ] } if (update_service_edm_enable) { external_deps += [ "update_service:updateservicekits" ] sources += [ "../edm_plugin/src/reset_factory_plugin.cpp" ] } if (wifi_edm_enable) { external_deps += [ "wifi:wifi_sdk" ] sources += [ "../edm_plugin/src/is_wifi_active_plugin.cpp", "../edm_plugin/src/set_wifi_disabled_plugin.cpp", "../edm_plugin/src/set_wifi_profile_plugin.cpp", "../edm_plugin/src/utils/wifi_device_config_serializer.cpp", ] defines += [ "WIFI_EDM_ENABLE" ] } if (netmanager_base_edm_enable && netmanager_ext_edm_enable) { external_deps += [ "netmanager_base:net_conn_manager_if", "netmanager_base:netsys_controller", "netmanager_ext:ethernet_manager_if", ] sources += [ "../edm_plugin/src/disabled_network_interface_plugin.cpp", "../edm_plugin/src/domain_filter_rule_plugin.cpp", "../edm_plugin/src/firewall_rule_plugin.cpp", "../edm_plugin/src/get_all_network_interfaces_plugin.cpp", "../edm_plugin/src/get_ip_address_plugin.cpp", "../edm_plugin/src/get_mac_plugin.cpp", "../edm_plugin/src/global_proxy_plugin.cpp", "../edm_plugin/src/iptables_rule_plugin.cpp", "../edm_plugin/src/network/executer/domain_executer.cpp", "../edm_plugin/src/network/executer/executer_factory.cpp", "../edm_plugin/src/network/executer/executer_utils.cpp", "../edm_plugin/src/network/executer/firewall_executer.cpp", "../edm_plugin/src/network/executer/iexecuter.cpp", "../edm_plugin/src/network/iptables_manager.cpp", "../edm_plugin/src/network/rule/chain_rule.cpp", "../edm_plugin/src/network/rule/domain_chain_rule.cpp", "../edm_plugin/src/network/rule/firewall_chain_rule.cpp", "../edm_plugin/src/network/rule/rule_utils.cpp", "../edm_plugin/src/utils/domain_filter_rule_serializer.cpp", "../edm_plugin/src/utils/firewall_rule_serializer.cpp", "../edm_plugin/src/utils/http_proxy_serializer.cpp", ] } if (ability_runtime_edm_enable) { external_deps += [ "ability_runtime:ability_manager" ] sources += [ "../edm_plugin/src/disallowed_running_bundles_plugin.cpp", "../edm_plugin/src/manage_auto_start_apps_plugin.cpp", ] } if (certificate_manager_edm_enable) { external_deps += [ "certificate_manager:cert_manager_sdk" ] sources += [ "../edm_plugin/src/user_cert_plugin.cpp" ] } if (drivers_interface_usb_edm_enable && usb_manager_edm_enable) { external_deps += [ "usb_manager:usbsrv_client" ] sources += [ "../edm_plugin/src/allowed_usb_devices_plugin.cpp", "../edm_plugin/src/disable_usb_plugin.cpp", "../edm_plugin/src/disallowed_usb_devices_plugin.cpp", "../edm_plugin/src/utils/array_usb_device_id_serializer.cpp", "../edm_plugin/src/utils/array_usb_device_type_serializer.cpp", "../edm_plugin/src/utils/usb_policy_utils.cpp", ] } if (drivers_interface_usb_edm_enable && storage_service_edm_enable && usb_manager_edm_enable) { external_deps += [ "storage_service:storage_manager_sa_proxy" ] sources += [ "../edm_plugin/src/usb_read_only_plugin.cpp" ] } if (audio_framework_edm_enable) { external_deps += [ "audio_framework:audio_client" ] sources += [ "../edm_plugin/src/disable_hdc_plugin.cpp", "../edm_plugin/src/disable_microphone_plugin.cpp", "../edm_plugin/src/disable_printer_plugin.cpp", "../edm_plugin/src/fingerprint_auth_plugin.cpp", ] } if (common_event_service_edm_enable) { external_deps += [ "common_event_service:cesfwk_innerkits" ] sources += [ "../edm_plugin/src/set_browser_policies_plugin.cpp" ] defines += [ "COMMON_EVENT_SERVICE_EDM_ENABLE" ] } if (bluetooth_edm_enable) { external_deps += [ "bluetooth:btframework" ] sources += [ "../edm_plugin/src/allowed_bluetooth_devices_plugin.cpp", "../edm_plugin/src/disable_bluetooth_plugin.cpp", "../edm_plugin/src/get_bluetooth_info_plugin.cpp", ] } if (location_edm_enable) { external_deps += [ "location:locator_sdk" ] sources += [ "../edm_plugin/src/location_policy_plugin.cpp" ] } if (telephony_core_edm_enable) { external_deps += [ "core_service:tel_core_service_api" ] defines += [ "TELEPHONY_CORE_EDM_ENABLE" ] } } if (pasteboard_edm_enable) { external_deps += [ "pasteboard:pasteboard_client" ] defines += [ "PASTEBOARD_EDM_ENABLE" ] sources += [ "../edm_plugin/src/clipboard_policy_plugin.cpp", "../edm_plugin/src/utils/clipboard_policy_serializer.cpp", "../edm_plugin/src/utils/clipboard_utils.cpp", ] } if (camera_framework_edm_enable) { external_deps += [ "camera_framework:camera_framework" ] sources += [ "../edm_plugin/src/disable_camera_plugin.cpp" ] } deps = [ "../../common/external:edm_external_adapters", "../../common/native:edm_commom", "../../interfaces/inner_api:edmservice_kits", "../../interfaces/inner_api/plugin_kits:plugin_kits", ] shlib_type = "sa" sanitize = { boundary_sanitize = true cfi = true cfi_cross_dso = true debug = false integer_overflow = true ubsan = true } branch_protector_ret = "pac_ret" subsystem_name = "customization" part_name = "enterprise_device_management" }