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.
13
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("//base/startup/init/services/etc/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    part_name = "init"
108    subsystem_name = "startup"
109  }
110
111  ohos_prebuilt_etc("group") {
112    source = "//base/startup/init/services/etc/group"
113    install_images = [
114      "system",
115      "updater",
116    ]
117    part_name = "init"
118    subsystem_name = "startup"
119  }
120
121  ohos_prebuilt_etc("init.usb.cfg") {
122    source = "//base/startup/init/services/etc/init.usb.cfg"
123    part_name = "init"
124    subsystem_name = "startup"
125  }
126
127  ohos_prebuilt_para("ohos.para") {
128    source = "//base/startup/init/services/etc/param/ohos.para"
129    install_images = [
130      "system",
131      "updater",
132    ]
133    part_name = "init"
134    subsystem_name = "startup"
135    extra_paras = []
136    if (target_cpu == "arm64") {
137      extra_paras += [ "const.product.cpu.abilist=arm64-v8a" ]
138    }
139    if (target_cpu == "x86_64") {
140      extra_paras += [ "const.product.cpu.abilist=x86_64" ]
141    }
142    if (target_cpu == "riscv64") {
143      extra_paras += [ "const.product.cpu.abilist=riscv64" ]
144    }
145    if (build_variant == "user") {
146      extra_paras += [
147        "const.secure=1",
148        "const.debuggable=0",
149      ]
150    } else if (build_variant == "root") {
151      extra_paras += [
152        "const.secure=0",
153        "const.debuggable=1",
154      ]
155    }
156    if (device_type != "default") {
157      extra_paras += [
158        "const.product.devicetype=${device_type}",
159        "const.build.characteristics=${device_type}",
160      ]
161    }
162    module_install_dir = "etc/param"
163  }
164
165  ohos_prebuilt_para("ohos.startup.para") {
166    source = "//base/startup/init/services/etc/param/ohos.startup.para"
167    install_images = [
168      "system",
169      "updater",
170    ]
171    part_name = "init"
172    subsystem_name = "startup"
173    module_install_dir = "etc/param"
174  }
175
176  ohos_prebuilt_para("ohos.para.dac") {
177    source = "//base/startup/init/services/etc/param/ohos.para.dac"
178    install_images = [
179      "system",
180      "updater",
181    ]
182    part_name = "init"
183    subsystem_name = "startup"
184    module_install_dir = "etc/param"
185  }
186
187  ohos_prebuilt_para("ohos_const.para") {
188    source = "//base/startup/init/services/etc/param/ohos_const/ohos.para"
189    part_name = "init"
190    subsystem_name = "startup"
191    module_install_dir = "etc/param/ohos_const"
192  }
193
194  ohos_prebuilt_para("ohos.para.size") {
195    source = "//base/startup/init/services/etc/param/ohos.para.size"
196    install_images = [
197      "system",
198      "updater",
199    ]
200    part_name = "init"
201    subsystem_name = "startup"
202    module_install_dir = "etc/param"
203  }
204
205  ohos_prebuilt_etc("boot.group") {
206    source = "//base/startup/init/services/etc/device.boot.group.cfg"
207    part_name = "init"
208    subsystem_name = "startup"
209  }
210
211  ohos_prebuilt_etc("syscap.para") {
212    source = "${preloader_output_dir}/system/etc/param/syscap.para"
213    module_install_dir = "etc/param/"
214    part_name = "init"
215    subsystem_name = "startup"
216  }
217
218  ohos_prebuilt_etc("syscap.json") {
219    source = "${preloader_output_dir}/system/etc/syscap.json"
220    part_name = "init"
221    subsystem_name = "startup"
222  }
223
224  ohos_prebuilt_etc("systemcapability.json") {
225    source = "${preloader_output_dir}/system/etc/SystemCapability.json"
226    part_name = "init"
227    subsystem_name = "startup"
228  }
229
230  ohos_prebuilt_etc("features.json") {
231    source = "${preloader_output_dir}/features.json"
232    part_name = "init"
233    subsystem_name = "startup"
234  }
235
236  ohos_prebuilt_etc("init.reboot") {
237    source = "//base/startup/init/services/etc/init.reboot.cfg"
238    part_name = "init"
239    subsystem_name = "startup"
240    module_install_dir = "etc/init"
241  }
242
243  group("etc_files") {
244    deps = [
245      ":boot.group",
246      ":console.cfg",
247      ":features.json",
248      ":group",
249      ":init.cfg",
250      ":init.reboot",
251      ":init.usb.cfg",
252      ":ohos.para",
253      ":ohos.para.dac",
254      ":ohos.para.size",
255      ":ohos.startup.para",
256      ":ohos_const.para",
257      ":passwd",
258      ":syscap.json",
259      ":syscap.para",
260      ":systemcapability.json",
261    ]
262  }
263}
264