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