// Copyright (C) 2008 The Android Open Source Project // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package { // See: http://go/android-license-faq default_applicable_licenses: ["Android-Apache-2.0"], } bootstrap_go_package { name: "soong-fs_config", pkgPath: "android/soong/fs_config", deps: [ "soong-android", "soong-genrule", ], srcs: [ "fs_config.go", ], pluginFor: ["soong_build"], } cc_binary_host { name: "fs_config", srcs: ["fs_config.c"], shared_libs: [ "libcutils", "libselinux", ], cflags: ["-Werror"], } python_binary_host { name: "fs_config_generator", srcs: ["fs_config_generator.py"], } python_test_host { name: "test_fs_config_generator", main: "test_fs_config_generator.py", srcs: [ "test_fs_config_generator.py", "fs_config_generator.py", ], } target_fs_config_gen_filegroup { name: "target_fs_config_gen", } genrule { name: "oemaids_header_gen", tools: ["fs_config_generator"], cmd: "$(location fs_config_generator) oemaid --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", srcs: [ ":target_fs_config_gen", ":android_filesystem_config_header", ], out: ["generated_oem_aid.h"], } cc_library_headers { name: "oemaids_headers", vendor_available: true, generated_headers: ["oemaids_header_gen"], export_generated_headers: ["oemaids_header_gen"], } // Generate the */etc/passwd text files for the target // These files may be empty if no AIDs are defined in // TARGET_FS_CONFIG_GEN files. genrule { name: "passwd_gen_system", tools: ["fs_config_generator"], cmd: "$(location fs_config_generator) passwd --partition=system --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", srcs: [ ":target_fs_config_gen", ":android_filesystem_config_header", ], out: ["passwd"], } prebuilt_etc { name: "passwd_system", filename: "passwd", src: ":passwd_gen_system", } genrule { name: "passwd_gen_vendor", tools: ["fs_config_generator"], cmd: "$(location fs_config_generator) passwd --partition=vendor --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", srcs: [ ":target_fs_config_gen", ":android_filesystem_config_header", ], out: ["passwd"], } prebuilt_etc { name: "passwd_vendor", filename: "passwd", vendor: true, src: ":passwd_gen_vendor", } genrule { name: "passwd_gen_odm", tools: ["fs_config_generator"], cmd: "$(location fs_config_generator) passwd --partition=odm --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", srcs: [ ":target_fs_config_gen", ":android_filesystem_config_header", ], out: ["passwd"], } prebuilt_etc { name: "passwd_odm", filename: "passwd", device_specific: true, src: ":passwd_gen_odm", } genrule { name: "passwd_gen_product", tools: ["fs_config_generator"], cmd: "$(location fs_config_generator) passwd --partition=product --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", srcs: [ ":target_fs_config_gen", ":android_filesystem_config_header", ], out: ["passwd"], } prebuilt_etc { name: "passwd_product", filename: "passwd", product_specific: true, src: ":passwd_gen_product", } genrule { name: "passwd_gen_system_ext", tools: ["fs_config_generator"], cmd: "$(location fs_config_generator) passwd --partition=system_ext --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", srcs: [ ":target_fs_config_gen", ":android_filesystem_config_header", ], out: ["passwd"], } prebuilt_etc { name: "passwd_system_ext", filename: "passwd", system_ext_specific: true, src: ":passwd_gen_system_ext", } // Generate the */etc/group text files for the target // These files may be empty if no AIDs are defined in // TARGET_FS_CONFIG_GEN files. genrule { name: "group_gen_system", tools: ["fs_config_generator"], cmd: "$(location fs_config_generator) group --partition=system --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", srcs: [ ":target_fs_config_gen", ":android_filesystem_config_header", ], out: ["group"], } prebuilt_etc { name: "group_system", filename: "group", src: ":group_gen_system", } genrule { name: "group_gen_vendor", tools: ["fs_config_generator"], cmd: "$(location fs_config_generator) group --partition=vendor --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", srcs: [ ":target_fs_config_gen", ":android_filesystem_config_header", ], out: ["group"], } prebuilt_etc { name: "group_vendor", filename: "group", vendor: true, src: ":group_gen_vendor", } genrule { name: "group_gen_odm", tools: ["fs_config_generator"], cmd: "$(location fs_config_generator) group --partition=odm --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", srcs: [ ":target_fs_config_gen", ":android_filesystem_config_header", ], out: ["group"], } prebuilt_etc { name: "group_odm", filename: "group", device_specific: true, src: ":group_gen_odm", } genrule { name: "group_gen_product", tools: ["fs_config_generator"], cmd: "$(location fs_config_generator) group --partition=product --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", srcs: [ ":target_fs_config_gen", ":android_filesystem_config_header", ], out: ["group"], } prebuilt_etc { name: "group_product", filename: "group", product_specific: true, src: ":group_gen_product", } genrule { name: "group_gen_system_ext", tools: ["fs_config_generator"], cmd: "$(location fs_config_generator) group --partition=system_ext --aid-header=$(location :android_filesystem_config_header) $(locations :target_fs_config_gen) >$(out)", srcs: [ ":target_fs_config_gen", ":android_filesystem_config_header", ], out: ["group"], } prebuilt_etc { name: "group_system_ext", filename: "group", system_ext_specific: true, src: ":group_gen_system_ext", }