1# Copyright (c) 2021-2022 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. 13import("//base/startup/appspawn/appspawn.gni") 14import("//build/ohos.gni") 15import("//build/ohos/native_stub/native_stub.gni") 16 17config("appspawn_server_config") { 18 visibility = [ ":*" ] 19 include_dirs = [ 20 "${appspawn_path}/common", 21 "${appspawn_path}/standard", 22 "${appspawn_path}/modules/common", 23 "${appspawn_path}/modules/modulemgr", 24 "${appspawn_path}/modules/sysevent", 25 ] 26 27 cflags = [] 28 if (build_selinux) { 29 cflags += [ "-DWITH_SELINUX" ] 30 } 31 32 if (build_seccomp) { 33 cflags += [ "-DWITH_SECCOMP" ] 34 } 35 configs = [ "${appspawn_path}:appspawn_config" ] 36} 37 38ohos_executable("appspawn") { 39 sources = [ 40 "${appspawn_path}/common/appspawn_server.c", 41 "${appspawn_path}/common/appspawn_trace.cpp", 42 "${appspawn_path}/modules/common/appspawn_dfx_dump.cpp", 43 "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c", 44 "${appspawn_path}/standard/appspawn_appmgr.c", 45 "${appspawn_path}/standard/appspawn_kickdog.c", 46 "${appspawn_path}/standard/appspawn_main.c", 47 "${appspawn_path}/standard/appspawn_msgmgr.c", 48 "${appspawn_path}/standard/appspawn_service.c", 49 "${appspawn_path}/standard/nwebspawn_launcher.c", 50 ] 51 52 defines = [] 53 configs = [ 54 ":appspawn_server_config", 55 "${appspawn_path}:appspawn_config", 56 ] 57 deps = [ 58 "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript", 59 "${appspawn_path}/util:libappspawn_util", 60 ] 61 if (asan_detector || is_asan) { 62 defines += [ "ASAN_DETECTOR" ] 63 } 64 if (is_debug || build_variant == "root") { 65 defines += [ "DEBUG_BEGETCTL_BOOT" ] 66 } 67 68 external_deps = [ 69 "c_utils:utils", 70 "config_policy:configpolicy_util", 71 "hilog:libhilog", 72 "hitrace:hitrace_meter", 73 "init:libbegetutil", 74 ] 75 if (enable_appspawn_dump_catcher) { 76 external_deps += [ "faultloggerd:libdfx_dumpcatcher" ] 77 } 78 if (appspawn_use_encaps) { 79 defines += [ "USE_ENCAPS" ] 80 } 81 if (appspawn_report_event) { 82 defines += [ "APPSPAWN_HISYSEVENT" ] 83 external_deps += [ "hisysevent:libhisysevent" ] 84 sources += [ "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp" ] 85 } 86 if (appspawn_use_encaps) { 87 defines += [ "USE_ENCAPS" ] 88 } 89 if (build_selinux) { 90 defines += [ "WITH_SELINUX" ] 91 external_deps += [ 92 "selinux:libselinux", 93 "selinux_adapter:libhap_restorecon", 94 ] 95 } 96 cflags = [] 97 98 #ldflags = [ "-Wl,--dynamic-linker,/system/bin/linker64z" ] 99 if (!defined(global_parts_info) || 100 defined(global_parts_info.security_code_signature)) { 101 defines += [ "CODE_SIGNATURE_ENABLE" ] 102 external_deps += [ "code_signature:libcode_sign_attr_utils" ] 103 } 104 105 version_script = get_label_info( 106 "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript", 107 "target_gen_dir") + "/" + get_label_info( 108 "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript", 109 "name") + stub_version_script_suffix 110 111 install_enable = true 112 subsystem_name = "${subsystem_name}" 113 part_name = "${part_name}" 114} 115 116ohos_shared_library("appspawn_helper") { 117 sources = [ "${appspawn_path}/common/appspawn_server.c" ] 118 defines = [ "APPSPAWN_HELPER" ] 119 configs = [ 120 ":appspawn_server_config", 121 "${appspawn_path}:appspawn_config", 122 ] 123 cflags = [ 124 "-fvisibility=hidden", 125 "-fstack-protector-all", 126 ] 127 external_deps = [ 128 "hilog:libhilog", 129 "init:libbegetutil", 130 ] 131 132 install_enable = true 133 subsystem_name = "${subsystem_name}" 134 part_name = "${part_name}" 135} 136 137ohos_prebuilt_etc("appspawn.rc") { 138 source = "appspawn.cfg" 139 relative_install_dir = "init" 140 subsystem_name = "${subsystem_name}" 141 part_name = "${part_name}" 142} 143 144ohos_executable("pid_ns_init") { 145 sources = [ "${appspawn_path}/standard/pid_ns_init.c" ] 146 install_enable = true 147 subsystem_name = "${subsystem_name}" 148 part_name = "${part_name}" 149} 150 151# to support cjappspawn 152ohos_executable("cjappspawn") { 153 sources = [ 154 "${appspawn_path}/common/appspawn_server.c", 155 "${appspawn_path}/common/appspawn_trace.cpp", 156 "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c", 157 "${appspawn_path}/standard/appspawn_appmgr.c", 158 "${appspawn_path}/standard/appspawn_kickdog.c", 159 "${appspawn_path}/standard/appspawn_main.c", 160 "${appspawn_path}/standard/appspawn_msgmgr.c", 161 "${appspawn_path}/standard/appspawn_service.c", 162 "${appspawn_path}/standard/nwebspawn_launcher.c", 163 ] 164 165 defines = [ "CJAPP_SPAWN" ] 166 configs = [ 167 ":appspawn_server_config", 168 "${appspawn_path}:appspawn_config", 169 ] 170 deps = [ 171 "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript", 172 "${appspawn_path}/util:libappspawn_util", 173 ] 174 if (asan_detector || is_asan) { 175 defines += [ "ASAN_DETECTOR" ] 176 } 177 178 external_deps = [ 179 "c_utils:utils", 180 "config_policy:configpolicy_util", 181 "hilog:libhilog", 182 "hitrace:hitrace_meter", 183 "init:libbegetutil", 184 ] 185 if (appspawn_report_event) { 186 defines += [ "APPSPAWN_HISYSEVENT" ] 187 external_deps += [ "hisysevent:libhisysevent" ] 188 sources += [ "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp" ] 189 } 190 if (build_selinux) { 191 defines += [ "WITH_SELINUX" ] 192 external_deps += [ 193 "selinux:libselinux", 194 "selinux_adapter:libhap_restorecon", 195 ] 196 } 197 cflags = [] 198 199 #ldflags = [ "-Wl,--dynamic-linker,/system/bin/linker64z" ] 200 if (!defined(global_parts_info) || 201 defined(global_parts_info.security_code_signature)) { 202 defines += [ "CODE_SIGNATURE_ENABLE" ] 203 external_deps += [ "code_signature:libcode_sign_attr_utils" ] 204 } 205 206 version_script = get_label_info( 207 "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript", 208 "target_gen_dir") + "/" + get_label_info( 209 "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript", 210 "name") + stub_version_script_suffix 211 212 install_enable = true 213 subsystem_name = "${subsystem_name}" 214 part_name = "${part_name}" 215} 216 217# to support nativespawn 218ohos_executable("nativespawn") { 219 sources = [ 220 "${appspawn_path}/common/appspawn_server.c", 221 "${appspawn_path}/common/appspawn_trace.cpp", 222 "${appspawn_path}/modules/modulemgr/appspawn_modulemgr.c", 223 "${appspawn_path}/standard/appspawn_appmgr.c", 224 "${appspawn_path}/standard/appspawn_kickdog.c", 225 "${appspawn_path}/standard/appspawn_main.c", 226 "${appspawn_path}/standard/appspawn_msgmgr.c", 227 "${appspawn_path}/standard/appspawn_service.c", 228 "${appspawn_path}/standard/nwebspawn_launcher.c", 229 ] 230 231 defines = [ "NATIVE_SPAWN" ] 232 configs = [ 233 ":appspawn_server_config", 234 "${appspawn_path}:appspawn_config", 235 ] 236 deps = [ 237 "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript", 238 "${appspawn_path}/util:libappspawn_util", 239 ] 240 if (asan_detector || is_asan) { 241 defines += [ "ASAN_DETECTOR" ] 242 } 243 244 external_deps = [ 245 "c_utils:utils", 246 "config_policy:configpolicy_util", 247 "hilog:libhilog", 248 "hitrace:hitrace_meter", 249 "init:libbegetutil", 250 ] 251 if (appspawn_report_event) { 252 defines += [ "APPSPAWN_HISYSEVENT" ] 253 external_deps += [ "hisysevent:libhisysevent" ] 254 sources += [ "${appspawn_path}/modules/sysevent/appspawn_hisysevent.cpp" ] 255 } 256 if (build_selinux) { 257 defines += [ "WITH_SELINUX" ] 258 external_deps += [ 259 "selinux:libselinux", 260 "selinux_adapter:libhap_restorecon", 261 ] 262 } 263 cflags = [] 264 265 #ldflags = [ "-Wl,--dynamic-linker,/system/bin/linker64z" ] 266 if (!defined(global_parts_info) || 267 defined(global_parts_info.security_code_signature)) { 268 defines += [ "CODE_SIGNATURE_ENABLE" ] 269 external_deps += [ "code_signature:libcode_sign_attr_utils" ] 270 } 271 272 version_script = get_label_info( 273 "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript", 274 "target_gen_dir") + "/" + get_label_info( 275 "${appspawn_path}/modules/module_engine:libappspawn_stub_versionscript", 276 "name") + stub_version_script_suffix 277 278 install_enable = true 279 subsystem_name = "${subsystem_name}" 280 part_name = "${part_name}" 281} 282 283ohos_prebuilt_etc("cjappspawn.rc") { 284 source = "cjappspawn.cfg" 285 relative_install_dir = "init" 286 subsystem_name = "${subsystem_name}" 287 part_name = "${part_name}" 288} 289 290ohos_prebuilt_etc("nativespawn.rc") { 291 source = "nativespawn.cfg" 292 relative_install_dir = "init" 293 subsystem_name = "${subsystem_name}" 294 part_name = "${part_name}" 295} 296