blob: bd9543a2e29187bac6290a312b70275c9dc03d08 [file] [log] [blame]
Dan Willemsenc0a0f2d2017-09-09 13:37:03 -07001// Copyright (C) 2008 The Android Open Source Project
2//
3// Licensed under the Apache License, Version 2.0 (the "License");
4// you may not use this file except in compliance with the License.
5// You may obtain a copy of the License at
6//
7// http://www.apache.org/licenses/LICENSE-2.0
8//
9// Unless required by applicable law or agreed to in writing, software
10// distributed under the License is distributed on an "AS IS" BASIS,
11// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12// See the License for the specific language governing permissions and
13// limitations under the License.
14
Bob Badour03905802021-02-12 21:42:54 -080015package {
16 // See: http://go/android-license-faq
Bob Badourd2c7c082022-01-24 15:21:32 -080017 default_applicable_licenses: ["Android-Apache-2.0"],
Bob Badour03905802021-02-12 21:42:54 -080018}
19
Dan Willemsend32e6d12019-04-10 12:25:07 -070020bootstrap_go_package {
21 name: "soong-fs_config",
22 pkgPath: "android/soong/fs_config",
23 deps: [
24 "soong-android",
25 "soong-genrule",
26 ],
27 srcs: [
Tom Cherryfb303a52019-07-11 15:31:36 -070028 "fs_config.go",
Dan Willemsend32e6d12019-04-10 12:25:07 -070029 ],
30 pluginFor: ["soong_build"],
31}
32
Dan Willemsenc0a0f2d2017-09-09 13:37:03 -070033cc_binary_host {
34 name: "fs_config",
35 srcs: ["fs_config.c"],
36 shared_libs: [
37 "libcutils",
Dan Willemsenc0a0f2d2017-09-09 13:37:03 -070038 ],
39 cflags: ["-Werror"],
40}
Dan Willemsend32e6d12019-04-10 12:25:07 -070041
Cole Faustf08ab3d2022-10-20 13:36:05 -070042python_binary_host {
43 name: "fs_config_generator",
44 srcs: ["fs_config_generator.py"],
Cole Faustf08ab3d2022-10-20 13:36:05 -070045}
46
47python_test_host {
48 name: "test_fs_config_generator",
49 main: "test_fs_config_generator.py",
50 srcs: [
51 "test_fs_config_generator.py",
52 "fs_config_generator.py",
53 ],
Cole Faustf08ab3d2022-10-20 13:36:05 -070054}
55
Dan Willemsend32e6d12019-04-10 12:25:07 -070056target_fs_config_gen_filegroup {
57 name: "target_fs_config_gen",
58}
59
60genrule {
61 name: "oemaids_header_gen",
Cole Faustf08ab3d2022-10-20 13:36:05 -070062 tools: ["fs_config_generator"],
63 cmd: "$(location fs_config_generator) oemaid --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)",
Dan Willemsend32e6d12019-04-10 12:25:07 -070064 srcs: [
65 ":target_fs_config_gen",
66 ":android_filesystem_config_header",
67 ],
68 out: ["generated_oem_aid.h"],
69}
70
71cc_library_headers {
72 name: "oemaids_headers",
P.Adarsh Reddy8b2e7c92020-02-18 14:53:22 +053073 vendor_available: true,
Dan Willemsend32e6d12019-04-10 12:25:07 -070074 generated_headers: ["oemaids_header_gen"],
75 export_generated_headers: ["oemaids_header_gen"],
76}
77
Tom Cherryfb303a52019-07-11 15:31:36 -070078// Generate the */etc/passwd text files for the target
79// These files may be empty if no AIDs are defined in
Dan Willemsend32e6d12019-04-10 12:25:07 -070080// TARGET_FS_CONFIG_GEN files.
81genrule {
Tom Cherryfb303a52019-07-11 15:31:36 -070082 name: "passwd_gen_system",
Cole Faustf08ab3d2022-10-20 13:36:05 -070083 tools: ["fs_config_generator"],
84 cmd: "$(location fs_config_generator) passwd --partition=system --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)",
Dan Willemsend32e6d12019-04-10 12:25:07 -070085 srcs: [
86 ":target_fs_config_gen",
87 ":android_filesystem_config_header",
88 ],
89 out: ["passwd"],
90}
91
92prebuilt_etc {
Tom Cherryfb303a52019-07-11 15:31:36 -070093 name: "passwd_system",
94 filename: "passwd",
95 src: ":passwd_gen_system",
Dan Willemsend32e6d12019-04-10 12:25:07 -070096}
97
Tom Cherryfb303a52019-07-11 15:31:36 -070098genrule {
99 name: "passwd_gen_vendor",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700100 tools: ["fs_config_generator"],
101 cmd: "$(location fs_config_generator) passwd --partition=vendor --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)",
Tom Cherryfb303a52019-07-11 15:31:36 -0700102 srcs: [
103 ":target_fs_config_gen",
104 ":android_filesystem_config_header",
105 ],
106 out: ["passwd"],
107}
108
109prebuilt_etc {
110 name: "passwd_vendor",
111 filename: "passwd",
112 vendor: true,
113 src: ":passwd_gen_vendor",
114}
115
116genrule {
117 name: "passwd_gen_odm",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700118 tools: ["fs_config_generator"],
119 cmd: "$(location fs_config_generator) passwd --partition=odm --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)",
Tom Cherryfb303a52019-07-11 15:31:36 -0700120 srcs: [
121 ":target_fs_config_gen",
122 ":android_filesystem_config_header",
123 ],
124 out: ["passwd"],
125}
126
127prebuilt_etc {
128 name: "passwd_odm",
129 filename: "passwd",
130 device_specific: true,
131 src: ":passwd_gen_odm",
132}
133
134genrule {
135 name: "passwd_gen_product",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700136 tools: ["fs_config_generator"],
137 cmd: "$(location fs_config_generator) passwd --partition=product --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)",
Tom Cherryfb303a52019-07-11 15:31:36 -0700138 srcs: [
139 ":target_fs_config_gen",
140 ":android_filesystem_config_header",
141 ],
142 out: ["passwd"],
143}
144
145prebuilt_etc {
146 name: "passwd_product",
147 filename: "passwd",
148 product_specific: true,
149 src: ":passwd_gen_product",
150}
151
152genrule {
153 name: "passwd_gen_system_ext",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700154 tools: ["fs_config_generator"],
155 cmd: "$(location fs_config_generator) passwd --partition=system_ext --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)",
Tom Cherryfb303a52019-07-11 15:31:36 -0700156 srcs: [
157 ":target_fs_config_gen",
158 ":android_filesystem_config_header",
159 ],
160 out: ["passwd"],
161}
162
163prebuilt_etc {
164 name: "passwd_system_ext",
165 filename: "passwd",
166 system_ext_specific: true,
167 src: ":passwd_gen_system_ext",
168}
169
170// Generate the */etc/group text files for the target
171// These files may be empty if no AIDs are defined in
Dan Willemsend32e6d12019-04-10 12:25:07 -0700172// TARGET_FS_CONFIG_GEN files.
173genrule {
Tom Cherryfb303a52019-07-11 15:31:36 -0700174 name: "group_gen_system",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700175 tools: ["fs_config_generator"],
176 cmd: "$(location fs_config_generator) group --partition=system --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)",
Dan Willemsend32e6d12019-04-10 12:25:07 -0700177 srcs: [
178 ":target_fs_config_gen",
179 ":android_filesystem_config_header",
180 ],
181 out: ["group"],
182}
183
184prebuilt_etc {
Tom Cherryfb303a52019-07-11 15:31:36 -0700185 name: "group_system",
186 filename: "group",
187 src: ":group_gen_system",
188}
189
190genrule {
191 name: "group_gen_vendor",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700192 tools: ["fs_config_generator"],
193 cmd: "$(location fs_config_generator) group --partition=vendor --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)",
Tom Cherryfb303a52019-07-11 15:31:36 -0700194 srcs: [
195 ":target_fs_config_gen",
196 ":android_filesystem_config_header",
197 ],
198 out: ["group"],
199}
200
201prebuilt_etc {
202 name: "group_vendor",
203 filename: "group",
Dan Willemsend32e6d12019-04-10 12:25:07 -0700204 vendor: true,
Tom Cherryfb303a52019-07-11 15:31:36 -0700205 src: ":group_gen_vendor",
206}
207
208genrule {
209 name: "group_gen_odm",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700210 tools: ["fs_config_generator"],
211 cmd: "$(location fs_config_generator) group --partition=odm --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)",
Tom Cherryfb303a52019-07-11 15:31:36 -0700212 srcs: [
213 ":target_fs_config_gen",
214 ":android_filesystem_config_header",
215 ],
216 out: ["group"],
217}
218
219prebuilt_etc {
220 name: "group_odm",
221 filename: "group",
222 device_specific: true,
223 src: ":group_gen_odm",
224}
225
226genrule {
227 name: "group_gen_product",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700228 tools: ["fs_config_generator"],
229 cmd: "$(location fs_config_generator) group --partition=product --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)",
Tom Cherryfb303a52019-07-11 15:31:36 -0700230 srcs: [
231 ":target_fs_config_gen",
232 ":android_filesystem_config_header",
233 ],
234 out: ["group"],
235}
236
237prebuilt_etc {
238 name: "group_product",
239 filename: "group",
240 product_specific: true,
241 src: ":group_gen_product",
242}
243
244genrule {
245 name: "group_gen_system_ext",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700246 tools: ["fs_config_generator"],
247 cmd: "$(location fs_config_generator) group --partition=system_ext --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)",
Tom Cherryfb303a52019-07-11 15:31:36 -0700248 srcs: [
249 ":target_fs_config_gen",
250 ":android_filesystem_config_header",
251 ],
252 out: ["group"],
253}
254
255prebuilt_etc {
256 name: "group_system_ext",
257 filename: "group",
258 system_ext_specific: true,
259 src: ":group_gen_system_ext",
Dan Willemsend32e6d12019-04-10 12:25:07 -0700260}