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