12ee81decSopenharmony_ci# Copyright (c) 2022 Huawei Device Co., Ltd.
22ee81decSopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License");
32ee81decSopenharmony_ci# you may not use this file except in compliance with the License.
42ee81decSopenharmony_ci# You may obtain a copy of the License at
52ee81decSopenharmony_ci#
62ee81decSopenharmony_ci#     http://www.apache.org/licenses/LICENSE-2.0
72ee81decSopenharmony_ci#
82ee81decSopenharmony_ci# Unless required by applicable law or agreed to in writing, software
92ee81decSopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS,
102ee81decSopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
112ee81decSopenharmony_ci# See the License for the specific language governing permissions and
122ee81decSopenharmony_ci# limitations under the License.
132ee81decSopenharmony_ci
142ee81decSopenharmony_ciimport("//base/security/device_security_level/common/dslm.gni")
152ee81decSopenharmony_ciimport("//build/ohos.gni")
162ee81decSopenharmony_ci
172ee81decSopenharmony_ci# sa lib
182ee81decSopenharmony_ciif (defined(ohos_lite)) {
192ee81decSopenharmony_ci  group("dslm_service") {
202ee81decSopenharmony_ci  }
212ee81decSopenharmony_ci  if (ohos_kernel_type == "liteos_a" || ohos_kernel_type == "linux") {
222ee81decSopenharmony_ci    ohos_static_library("service_sa_static") {
232ee81decSopenharmony_ci      sources = [ "common/dslm_rpc_process.c" ]
242ee81decSopenharmony_ci
252ee81decSopenharmony_ci      include_dirs = [
262ee81decSopenharmony_ci        "common",
272ee81decSopenharmony_ci        "../dslm",
282ee81decSopenharmony_ci        "../include",
292ee81decSopenharmony_ci        "../../common/include",
302ee81decSopenharmony_ci        "../../interfaces/inner_api/include",
312ee81decSopenharmony_ci        "../../oem_property/include",
322ee81decSopenharmony_ci      ]
332ee81decSopenharmony_ci
342ee81decSopenharmony_ci      deps = [
352ee81decSopenharmony_ci        "$dslm_hilog_path/featured:hilog_shared",
362ee81decSopenharmony_ci        "$dslm_lite_component_path/cJSON:cjson_static",
372ee81decSopenharmony_ci        "$dslm_samgr_path/samgr_lite/samgr:samgr",
382ee81decSopenharmony_ci        "../../baselib/utils:utils_static",
392ee81decSopenharmony_ci        "../common:service_common_obj",
402ee81decSopenharmony_ci        "../dslm:service_dslm_obj",
412ee81decSopenharmony_ci        "../msg:service_msg_obj",
422ee81decSopenharmony_ci      ]
432ee81decSopenharmony_ci
442ee81decSopenharmony_ci      configs = [
452ee81decSopenharmony_ci        "../../common:common_configs",
462ee81decSopenharmony_ci        "../../common:common_lite_configs",
472ee81decSopenharmony_ci      ]
482ee81decSopenharmony_ci
492ee81decSopenharmony_ci      part_name = "device_security_level"
502ee81decSopenharmony_ci      subsystem_name = "security"
512ee81decSopenharmony_ci    }
522ee81decSopenharmony_ci
532ee81decSopenharmony_ci    ohos_executable("dslm_server") {
542ee81decSopenharmony_ci      sources = [
552ee81decSopenharmony_ci        "lite/dslm_service.c",
562ee81decSopenharmony_ci        "lite/small/dslm_ipc_process.c",
572ee81decSopenharmony_ci        "lite/small/dslm_service_feature.c",
582ee81decSopenharmony_ci        "lite/small/dslm_service_main.c",
592ee81decSopenharmony_ci      ]
602ee81decSopenharmony_ci
612ee81decSopenharmony_ci      include_dirs = [
622ee81decSopenharmony_ci        "common",
632ee81decSopenharmony_ci        "lite/small",
642ee81decSopenharmony_ci        "../include",
652ee81decSopenharmony_ci        "../../baselib/utils/include",
662ee81decSopenharmony_ci        "../../interfaces/inner_api/include",
672ee81decSopenharmony_ci      ]
682ee81decSopenharmony_ci
692ee81decSopenharmony_ci      deps = [
702ee81decSopenharmony_ci        ":service_sa_static",
712ee81decSopenharmony_ci        "$dslm_hilog_path/featured:hilog_shared",
722ee81decSopenharmony_ci        "$dslm_ipc_path/interfaces/innerkits/c/ipc:ipc_single",
732ee81decSopenharmony_ci        "$dslm_lite_component_path/cJSON:cjson_shared",
742ee81decSopenharmony_ci        "$dslm_samgr_path/samgr_lite/samgr:samgr",
752ee81decSopenharmony_ci        "../../oem_property/ohos/lite:dslm_ohos_cred_obj",
762ee81decSopenharmony_ci      ]
772ee81decSopenharmony_ci    }
782ee81decSopenharmony_ci  } else if (ohos_kernel_type == "liteos_m") {
792ee81decSopenharmony_ci    ohos_source_set("service_sa_obj") {
802ee81decSopenharmony_ci      sources = [ "common/dslm_rpc_process.c" ]
812ee81decSopenharmony_ci
822ee81decSopenharmony_ci      include_dirs = [
832ee81decSopenharmony_ci        "common",
842ee81decSopenharmony_ci        "../dslm",
852ee81decSopenharmony_ci        "../include",
862ee81decSopenharmony_ci        "../../common/include",
872ee81decSopenharmony_ci        "../../interfaces/inner_api/include",
882ee81decSopenharmony_ci        "../../oem_property/include",
892ee81decSopenharmony_ci        "../../oem_property/ohos/lite",
902ee81decSopenharmony_ci      ]
912ee81decSopenharmony_ci
922ee81decSopenharmony_ci      deps = [
932ee81decSopenharmony_ci        "$dslm_hilog_path/featured:hilog_static",
942ee81decSopenharmony_ci        "$dslm_lite_component_path/cJSON:cjson_shared",
952ee81decSopenharmony_ci        "$dslm_samgr_path/samgr_lite/samgr:samgr",
962ee81decSopenharmony_ci        "../../baselib/utils:utils_static",
972ee81decSopenharmony_ci        "../common:service_common_obj",
982ee81decSopenharmony_ci        "../dslm:service_dslm_obj",
992ee81decSopenharmony_ci        "../msg:service_msg_obj",
1002ee81decSopenharmony_ci      ]
1012ee81decSopenharmony_ci
1022ee81decSopenharmony_ci      configs = [
1032ee81decSopenharmony_ci        "../../common:common_configs",
1042ee81decSopenharmony_ci        "../../common:common_lite_configs",
1052ee81decSopenharmony_ci      ]
1062ee81decSopenharmony_ci
1072ee81decSopenharmony_ci      part_name = "device_security_level"
1082ee81decSopenharmony_ci      subsystem_name = "security"
1092ee81decSopenharmony_ci    }
1102ee81decSopenharmony_ci
1112ee81decSopenharmony_ci    ohos_static_library("dslm_server") {
1122ee81decSopenharmony_ci      sources = [
1132ee81decSopenharmony_ci        "lite/dslm_service.c",
1142ee81decSopenharmony_ci        "lite/mini/dslm_inner_process.c",
1152ee81decSopenharmony_ci        "lite/mini/dslm_service_feature.c",
1162ee81decSopenharmony_ci      ]
1172ee81decSopenharmony_ci
1182ee81decSopenharmony_ci      include_dirs = [
1192ee81decSopenharmony_ci        "common",
1202ee81decSopenharmony_ci        "lite/mini",
1212ee81decSopenharmony_ci        "../include",
1222ee81decSopenharmony_ci        "../../baselib/utils/include",
1232ee81decSopenharmony_ci        "../../interfaces/inner_api/include",
1242ee81decSopenharmony_ci        "../../interfaces/inner_api/src/lite/include",
1252ee81decSopenharmony_ci      ]
1262ee81decSopenharmony_ci
1272ee81decSopenharmony_ci      configs = [
1282ee81decSopenharmony_ci        "../../common:common_configs",
1292ee81decSopenharmony_ci        "../../common:common_lite_configs",
1302ee81decSopenharmony_ci      ]
1312ee81decSopenharmony_ci
1322ee81decSopenharmony_ci      deps = [
1332ee81decSopenharmony_ci        ":service_sa_obj",
1342ee81decSopenharmony_ci        "$dslm_hilog_path/featured:hilog_static",
1352ee81decSopenharmony_ci        "$dslm_lite_component_path/cJSON:cjson_static",
1362ee81decSopenharmony_ci        "$dslm_samgr_path/samgr_lite/samgr:samgr",
1372ee81decSopenharmony_ci        "../../oem_property/ohos/lite:dslm_ohos_cred_obj",
1382ee81decSopenharmony_ci      ]
1392ee81decSopenharmony_ci    }
1402ee81decSopenharmony_ci  }
1412ee81decSopenharmony_ci} else {
1422ee81decSopenharmony_ci  config("dslm_service_config") {
1432ee81decSopenharmony_ci    include_dirs = [ "../../oem_property/include" ]
1442ee81decSopenharmony_ci  }
1452ee81decSopenharmony_ci  declare_args() {
1462ee81decSopenharmony_ci    device_security_level_feature_plugin_path = ""
1472ee81decSopenharmony_ci  }
1482ee81decSopenharmony_ci  ohos_shared_library("dslm_service") {
1492ee81decSopenharmony_ci    shlib_type = "sa"
1502ee81decSopenharmony_ci    version_script = "dslm.versionscript"
1512ee81decSopenharmony_ci
1522ee81decSopenharmony_ci    sanitize = {
1532ee81decSopenharmony_ci      integer_overflow = true
1542ee81decSopenharmony_ci      ubsan = true
1552ee81decSopenharmony_ci      boundary_sanitize = true
1562ee81decSopenharmony_ci      cfi = true
1572ee81decSopenharmony_ci      cfi_cross_dso = true
1582ee81decSopenharmony_ci      blocklist = "../../cfi_blocklist.txt"
1592ee81decSopenharmony_ci    }
1602ee81decSopenharmony_ci    branch_protector_ret = "pac_ret"
1612ee81decSopenharmony_ci
1622ee81decSopenharmony_ci    sources = [
1632ee81decSopenharmony_ci      "common/dslm_rpc_process.c",
1642ee81decSopenharmony_ci      "standard/dslm_callback_proxy.cpp",
1652ee81decSopenharmony_ci      "standard/dslm_ipc_process.cpp",
1662ee81decSopenharmony_ci      "standard/dslm_service.cpp",
1672ee81decSopenharmony_ci    ]
1682ee81decSopenharmony_ci
1692ee81decSopenharmony_ci    include_dirs = [
1702ee81decSopenharmony_ci      "common",
1712ee81decSopenharmony_ci      "../dslm",
1722ee81decSopenharmony_ci      "../include",
1732ee81decSopenharmony_ci      "../../common/include",
1742ee81decSopenharmony_ci      "../../interfaces/inner_api/include",
1752ee81decSopenharmony_ci    ]
1762ee81decSopenharmony_ci
1772ee81decSopenharmony_ci    deps = [
1782ee81decSopenharmony_ci      "../../baselib/utils:utils_static",
1792ee81decSopenharmony_ci      "../../oem_property:dslm_oem_ext",
1802ee81decSopenharmony_ci      "../common:service_common_obj",
1812ee81decSopenharmony_ci      "../dfx:dslm_extension_dfx",
1822ee81decSopenharmony_ci      "../dslm:service_dslm_obj",
1832ee81decSopenharmony_ci      "../msg:service_msg_obj",
1842ee81decSopenharmony_ci    ]
1852ee81decSopenharmony_ci
1862ee81decSopenharmony_ci    if (device_security_level_feature_plugin_path != "") {
1872ee81decSopenharmony_ci      defines =
1882ee81decSopenharmony_ci          [ "PLUGIN_SO_PATH=\"${device_security_level_feature_plugin_path}\"" ]
1892ee81decSopenharmony_ci
1902ee81decSopenharmony_ci      deps -= [ "../../oem_property:dslm_oem_ext" ]
1912ee81decSopenharmony_ci
1922ee81decSopenharmony_ci      sources += [ "../../oem_property/common/dslm_credential.c" ]
1932ee81decSopenharmony_ci
1942ee81decSopenharmony_ci      include_dirs += [ "../../oem_property/include" ]
1952ee81decSopenharmony_ci    }
1962ee81decSopenharmony_ci
1972ee81decSopenharmony_ci    external_deps = [
1982ee81decSopenharmony_ci      "c_utils:utils",
1992ee81decSopenharmony_ci      "hilog:libhilog",
2002ee81decSopenharmony_ci      "ipc:ipc_core",
2012ee81decSopenharmony_ci      "safwk:system_ability_fwk",
2022ee81decSopenharmony_ci      "samgr:samgr_proxy",
2032ee81decSopenharmony_ci    ]
2042ee81decSopenharmony_ci
2052ee81decSopenharmony_ci    configs = [ "../../common:common_configs" ]
2062ee81decSopenharmony_ci    public_configs = [ ":dslm_service_config" ]
2072ee81decSopenharmony_ci    part_name = "device_security_level"
2082ee81decSopenharmony_ci    subsystem_name = "security"
2092ee81decSopenharmony_ci  }
2102ee81decSopenharmony_ci}
211