18e920a95Sopenharmony_ci# Copyright (c) 2023-2024 Huawei Device Co., Ltd. 28e920a95Sopenharmony_ci# Licensed under the Apache License, Version 2.0 (the "License"); 38e920a95Sopenharmony_ci# you may not use this file except in compliance with the License. 48e920a95Sopenharmony_ci# You may obtain a copy of the License at 58e920a95Sopenharmony_ci# 68e920a95Sopenharmony_ci# http://www.apache.org/licenses/LICENSE-2.0 78e920a95Sopenharmony_ci# 88e920a95Sopenharmony_ci# Unless required by applicable law or agreed to in writing, software 98e920a95Sopenharmony_ci# distributed under the License is distributed on an "AS IS" BASIS, 108e920a95Sopenharmony_ci# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 118e920a95Sopenharmony_ci# See the License for the specific language governing permissions and 128e920a95Sopenharmony_ci# limitations under the License. 138e920a95Sopenharmony_ci 148e920a95Sopenharmony_ciimport("//build/ohos.gni") 158e920a95Sopenharmony_ciimport("../../../code_signature.gni") 168e920a95Sopenharmony_ci 178e920a95Sopenharmony_ciconfig("public_code_sign_utils_configs") { 188e920a95Sopenharmony_ci include_dirs = [ "include" ] 198e920a95Sopenharmony_ci} 208e920a95Sopenharmony_ci 218e920a95Sopenharmony_ciohos_shared_library("libcode_sign_utils") { 228e920a95Sopenharmony_ci sanitize = { 238e920a95Sopenharmony_ci cfi = true 248e920a95Sopenharmony_ci cfi_cross_dso = true 258e920a95Sopenharmony_ci debug = false 268e920a95Sopenharmony_ci } 278e920a95Sopenharmony_ci branch_protector_ret = "pac_ret" 288e920a95Sopenharmony_ci sources = [ 298e920a95Sopenharmony_ci "${code_signature_root_dir}/utils/src/code_sign_block.cpp", 308e920a95Sopenharmony_ci "${code_signature_root_dir}/utils/src/file_helper.cpp", 318e920a95Sopenharmony_ci "src/code_sign_enable_multi_task.cpp", 328e920a95Sopenharmony_ci "src/code_sign_helper.cpp", 338e920a95Sopenharmony_ci "src/code_sign_utils.cpp", 348e920a95Sopenharmony_ci "src/code_sign_utils_in_c.cpp", 358e920a95Sopenharmony_ci "src/stat_utils.cpp", 368e920a95Sopenharmony_ci ] 378e920a95Sopenharmony_ci version_script = "libcode_sign_utils.versionscript" 388e920a95Sopenharmony_ci cflags_cc = [ 398e920a95Sopenharmony_ci "-Os", 408e920a95Sopenharmony_ci "-fno-asynchronous-unwind-tables", 418e920a95Sopenharmony_ci "-fno-unwind-tables", 428e920a95Sopenharmony_ci ] 438e920a95Sopenharmony_ci public_configs = [ 448e920a95Sopenharmony_ci "${code_signature_root_dir}:common_public_config", 458e920a95Sopenharmony_ci "${code_signature_root_dir}/services/key_enable:key_enable_rust_interface_config", 468e920a95Sopenharmony_ci ":public_code_sign_utils_configs", 478e920a95Sopenharmony_ci ] 488e920a95Sopenharmony_ci configs = [ "${code_signature_root_dir}:common_utils_config" ] 498e920a95Sopenharmony_ci 508e920a95Sopenharmony_ci deps = [ "${code_signature_root_dir}/utils:fsverity_sign_src_set" ] 518e920a95Sopenharmony_ci if (host_os == "linux" && !is_asan && !ohos_indep_compiler_enable && 528e920a95Sopenharmony_ci !use_clang_coverage) { 538e920a95Sopenharmony_ci deps += [ "${code_signature_root_dir}/services/key_enable:key_enable_lib" ] 548e920a95Sopenharmony_ci } else { 558e920a95Sopenharmony_ci sources += [ "${code_signature_root_dir}/services/key_enable/src/asan/disable_rust_interface.cpp" ] 568e920a95Sopenharmony_ci } 578e920a95Sopenharmony_ci defines = [] 588e920a95Sopenharmony_ci if (code_signature_support_oh_code_sign) { 598e920a95Sopenharmony_ci defines += [ "SUPPORT_OH_CODE_SIGN" ] 608e920a95Sopenharmony_ci } 618e920a95Sopenharmony_ci if (build_variant == "root" || code_signature_enable_xpm_mode == 0) { 628e920a95Sopenharmony_ci defines += [ "SUPPORT_PERMISSIVE_MODE" ] 638e920a95Sopenharmony_ci } 648e920a95Sopenharmony_ci external_deps = [ 658e920a95Sopenharmony_ci "ability_base:extractortool", 668e920a95Sopenharmony_ci "appverify:libhapverify", 678e920a95Sopenharmony_ci "c_utils:utils", 688e920a95Sopenharmony_ci "hilog:libhilog", 698e920a95Sopenharmony_ci "hisysevent:libhisysevent", 708e920a95Sopenharmony_ci "hitrace:hitrace_meter", 718e920a95Sopenharmony_ci "openssl:libcrypto_shared", 728e920a95Sopenharmony_ci ] 738e920a95Sopenharmony_ci install_enable = true 748e920a95Sopenharmony_ci 758e920a95Sopenharmony_ci part_name = "code_signature" 768e920a95Sopenharmony_ci 778e920a95Sopenharmony_ci subsystem_name = "security" 788e920a95Sopenharmony_ci 798e920a95Sopenharmony_ci install_images = [ "system" ] 808e920a95Sopenharmony_ci} 81