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 43target_fs_config_gen_filegroup { 44 name: "target_fs_config_gen", 45} 46 47genrule { 48 name: "oemaids_header_gen", 49 tool_files: ["fs_config_generator.py"], 50 cmd: "$(location fs_config_generator.py) oemaid --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", 51 srcs: [ 52 ":target_fs_config_gen", 53 ":android_filesystem_config_header", 54 ], 55 out: ["generated_oem_aid.h"], 56} 57 58cc_library_headers { 59 name: "oemaids_headers", 60 vendor_available: true, 61 generated_headers: ["oemaids_header_gen"], 62 export_generated_headers: ["oemaids_header_gen"], 63} 64 65// Generate the */etc/passwd text files for the target 66// These files may be empty if no AIDs are defined in 67// TARGET_FS_CONFIG_GEN files. 68genrule { 69 name: "passwd_gen_system", 70 tool_files: ["fs_config_generator.py"], 71 cmd: "$(location fs_config_generator.py) passwd --partition=system --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", 72 srcs: [ 73 ":target_fs_config_gen", 74 ":android_filesystem_config_header", 75 ], 76 out: ["passwd"], 77} 78 79prebuilt_etc { 80 name: "passwd_system", 81 filename: "passwd", 82 src: ":passwd_gen_system", 83} 84 85genrule { 86 name: "passwd_gen_vendor", 87 tool_files: ["fs_config_generator.py"], 88 cmd: "$(location fs_config_generator.py) passwd --partition=vendor --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", 89 srcs: [ 90 ":target_fs_config_gen", 91 ":android_filesystem_config_header", 92 ], 93 out: ["passwd"], 94} 95 96prebuilt_etc { 97 name: "passwd_vendor", 98 filename: "passwd", 99 vendor: true, 100 src: ":passwd_gen_vendor", 101} 102 103genrule { 104 name: "passwd_gen_odm", 105 tool_files: ["fs_config_generator.py"], 106 cmd: "$(location fs_config_generator.py) passwd --partition=odm --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", 107 srcs: [ 108 ":target_fs_config_gen", 109 ":android_filesystem_config_header", 110 ], 111 out: ["passwd"], 112} 113 114prebuilt_etc { 115 name: "passwd_odm", 116 filename: "passwd", 117 device_specific: true, 118 src: ":passwd_gen_odm", 119} 120 121genrule { 122 name: "passwd_gen_product", 123 tool_files: ["fs_config_generator.py"], 124 cmd: "$(location fs_config_generator.py) passwd --partition=product --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", 125 srcs: [ 126 ":target_fs_config_gen", 127 ":android_filesystem_config_header", 128 ], 129 out: ["passwd"], 130} 131 132prebuilt_etc { 133 name: "passwd_product", 134 filename: "passwd", 135 product_specific: true, 136 src: ":passwd_gen_product", 137} 138 139genrule { 140 name: "passwd_gen_system_ext", 141 tool_files: ["fs_config_generator.py"], 142 cmd: "$(location fs_config_generator.py) passwd --partition=system_ext --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", 143 srcs: [ 144 ":target_fs_config_gen", 145 ":android_filesystem_config_header", 146 ], 147 out: ["passwd"], 148} 149 150prebuilt_etc { 151 name: "passwd_system_ext", 152 filename: "passwd", 153 system_ext_specific: true, 154 src: ":passwd_gen_system_ext", 155} 156 157// Generate the */etc/group text files for the target 158// These files may be empty if no AIDs are defined in 159// TARGET_FS_CONFIG_GEN files. 160genrule { 161 name: "group_gen_system", 162 tool_files: ["fs_config_generator.py"], 163 cmd: "$(location fs_config_generator.py) group --partition=system --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", 164 srcs: [ 165 ":target_fs_config_gen", 166 ":android_filesystem_config_header", 167 ], 168 out: ["group"], 169} 170 171prebuilt_etc { 172 name: "group_system", 173 filename: "group", 174 src: ":group_gen_system", 175} 176 177genrule { 178 name: "group_gen_vendor", 179 tool_files: ["fs_config_generator.py"], 180 cmd: "$(location fs_config_generator.py) group --partition=vendor --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", 181 srcs: [ 182 ":target_fs_config_gen", 183 ":android_filesystem_config_header", 184 ], 185 out: ["group"], 186} 187 188prebuilt_etc { 189 name: "group_vendor", 190 filename: "group", 191 vendor: true, 192 src: ":group_gen_vendor", 193} 194 195genrule { 196 name: "group_gen_odm", 197 tool_files: ["fs_config_generator.py"], 198 cmd: "$(location fs_config_generator.py) group --partition=odm --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", 199 srcs: [ 200 ":target_fs_config_gen", 201 ":android_filesystem_config_header", 202 ], 203 out: ["group"], 204} 205 206prebuilt_etc { 207 name: "group_odm", 208 filename: "group", 209 device_specific: true, 210 src: ":group_gen_odm", 211} 212 213genrule { 214 name: "group_gen_product", 215 tool_files: ["fs_config_generator.py"], 216 cmd: "$(location fs_config_generator.py) group --partition=product --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", 217 srcs: [ 218 ":target_fs_config_gen", 219 ":android_filesystem_config_header", 220 ], 221 out: ["group"], 222} 223 224prebuilt_etc { 225 name: "group_product", 226 filename: "group", 227 product_specific: true, 228 src: ":group_gen_product", 229} 230 231genrule { 232 name: "group_gen_system_ext", 233 tool_files: ["fs_config_generator.py"], 234 cmd: "$(location fs_config_generator.py) group --partition=system_ext --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", 235 srcs: [ 236 ":target_fs_config_gen", 237 ":android_filesystem_config_header", 238 ], 239 out: ["group"], 240} 241 242prebuilt_etc { 243 name: "group_system_ext", 244 filename: "group", 245 system_ext_specific: true, 246 src: ":group_gen_system_ext", 247} 248