blob: 55fdca43a1c9ba0b6f35aac66949d27dd0e52d96 [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"],
Cole Faustf08ab3d2022-10-20 13:36:05 -070046}
47
48python_test_host {
49 name: "test_fs_config_generator",
50 main: "test_fs_config_generator.py",
51 srcs: [
52 "test_fs_config_generator.py",
53 "fs_config_generator.py",
54 ],
Cole Faustf08ab3d2022-10-20 13:36:05 -070055}
56
Dan Willemsend32e6d12019-04-10 12:25:07 -070057target_fs_config_gen_filegroup {
58 name: "target_fs_config_gen",
59}
60
61genrule {
62 name: "oemaids_header_gen",
Cole Faustf08ab3d2022-10-20 13:36:05 -070063 tools: ["fs_config_generator"],
64 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 -070065 srcs: [
66 ":target_fs_config_gen",
67 ":android_filesystem_config_header",
68 ],
69 out: ["generated_oem_aid.h"],
70}
71
72cc_library_headers {
73 name: "oemaids_headers",
P.Adarsh Reddy8b2e7c92020-02-18 14:53:22 +053074 vendor_available: true,
Dan Willemsend32e6d12019-04-10 12:25:07 -070075 generated_headers: ["oemaids_header_gen"],
76 export_generated_headers: ["oemaids_header_gen"],
77}
78
Tom Cherryfb303a52019-07-11 15:31:36 -070079// Generate the */etc/passwd text files for the target
80// These files may be empty if no AIDs are defined in
Dan Willemsend32e6d12019-04-10 12:25:07 -070081// TARGET_FS_CONFIG_GEN files.
82genrule {
Tom Cherryfb303a52019-07-11 15:31:36 -070083 name: "passwd_gen_system",
Cole Faustf08ab3d2022-10-20 13:36:05 -070084 tools: ["fs_config_generator"],
85 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 -070086 srcs: [
87 ":target_fs_config_gen",
88 ":android_filesystem_config_header",
89 ],
90 out: ["passwd"],
91}
92
93prebuilt_etc {
Tom Cherryfb303a52019-07-11 15:31:36 -070094 name: "passwd_system",
95 filename: "passwd",
96 src: ":passwd_gen_system",
Dan Willemsend32e6d12019-04-10 12:25:07 -070097}
98
Tom Cherryfb303a52019-07-11 15:31:36 -070099genrule {
100 name: "passwd_gen_vendor",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700101 tools: ["fs_config_generator"],
102 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 -0700103 srcs: [
104 ":target_fs_config_gen",
105 ":android_filesystem_config_header",
106 ],
107 out: ["passwd"],
108}
109
110prebuilt_etc {
111 name: "passwd_vendor",
112 filename: "passwd",
113 vendor: true,
114 src: ":passwd_gen_vendor",
115}
116
117genrule {
118 name: "passwd_gen_odm",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700119 tools: ["fs_config_generator"],
120 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 -0700121 srcs: [
122 ":target_fs_config_gen",
123 ":android_filesystem_config_header",
124 ],
125 out: ["passwd"],
126}
127
128prebuilt_etc {
129 name: "passwd_odm",
130 filename: "passwd",
131 device_specific: true,
132 src: ":passwd_gen_odm",
133}
134
135genrule {
136 name: "passwd_gen_product",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700137 tools: ["fs_config_generator"],
138 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 -0700139 srcs: [
140 ":target_fs_config_gen",
141 ":android_filesystem_config_header",
142 ],
143 out: ["passwd"],
144}
145
146prebuilt_etc {
147 name: "passwd_product",
148 filename: "passwd",
149 product_specific: true,
150 src: ":passwd_gen_product",
151}
152
153genrule {
154 name: "passwd_gen_system_ext",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700155 tools: ["fs_config_generator"],
156 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 -0700157 srcs: [
158 ":target_fs_config_gen",
159 ":android_filesystem_config_header",
160 ],
161 out: ["passwd"],
162}
163
164prebuilt_etc {
165 name: "passwd_system_ext",
166 filename: "passwd",
167 system_ext_specific: true,
168 src: ":passwd_gen_system_ext",
169}
170
171// Generate the */etc/group text files for the target
172// These files may be empty if no AIDs are defined in
Dan Willemsend32e6d12019-04-10 12:25:07 -0700173// TARGET_FS_CONFIG_GEN files.
174genrule {
Tom Cherryfb303a52019-07-11 15:31:36 -0700175 name: "group_gen_system",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700176 tools: ["fs_config_generator"],
177 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 -0700178 srcs: [
179 ":target_fs_config_gen",
180 ":android_filesystem_config_header",
181 ],
182 out: ["group"],
183}
184
185prebuilt_etc {
Tom Cherryfb303a52019-07-11 15:31:36 -0700186 name: "group_system",
187 filename: "group",
188 src: ":group_gen_system",
189}
190
191genrule {
192 name: "group_gen_vendor",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700193 tools: ["fs_config_generator"],
194 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 -0700195 srcs: [
196 ":target_fs_config_gen",
197 ":android_filesystem_config_header",
198 ],
199 out: ["group"],
200}
201
202prebuilt_etc {
203 name: "group_vendor",
204 filename: "group",
Dan Willemsend32e6d12019-04-10 12:25:07 -0700205 vendor: true,
Tom Cherryfb303a52019-07-11 15:31:36 -0700206 src: ":group_gen_vendor",
207}
208
209genrule {
210 name: "group_gen_odm",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700211 tools: ["fs_config_generator"],
212 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 -0700213 srcs: [
214 ":target_fs_config_gen",
215 ":android_filesystem_config_header",
216 ],
217 out: ["group"],
218}
219
220prebuilt_etc {
221 name: "group_odm",
222 filename: "group",
223 device_specific: true,
224 src: ":group_gen_odm",
225}
226
227genrule {
228 name: "group_gen_product",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700229 tools: ["fs_config_generator"],
230 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 -0700231 srcs: [
232 ":target_fs_config_gen",
233 ":android_filesystem_config_header",
234 ],
235 out: ["group"],
236}
237
238prebuilt_etc {
239 name: "group_product",
240 filename: "group",
241 product_specific: true,
242 src: ":group_gen_product",
243}
244
245genrule {
246 name: "group_gen_system_ext",
Cole Faustf08ab3d2022-10-20 13:36:05 -0700247 tools: ["fs_config_generator"],
248 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 -0700249 srcs: [
250 ":target_fs_config_gen",
251 ":android_filesystem_config_header",
252 ],
253 out: ["group"],
254}
255
256prebuilt_etc {
257 name: "group_system_ext",
258 filename: "group",
259 system_ext_specific: true,
260 src: ":group_gen_system_ext",
Dan Willemsend32e6d12019-04-10 12:25:07 -0700261}