blob: d57893c18c41efc9acaedcfe41dd8d1735583d3a [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",
38 "libselinux",
39 ],
40 cflags: ["-Werror"],
41}
Dan Willemsend32e6d12019-04-10 12:25:07 -070042
Cole Faustf08ab3d2022-10-20 13:36:05 -070043python_binary_host {
44 name: "fs_config_generator",
45 srcs: ["fs_config_generator.py"],
46 version: {
47 py2: {
48 enabled: true,
49 },
50 py3: {
51 enabled: false,
52 },
53 },
54}
55
56python_test_host {
57 name: "test_fs_config_generator",
58 main: "test_fs_config_generator.py",
59 srcs: [
60 "test_fs_config_generator.py",
61 "fs_config_generator.py",
62 ],
63 version: {
64 py2: {
65 enabled: true,
66 },
67 py3: {
68 enabled: false,
69 },
70 },
71}
72
Dan Willemsend32e6d12019-04-10 12:25:07 -070073target_fs_config_gen_filegroup {
74 name: "target_fs_config_gen",
75}
76
77genrule {
78 name: "oemaids_header_gen",
Cole Faustf08ab3d2022-10-20 13:36:05 -070079 tools: ["fs_config_generator"],
80 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 -070081 srcs: [
82 ":target_fs_config_gen",
83 ":android_filesystem_config_header",
84 ],
85 out: ["generated_oem_aid.h"],
86}
87
88cc_library_headers {
89 name: "oemaids_headers",
P.Adarsh Reddy8b2e7c92020-02-18 14:53:22 +053090 vendor_available: true,
Dan Willemsend32e6d12019-04-10 12:25:07 -070091 generated_headers: ["oemaids_header_gen"],
92 export_generated_headers: ["oemaids_header_gen"],
93}
94
Tom Cherryfb303a52019-07-11 15:31:36 -070095// Generate the */etc/passwd text files for the target
96// These files may be empty if no AIDs are defined in
Dan Willemsend32e6d12019-04-10 12:25:07 -070097// TARGET_FS_CONFIG_GEN files.
98genrule {
Tom Cherryfb303a52019-07-11 15:31:36 -070099 name: "passwd_gen_system",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700100 tools: ["fs_config_generator"],
101 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 -0700102 srcs: [
103 ":target_fs_config_gen",
104 ":android_filesystem_config_header",
105 ],
106 out: ["passwd"],
107}
108
109prebuilt_etc {
Tom Cherryfb303a52019-07-11 15:31:36 -0700110 name: "passwd_system",
111 filename: "passwd",
112 src: ":passwd_gen_system",
Dan Willemsend32e6d12019-04-10 12:25:07 -0700113}
114
Tom Cherryfb303a52019-07-11 15:31:36 -0700115genrule {
116 name: "passwd_gen_vendor",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700117 tools: ["fs_config_generator"],
118 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 -0700119 srcs: [
120 ":target_fs_config_gen",
121 ":android_filesystem_config_header",
122 ],
123 out: ["passwd"],
124}
125
126prebuilt_etc {
127 name: "passwd_vendor",
128 filename: "passwd",
129 vendor: true,
130 src: ":passwd_gen_vendor",
131}
132
133genrule {
134 name: "passwd_gen_odm",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700135 tools: ["fs_config_generator"],
136 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 -0700137 srcs: [
138 ":target_fs_config_gen",
139 ":android_filesystem_config_header",
140 ],
141 out: ["passwd"],
142}
143
144prebuilt_etc {
145 name: "passwd_odm",
146 filename: "passwd",
147 device_specific: true,
148 src: ":passwd_gen_odm",
149}
150
151genrule {
152 name: "passwd_gen_product",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700153 tools: ["fs_config_generator"],
154 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 -0700155 srcs: [
156 ":target_fs_config_gen",
157 ":android_filesystem_config_header",
158 ],
159 out: ["passwd"],
160}
161
162prebuilt_etc {
163 name: "passwd_product",
164 filename: "passwd",
165 product_specific: true,
166 src: ":passwd_gen_product",
167}
168
169genrule {
170 name: "passwd_gen_system_ext",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700171 tools: ["fs_config_generator"],
172 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 -0700173 srcs: [
174 ":target_fs_config_gen",
175 ":android_filesystem_config_header",
176 ],
177 out: ["passwd"],
178}
179
180prebuilt_etc {
181 name: "passwd_system_ext",
182 filename: "passwd",
183 system_ext_specific: true,
184 src: ":passwd_gen_system_ext",
185}
186
187// Generate the */etc/group text files for the target
188// These files may be empty if no AIDs are defined in
Dan Willemsend32e6d12019-04-10 12:25:07 -0700189// TARGET_FS_CONFIG_GEN files.
190genrule {
Tom Cherryfb303a52019-07-11 15:31:36 -0700191 name: "group_gen_system",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700192 tools: ["fs_config_generator"],
193 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 -0700194 srcs: [
195 ":target_fs_config_gen",
196 ":android_filesystem_config_header",
197 ],
198 out: ["group"],
199}
200
201prebuilt_etc {
Tom Cherryfb303a52019-07-11 15:31:36 -0700202 name: "group_system",
203 filename: "group",
204 src: ":group_gen_system",
205}
206
207genrule {
208 name: "group_gen_vendor",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700209 tools: ["fs_config_generator"],
210 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 -0700211 srcs: [
212 ":target_fs_config_gen",
213 ":android_filesystem_config_header",
214 ],
215 out: ["group"],
216}
217
218prebuilt_etc {
219 name: "group_vendor",
220 filename: "group",
Dan Willemsend32e6d12019-04-10 12:25:07 -0700221 vendor: true,
Tom Cherryfb303a52019-07-11 15:31:36 -0700222 src: ":group_gen_vendor",
223}
224
225genrule {
226 name: "group_gen_odm",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700227 tools: ["fs_config_generator"],
228 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 -0700229 srcs: [
230 ":target_fs_config_gen",
231 ":android_filesystem_config_header",
232 ],
233 out: ["group"],
234}
235
236prebuilt_etc {
237 name: "group_odm",
238 filename: "group",
239 device_specific: true,
240 src: ":group_gen_odm",
241}
242
243genrule {
244 name: "group_gen_product",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700245 tools: ["fs_config_generator"],
246 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 -0700247 srcs: [
248 ":target_fs_config_gen",
249 ":android_filesystem_config_header",
250 ],
251 out: ["group"],
252}
253
254prebuilt_etc {
255 name: "group_product",
256 filename: "group",
257 product_specific: true,
258 src: ":group_gen_product",
259}
260
261genrule {
262 name: "group_gen_system_ext",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700263 tools: ["fs_config_generator"],
264 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 -0700265 srcs: [
266 ":target_fs_config_gen",
267 ":android_filesystem_config_header",
268 ],
269 out: ["group"],
270}
271
272prebuilt_etc {
273 name: "group_system_ext",
274 filename: "group",
275 system_ext_specific: true,
276 src: ":group_gen_system_ext",
Dan Willemsend32e6d12019-04-10 12:25:07 -0700277}