xref: /base/startup/init/services/etc/BUILD.gn (revision d9f0492f)
1d9f0492fSopenharmony_ci# Copyright (c) 2020-2022 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_ciimport("//base/startup/init/services/etc/passwd_appender/passwd_appender.gni")
15d9f0492fSopenharmony_ci
16d9f0492fSopenharmony_ciif (defined(ohos_lite)) {
17d9f0492fSopenharmony_ci  copy("ohos.para") {
18d9f0492fSopenharmony_ci    sources = [ "//base/startup/init/services/etc/param/ohos.para" ]
19d9f0492fSopenharmony_ci    outputs = [ "$root_out_dir/system/etc/param/ohos.para" ]
20d9f0492fSopenharmony_ci  }
21d9f0492fSopenharmony_ci
22d9f0492fSopenharmony_ci  copy("ohos.para.dac") {
23d9f0492fSopenharmony_ci    sources = [ "//base/startup/init/services/etc/param/ohos.para.dac" ]
24d9f0492fSopenharmony_ci    outputs = [ "$root_out_dir/system/etc/param/ohos.para.dac" ]
25d9f0492fSopenharmony_ci  }
26d9f0492fSopenharmony_ci  copy("ohos.const") {
27d9f0492fSopenharmony_ci    sources =
28d9f0492fSopenharmony_ci        [ "//base/startup/init/services/etc_lite/param/ohos_const/ohos.para" ]
29d9f0492fSopenharmony_ci    outputs = [ "$root_out_dir/system/etc/param/ohos_const/ohos.para" ]
30d9f0492fSopenharmony_ci  }
31d9f0492fSopenharmony_ci
32d9f0492fSopenharmony_ci  copy("ohos.passwd") {
33d9f0492fSopenharmony_ci    sources = [ "//base/startup/init/services/etc_lite/passwd" ]
34d9f0492fSopenharmony_ci    outputs = [ "$root_out_dir/etc/passwd" ]
35d9f0492fSopenharmony_ci  }
36d9f0492fSopenharmony_ci  copy("ohos.group") {
37d9f0492fSopenharmony_ci    sources = [ "//base/startup/init/services/etc_lite/group" ]
38d9f0492fSopenharmony_ci    outputs = [ "$root_out_dir/etc/group" ]
39d9f0492fSopenharmony_ci  }
40d9f0492fSopenharmony_ci
41d9f0492fSopenharmony_ci  group("etc_files") {
42d9f0492fSopenharmony_ci    deps = [
43d9f0492fSopenharmony_ci      ":ohos.const",
44d9f0492fSopenharmony_ci      ":ohos.para",
45d9f0492fSopenharmony_ci      ":ohos.para.dac",
46d9f0492fSopenharmony_ci    ]
47d9f0492fSopenharmony_ci    if (ohos_kernel_type == "linux") {
48d9f0492fSopenharmony_ci      deps += [
49d9f0492fSopenharmony_ci        ":ohos.group",
50d9f0492fSopenharmony_ci        ":ohos.passwd",
51d9f0492fSopenharmony_ci      ]
52d9f0492fSopenharmony_ci    }
53d9f0492fSopenharmony_ci  }
54d9f0492fSopenharmony_ci} else {
55d9f0492fSopenharmony_ci  import("//build/config/components/init/param/param_fixer.gni")
56d9f0492fSopenharmony_ci  import("//build/ohos.gni")
57d9f0492fSopenharmony_ci
58d9f0492fSopenharmony_ci  # init etc files group
59d9f0492fSopenharmony_ci  ohos_prebuilt_etc("init.cfg") {
60d9f0492fSopenharmony_ci    if (!enable_ramdisk) {
61d9f0492fSopenharmony_ci      source = "//base/startup/init/services/etc/init.without_two_stages.cfg"
62d9f0492fSopenharmony_ci    } else {
63d9f0492fSopenharmony_ci      source = "//base/startup/init/services/etc/init.cfg"
64d9f0492fSopenharmony_ci    }
65d9f0492fSopenharmony_ci    output = "init.cfg"
66d9f0492fSopenharmony_ci    part_name = "init"
67d9f0492fSopenharmony_ci    subsystem_name = "startup"
68d9f0492fSopenharmony_ci  }
69d9f0492fSopenharmony_ci
70d9f0492fSopenharmony_ci  ohos_prebuilt_etc("watchdog.cfg") {
71d9f0492fSopenharmony_ci    source = "//base/startup/init/services/etc/watchdog.cfg"
72d9f0492fSopenharmony_ci    relative_install_dir = "init"
73d9f0492fSopenharmony_ci    part_name = "init"
74d9f0492fSopenharmony_ci    subsystem_name = "startup"
75d9f0492fSopenharmony_ci  }
76d9f0492fSopenharmony_ci
77d9f0492fSopenharmony_ci  ohos_prebuilt_etc("console.cfg") {
78d9f0492fSopenharmony_ci    image_name = [ "system" ]
79d9f0492fSopenharmony_ci    if (build_variant == "user") {
80d9f0492fSopenharmony_ci      source = "//base/startup/init/services/etc/console.user.cfg"
81d9f0492fSopenharmony_ci      image_name += [ "eng_system" ]
82d9f0492fSopenharmony_ci    } else if (build_variant == "root") {
83d9f0492fSopenharmony_ci      source = "//base/startup/init/services/etc/console.cfg"
84d9f0492fSopenharmony_ci    }
85d9f0492fSopenharmony_ci    install_images = image_name
86d9f0492fSopenharmony_ci    output = "console.cfg"
87d9f0492fSopenharmony_ci    relative_install_dir = "init"
88d9f0492fSopenharmony_ci    part_name = "init"
89d9f0492fSopenharmony_ci    subsystem_name = "startup"
90d9f0492fSopenharmony_ci  }
91d9f0492fSopenharmony_ci
92d9f0492fSopenharmony_ci  ohos_prebuilt_etc("ueventd.cfg") {
93d9f0492fSopenharmony_ci    source = "//base/startup/init/services/etc/ueventd.cfg"
94d9f0492fSopenharmony_ci    relative_install_dir = "init"
95d9f0492fSopenharmony_ci    part_name = "init"
96d9f0492fSopenharmony_ci    subsystem_name = "startup"
97d9f0492fSopenharmony_ci  }
98d9f0492fSopenharmony_ci
99d9f0492fSopenharmony_ci  ohos_passwd_appender("passwd") {
100d9f0492fSopenharmony_ci    sources = [ "//base/startup/init/services/etc/passwd" ]
101d9f0492fSopenharmony_ci    ranges = [ "0-6999" ]
102d9f0492fSopenharmony_ci    output = "//base/startup/init/services/etc/passwd"
103d9f0492fSopenharmony_ci    install_images = [
104d9f0492fSopenharmony_ci      "system",
105d9f0492fSopenharmony_ci      "updater",
106d9f0492fSopenharmony_ci    ]
107d9f0492fSopenharmony_ci    if (init_extra_static_modules != "") {
108d9f0492fSopenharmony_ci      install_enable = false
109d9f0492fSopenharmony_ci    }
110d9f0492fSopenharmony_ci    part_name = "init"
111d9f0492fSopenharmony_ci    subsystem_name = "startup"
112d9f0492fSopenharmony_ci  }
113d9f0492fSopenharmony_ci
114d9f0492fSopenharmony_ci  ohos_prebuilt_etc("group") {
115d9f0492fSopenharmony_ci    source = "//base/startup/init/services/etc/group"
116d9f0492fSopenharmony_ci    install_images = [
117d9f0492fSopenharmony_ci      "system",
118d9f0492fSopenharmony_ci      "updater",
119d9f0492fSopenharmony_ci    ]
120d9f0492fSopenharmony_ci    if (init_extra_static_modules != "") {
121d9f0492fSopenharmony_ci      install_enable = false
122d9f0492fSopenharmony_ci    }
123d9f0492fSopenharmony_ci    part_name = "init"
124d9f0492fSopenharmony_ci    subsystem_name = "startup"
125d9f0492fSopenharmony_ci  }
126d9f0492fSopenharmony_ci
127d9f0492fSopenharmony_ci  ohos_prebuilt_etc("init.usb.cfg") {
128d9f0492fSopenharmony_ci    source = "//base/startup/init/services/etc/init.usb.cfg"
129d9f0492fSopenharmony_ci    part_name = "init"
130d9f0492fSopenharmony_ci    subsystem_name = "startup"
131d9f0492fSopenharmony_ci  }
132d9f0492fSopenharmony_ci
133d9f0492fSopenharmony_ci  ohos_prebuilt_para("ohos.para") {
134d9f0492fSopenharmony_ci    source = "//base/startup/init/services/etc/param/ohos.para"
135d9f0492fSopenharmony_ci    install_images = [
136d9f0492fSopenharmony_ci      "system",
137d9f0492fSopenharmony_ci      "updater",
138d9f0492fSopenharmony_ci    ]
139d9f0492fSopenharmony_ci    part_name = "init"
140d9f0492fSopenharmony_ci    subsystem_name = "startup"
141d9f0492fSopenharmony_ci    extra_paras = []
142d9f0492fSopenharmony_ci    if (target_cpu == "arm64") {
143d9f0492fSopenharmony_ci      extra_paras += [ "const.product.cpu.abilist=arm64-v8a" ]
144d9f0492fSopenharmony_ci    }
145d9f0492fSopenharmony_ci    if (target_cpu == "x86_64") {
146d9f0492fSopenharmony_ci      extra_paras += [ "const.product.cpu.abilist=x86_64" ]
147d9f0492fSopenharmony_ci    }
148d9f0492fSopenharmony_ci    if (target_cpu == "riscv64") {
149d9f0492fSopenharmony_ci      extra_paras += [ "const.product.cpu.abilist=riscv64" ]
150d9f0492fSopenharmony_ci    }
151d9f0492fSopenharmony_ci    if (build_variant == "user") {
152d9f0492fSopenharmony_ci      extra_paras += [
153d9f0492fSopenharmony_ci        "const.secure=1",
154d9f0492fSopenharmony_ci        "const.debuggable=0",
155d9f0492fSopenharmony_ci      ]
156d9f0492fSopenharmony_ci    } else if (build_variant == "root") {
157d9f0492fSopenharmony_ci      extra_paras += [
158d9f0492fSopenharmony_ci        "const.secure=0",
159d9f0492fSopenharmony_ci        "const.debuggable=1",
160d9f0492fSopenharmony_ci      ]
161d9f0492fSopenharmony_ci    }
162d9f0492fSopenharmony_ci    if (device_type != "default") {
163d9f0492fSopenharmony_ci      extra_paras += [
164d9f0492fSopenharmony_ci        "const.product.devicetype=${device_type}",
165d9f0492fSopenharmony_ci        "const.build.characteristics=${device_type}",
166d9f0492fSopenharmony_ci      ]
167d9f0492fSopenharmony_ci    }
168d9f0492fSopenharmony_ci    module_install_dir = "etc/param"
169d9f0492fSopenharmony_ci  }
170d9f0492fSopenharmony_ci
171d9f0492fSopenharmony_ci  ohos_prebuilt_para("ohos.startup.para") {
172d9f0492fSopenharmony_ci    source = "//base/startup/init/services/etc/param/ohos.startup.para"
173d9f0492fSopenharmony_ci    install_images = [
174d9f0492fSopenharmony_ci      "system",
175d9f0492fSopenharmony_ci      "updater",
176d9f0492fSopenharmony_ci    ]
177d9f0492fSopenharmony_ci    part_name = "init"
178d9f0492fSopenharmony_ci    subsystem_name = "startup"
179d9f0492fSopenharmony_ci    module_install_dir = "etc/param"
180d9f0492fSopenharmony_ci  }
181d9f0492fSopenharmony_ci
182d9f0492fSopenharmony_ci  ohos_prebuilt_para("ohos.para.dac") {
183d9f0492fSopenharmony_ci    source = "//base/startup/init/services/etc/param/ohos.para.dac"
184d9f0492fSopenharmony_ci    install_images = [
185d9f0492fSopenharmony_ci      "system",
186d9f0492fSopenharmony_ci      "updater",
187d9f0492fSopenharmony_ci    ]
188d9f0492fSopenharmony_ci    part_name = "init"
189d9f0492fSopenharmony_ci    subsystem_name = "startup"
190d9f0492fSopenharmony_ci    module_install_dir = "etc/param"
191d9f0492fSopenharmony_ci  }
192d9f0492fSopenharmony_ci
193d9f0492fSopenharmony_ci  ohos_prebuilt_para("ohos_const.para") {
194d9f0492fSopenharmony_ci    source = "//base/startup/init/services/etc/param/ohos_const/ohos.para"
195d9f0492fSopenharmony_ci    part_name = "init"
196d9f0492fSopenharmony_ci    subsystem_name = "startup"
197d9f0492fSopenharmony_ci    module_install_dir = "etc/param/ohos_const"
198d9f0492fSopenharmony_ci  }
199d9f0492fSopenharmony_ci
200d9f0492fSopenharmony_ci  ohos_prebuilt_para("ohos.para.size") {
201d9f0492fSopenharmony_ci    source = "//base/startup/init/services/etc/param/ohos.para.size"
202d9f0492fSopenharmony_ci    install_images = [
203d9f0492fSopenharmony_ci      "system",
204d9f0492fSopenharmony_ci      "updater",
205d9f0492fSopenharmony_ci    ]
206d9f0492fSopenharmony_ci    part_name = "init"
207d9f0492fSopenharmony_ci    subsystem_name = "startup"
208d9f0492fSopenharmony_ci    module_install_dir = "etc/param"
209d9f0492fSopenharmony_ci  }
210d9f0492fSopenharmony_ci
211d9f0492fSopenharmony_ci  ohos_prebuilt_etc("boot.group") {
212d9f0492fSopenharmony_ci    source = "//base/startup/init/services/etc/device.boot.group.cfg"
213d9f0492fSopenharmony_ci    part_name = "init"
214d9f0492fSopenharmony_ci    subsystem_name = "startup"
215d9f0492fSopenharmony_ci  }
216d9f0492fSopenharmony_ci
217d9f0492fSopenharmony_ci  ohos_prebuilt_etc("syscap.para") {
218d9f0492fSopenharmony_ci    source = "${preloader_output_dir}/system/etc/param/syscap.para"
219d9f0492fSopenharmony_ci    module_install_dir = "etc/param/"
220d9f0492fSopenharmony_ci    part_name = "init"
221d9f0492fSopenharmony_ci    subsystem_name = "startup"
222d9f0492fSopenharmony_ci  }
223d9f0492fSopenharmony_ci
224d9f0492fSopenharmony_ci  ohos_prebuilt_etc("syscap.json") {
225d9f0492fSopenharmony_ci    source = "${preloader_output_dir}/system/etc/syscap.json"
226d9f0492fSopenharmony_ci    part_name = "init"
227d9f0492fSopenharmony_ci    subsystem_name = "startup"
228d9f0492fSopenharmony_ci  }
229d9f0492fSopenharmony_ci
230d9f0492fSopenharmony_ci  ohos_prebuilt_etc("systemcapability.json") {
231d9f0492fSopenharmony_ci    source = "${preloader_output_dir}/system/etc/SystemCapability.json"
232d9f0492fSopenharmony_ci    part_name = "init"
233d9f0492fSopenharmony_ci    subsystem_name = "startup"
234d9f0492fSopenharmony_ci  }
235d9f0492fSopenharmony_ci
236d9f0492fSopenharmony_ci  ohos_prebuilt_etc("features.json") {
237d9f0492fSopenharmony_ci    source = "${preloader_output_dir}/features.json"
238d9f0492fSopenharmony_ci    part_name = "init"
239d9f0492fSopenharmony_ci    subsystem_name = "startup"
240d9f0492fSopenharmony_ci  }
241d9f0492fSopenharmony_ci
242d9f0492fSopenharmony_ci  ohos_prebuilt_etc("init.reboot") {
243d9f0492fSopenharmony_ci    source = "//base/startup/init/services/etc/init.reboot.cfg"
244d9f0492fSopenharmony_ci    part_name = "init"
245d9f0492fSopenharmony_ci    subsystem_name = "startup"
246d9f0492fSopenharmony_ci    module_install_dir = "etc/init"
247d9f0492fSopenharmony_ci  }
248d9f0492fSopenharmony_ci
249d9f0492fSopenharmony_ci  group("etc_files") {
250d9f0492fSopenharmony_ci    deps = [
251d9f0492fSopenharmony_ci      ":boot.group",
252d9f0492fSopenharmony_ci      ":console.cfg",
253d9f0492fSopenharmony_ci      ":features.json",
254d9f0492fSopenharmony_ci      ":group",
255d9f0492fSopenharmony_ci      ":init.cfg",
256d9f0492fSopenharmony_ci      ":init.reboot",
257d9f0492fSopenharmony_ci      ":init.usb.cfg",
258d9f0492fSopenharmony_ci      ":ohos.para",
259d9f0492fSopenharmony_ci      ":ohos.para.dac",
260d9f0492fSopenharmony_ci      ":ohos.para.size",
261d9f0492fSopenharmony_ci      ":ohos.startup.para",
262d9f0492fSopenharmony_ci      ":ohos_const.para",
263d9f0492fSopenharmony_ci      ":passwd",
264d9f0492fSopenharmony_ci      ":syscap.json",
265d9f0492fSopenharmony_ci      ":syscap.para",
266d9f0492fSopenharmony_ci      ":systemcapability.json",
267d9f0492fSopenharmony_ci    ]
268d9f0492fSopenharmony_ci  }
269d9f0492fSopenharmony_ci}
270