1# Copyright (c) 2021-2023 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/init/begetd.gni") 14 15common_include_dirs = [ 16 "//base/startup/init/services/begetctl", 17 "//base/startup/init/services/begetctl/shell", 18 "//base/startup/init/services/param/include", 19 "//base/startup/init/services/param/adapter", 20 "//base/startup/init/services/param/linux", 21 "//base/startup/init/services/param/base", 22 "//base/startup/init/interfaces/innerkits/include/param", 23 "//base/startup/init/interfaces/innerkits/include", 24 "//base/startup/init/services/loopevent/include", 25 "//base/startup/init/services/init/include", 26 "//base/startup/init/services/log", 27 "//base/startup/init/interfaces/innerkits/include", 28 "//base/startup/init/interfaces/innerkits/include/syspara", 29] 30 31if (defined(ohos_lite)) { 32 executable("begetctl") { 33 output_name = "begetctl" 34 sources = [ 35 "main.c", 36 "param_cmd.c", 37 "shell/shell_bas.c", 38 ] 39 defines = [ 40 "_GNU_SOURCE", #syscall function need this macro definition 41 "__MUSL__", 42 "OHOS_LITE", 43 ] 44 if (param_test) { 45 sources += [ "//base/startup/init/test/moduletest/syspara.cpp" ] 46 } 47 48 include_dirs = common_include_dirs 49 include_dirs += 50 [ "//base/security/selinux_adapter/interfaces/policycoreutils/include" ] 51 deps = [ 52 "//base/hiviewdfx/hilog_lite/frameworks/featured:hilog_shared", 53 "//base/startup/init/interfaces/innerkits:libbegetutil", 54 "//base/startup/init/services/utils:libinit_utils", 55 "//build/lite/config/component/cJSON:cjson_static", 56 ] 57 external_deps = [ "bounds_checking_function:libsec_static" ] 58 59 if (ohos_kernel_type == "linux") { 60 deps += [ "//base/startup/init/services/param/linux:param_client" ] 61 } else { 62 deps += [ "//base/startup/init/services/param/liteos:param_client_lite" ] 63 } 64 } 65} else { 66 import("//build/ohos.gni") 67 68 ohos_executable("begetctl") { 69 sources = [ 70 "appspawntime_cmd.c", 71 "begetctl_cmd.c", 72 "bootchart_cmd.c", 73 "dump_service.c", 74 "init_cmd_reboot.c", 75 "main.c", 76 "misc_daemon.cpp", 77 "modulectl.c", 78 "param_cmd.c", 79 "sandbox.cpp", 80 "service_control.c", 81 "setloglevel.c", 82 "shell/shell_bas.c", 83 ] 84 85 defines = [ "_GNU_SOURCE" ] 86 87 include_dirs = common_include_dirs 88 deps = [ 89 "//base/startup/init/interfaces/innerkits:libbegetutil", 90 "//base/startup/init/interfaces/innerkits/control_fd:libcontrolfd", 91 "//base/startup/init/services/log:agent_log", 92 "//base/startup/init/services/param/linux:param_client", 93 "//base/startup/init/services/sandbox:sandbox", 94 "//base/startup/init/services/utils:libinit_utils", 95 ] 96 97 deps += [ "//base/startup/init/services/param/base:param_base" ] 98 external_deps = [ 99 "bounds_checking_function:libsec_shared", 100 "cJSON:cjson", 101 "c_utils:utils", 102 ] 103 if (init_appspawn_client_module && defined(global_parts_info) && 104 defined(global_parts_info.startup_appspawn)) { 105 defines += [ "ENABLE_ENTER_APPSPAWN_SANDBOX" ] 106 external_deps += [ "appspawn:appspawn_client" ] 107 } 108 if (param_test) { 109 sources += [ 110 "//base/startup/init/test/moduletest/param_test_cmds.c", 111 "//base/startup/init/test/moduletest/syspara.cpp", 112 ] 113 deps += [ "//base/startup/init/interfaces/innerkits:libbeget_proxy" ] 114 defines += [ 115 "OHOS_SERVICE_DUMP", 116 "INIT_TEST", 117 ] 118 } 119 120 if (build_selinux) { 121 external_deps += [ 122 "selinux:libselinux", 123 "selinux_adapter:libselinux_parameter_static", 124 ] 125 defines += [ "PARAM_SUPPORT_SELINUX" ] 126 } 127 128 symlink_target_name = [ 129 "reboot", 130 "service_control", 131 ] 132 133 if (init_feature_ab_partition) { 134 sources += [ "partitionslot.cpp" ] 135 external_deps += [ 136 "drivers_interface_partitionslot:libpartitionslot_proxy_1.0", 137 "hdf_core:libhdi", 138 "hdf_core:libpub_utils", 139 ] 140 } 141 142 install_images = [ "system" ] 143 install_enable = true 144 part_name = "init" 145 subsystem_name = "startup" 146 } 147 148 ohos_executable("reboot") { 149 sources = [ 150 "init_cmd_reboot.c", 151 "main.c", 152 "param_cmd.c", 153 "shell/shell_bas.c", 154 ] 155 156 defines = [ "_GNU_SOURCE" ] 157 158 include_dirs = common_include_dirs 159 deps = [ 160 "//base/startup/init/interfaces/innerkits:libbegetutil", 161 "//base/startup/init/services/log:agent_log", 162 "//base/startup/init/services/param/linux:param_client", 163 "//base/startup/init/services/utils:libinit_utils", 164 ] 165 166 deps += [ "//base/startup/init/services/param/base:param_base" ] 167 external_deps = [ 168 "bounds_checking_function:libsec_shared", 169 "cJSON:cjson", 170 "c_utils:utils", 171 "selinux:libselinux", 172 "selinux_adapter:libselinux_parameter_static", 173 ] 174 175 install_images = [ "updater" ] 176 install_enable = true 177 part_name = "init" 178 subsystem_name = "startup" 179 } 180 181 ohos_executable("paramshell") { 182 sources = [ 183 "param_cmd.c", 184 "shell/shell_bas.c", 185 "shell/shell_main.c", 186 ] 187 188 defines = [ "_GNU_SOURCE" ] 189 include_dirs = common_include_dirs 190 deps = [ 191 "//base/startup/init/interfaces/innerkits:libbegetutil", 192 "//base/startup/init/services/log:agent_log", 193 "//base/startup/init/services/param/linux:param_client", 194 "//base/startup/init/services/utils:libinit_utils", 195 ] 196 external_deps = [ "bounds_checking_function:libsec_shared" ] 197 198 if (build_selinux) { 199 external_deps += [ 200 "selinux:libselinux", 201 "selinux_adapter:libselinux_parameter_static", 202 ] 203 defines += [ "PARAM_SUPPORT_SELINUX" ] 204 } 205 206 if (param_test) { 207 sources += [ 208 "//base/startup/init/test/moduletest/param_test_cmds.c", 209 "//base/startup/init/test/moduletest/syspara.cpp", 210 ] 211 deps += [ "//base/startup/init/interfaces/innerkits:libbeget_proxy" ] 212 defines += [ 213 "OHOS_SERVICE_DUMP", 214 "INIT_TEST", 215 ] 216 } 217 218 install_images = [ "system" ] 219 install_enable = true 220 221 part_name = "init" 222 subsystem_name = "startup" 223 } 224 225 ohos_executable("param") { 226 sources = [ 227 "main.c", 228 "param_cmd.c", 229 "shell/shell_bas.c", 230 ] 231 232 defines = [ 233 "INIT_AGENT", 234 "_GNU_SOURCE", 235 ] 236 237 include_dirs = common_include_dirs 238 deps = [ 239 "//base/startup/init/services/log:agent_log", 240 "//base/startup/init/services/loopevent:loopevent", 241 "//base/startup/init/services/param/linux:param_client", 242 "//base/startup/init/services/utils:libinit_utils", 243 ] 244 deps += [ "//base/startup/init/services/param/base:param_base" ] 245 external_deps = [ 246 "bounds_checking_function:libsec_shared", 247 "c_utils:utils", 248 "hilog:libhilog_base", 249 ] 250 if (build_selinux) { 251 defines += [ "PARAM_SUPPORT_SELINUX" ] 252 external_deps += [ 253 "selinux:libselinux", 254 "selinux_adapter:libselinux_parameter_static", 255 ] 256 } 257 install_images = [ 258 "system", 259 "updater", 260 ] 261 install_enable = true 262 part_name = "init" 263 subsystem_name = "startup" 264 } 265} 266 267group("begetctl_cmd") { 268 if (defined(ohos_lite)) { 269 if (init_feature_begetctl_liteos && ohos_kernel_type != "liteos_m") { 270 deps = [ ":begetctl" ] 271 } 272 } else { 273 deps = [ 274 ":begetctl", 275 ":param", 276 ":paramshell", 277 ":reboot", 278 ] 279 } 280} 281