• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1// 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
15package {
16    // See: http://go/android-license-faq
17    default_applicable_licenses: ["Android-Apache-2.0"],
18}
19
20bootstrap_go_package {
21    name: "soong-fs_config",
22    pkgPath: "android/soong/fs_config",
23    deps: [
24        "soong-android",
25        "soong-genrule",
26    ],
27    srcs: [
28        "fs_config.go",
29    ],
30    pluginFor: ["soong_build"],
31}
32
33cc_binary_host {
34    name: "fs_config",
35    srcs: ["fs_config.c"],
36    shared_libs: [
37        "libcutils",
38        "libselinux",
39    ],
40    cflags: ["-Werror"],
41}
42
43python_binary_host {
44    name: "fs_config_generator",
45    srcs: ["fs_config_generator.py"],
46}
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    ],
55}
56
57target_fs_config_gen_filegroup {
58    name: "target_fs_config_gen",
59}
60
61genrule {
62    name: "oemaids_header_gen",
63    tools: ["fs_config_generator"],
64    cmd: "$(location fs_config_generator) oemaid --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)",
65    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",
74    vendor_available: true,
75    generated_headers: ["oemaids_header_gen"],
76    export_generated_headers: ["oemaids_header_gen"],
77}
78
79// Generate the */etc/passwd text files for the target
80// These files may be empty if no AIDs are defined in
81// TARGET_FS_CONFIG_GEN files.
82genrule {
83    name: "passwd_gen_system",
84    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)",
86    srcs: [
87        ":target_fs_config_gen",
88        ":android_filesystem_config_header",
89    ],
90    out: ["passwd"],
91}
92
93prebuilt_etc {
94    name: "passwd_system",
95    filename: "passwd",
96    src: ":passwd_gen_system",
97}
98
99genrule {
100    name: "passwd_gen_vendor",
101    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)",
103    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",
119    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)",
121    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",
137    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)",
139    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",
155    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)",
157    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
173// TARGET_FS_CONFIG_GEN files.
174genrule {
175    name: "group_gen_system",
176    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)",
178    srcs: [
179        ":target_fs_config_gen",
180        ":android_filesystem_config_header",
181    ],
182    out: ["group"],
183}
184
185prebuilt_etc {
186    name: "group_system",
187    filename: "group",
188    src: ":group_gen_system",
189}
190
191genrule {
192    name: "group_gen_vendor",
193    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)",
195    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",
205    vendor: true,
206    src: ":group_gen_vendor",
207}
208
209genrule {
210    name: "group_gen_odm",
211    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)",
213    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",
229    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)",
231    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",
247    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)",
249    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",
261}
262