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 15LOCAL_PATH := $(call my-dir) 16 17# One can override the default android_filesystem_config.h file by using TARGET_FS_CONFIG_GEN. 18# Set TARGET_FS_CONFIG_GEN to contain a list of intermediate format files 19# for generating the android_filesystem_config.h file. 20# 21# More information can be found in the README 22 23ifneq ($(wildcard $(TARGET_DEVICE_DIR)/android_filesystem_config.h),) 24$(error Using $(TARGET_DEVICE_DIR)/android_filesystem_config.h is deprecated, please use TARGET_FS_CONFIG_GEN instead) 25endif 26 27android_filesystem_config := system/core/libcutils/include/private/android_filesystem_config.h 28capability_header := bionic/libc/kernel/uapi/linux/capability.h 29 30# List of supported vendor, oem, odm, vendor_dlkm, odm_dlkm, and system_dlkm Partitions 31fs_config_generate_extra_partition_list := $(strip \ 32 $(if $(BOARD_USES_VENDORIMAGE)$(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE),vendor) \ 33 $(if $(BOARD_USES_OEMIMAGE)$(BOARD_OEMIMAGE_FILE_SYSTEM_TYPE),oem) \ 34 $(if $(BOARD_USES_ODMIMAGE)$(BOARD_ODMIMAGE_FILE_SYSTEM_TYPE),odm) \ 35 $(if $(BOARD_USES_VENDOR_DLKMIMAGE)$(BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE),vendor_dlkm) \ 36 $(if $(BOARD_USES_ODM_DLKMIMAGE)$(BOARD_ODM_DLKMIMAGE_FILE_SYSTEM_TYPE),odm_dlkm) \ 37 $(if $(BOARD_USES_SYSTEM_DLKMIMAGE)$(BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE),system_dlkm) \ 38) 39 40################################## 41# Generate the <p>/etc/fs_config_dirs binary files for each partition. 42# Add fs_config_dirs to PRODUCT_PACKAGES in the device make file to enable. 43include $(CLEAR_VARS) 44 45LOCAL_MODULE := fs_config_dirs 46LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 47LOCAL_LICENSE_CONDITIONS := notice 48LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE 49LOCAL_REQUIRED_MODULES := \ 50 fs_config_dirs_system \ 51 fs_config_dirs_system_ext \ 52 fs_config_dirs_product \ 53 fs_config_dirs_nonsystem 54include $(BUILD_PHONY_PACKAGE) 55 56################################## 57# Generate the <p>/etc/fs_config_files binary files for each partition. 58# Add fs_config_files to PRODUCT_PACKAGES in the device make file to enable. 59include $(CLEAR_VARS) 60 61LOCAL_MODULE := fs_config_files 62LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 63LOCAL_LICENSE_CONDITIONS := notice 64LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE 65LOCAL_REQUIRED_MODULES := \ 66 fs_config_files_system \ 67 fs_config_files_system_ext \ 68 fs_config_files_product \ 69 fs_config_files_nonsystem 70include $(BUILD_PHONY_PACKAGE) 71 72################################## 73# Generate the <p>/etc/fs_config_dirs binary files for all enabled partitions 74# excluding /system, /system_ext and /product. Add fs_config_dirs_nonsystem to 75# PRODUCT_PACKAGES in the device make file to enable. 76include $(CLEAR_VARS) 77 78LOCAL_MODULE := fs_config_dirs_nonsystem 79LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 80LOCAL_LICENSE_CONDITIONS := notice 81LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE 82LOCAL_REQUIRED_MODULES := $(foreach t,$(fs_config_generate_extra_partition_list),fs_config_dirs_$(t)) 83include $(BUILD_PHONY_PACKAGE) 84 85################################## 86# Generate the <p>/etc/fs_config_files binary files for all enabled partitions 87# excluding /system, /system_ext and /product. Add fs_config_files_nonsystem to 88# PRODUCT_PACKAGES in the device make file to enable. 89include $(CLEAR_VARS) 90 91LOCAL_MODULE := fs_config_files_nonsystem 92LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 93LOCAL_LICENSE_CONDITIONS := notice 94LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE 95LOCAL_REQUIRED_MODULES := $(foreach t,$(fs_config_generate_extra_partition_list),fs_config_files_$(t)) 96include $(BUILD_PHONY_PACKAGE) 97 98ifneq ($(filter oem,$(fs_config_generate_extra_partition_list)),) 99################################## 100# Generate the oem/etc/fs_config_dirs binary file for the target 101# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES 102# in the device make file to enable 103include $(CLEAR_VARS) 104 105LOCAL_MODULE := fs_config_dirs_oem 106LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 107LOCAL_LICENSE_CONDITIONS := notice 108LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE 109LOCAL_MODULE_CLASS := ETC 110LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs 111LOCAL_MODULE_PATH := $(TARGET_OUT_OEM)/etc 112include $(BUILD_SYSTEM)/base_rules.mk 113$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config) 114$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header) 115$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN) 116$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header) 117 @mkdir -p $(dir $@) 118 $< fsconfig \ 119 --aid-header $(PRIVATE_ANDROID_FS_HDR) \ 120 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \ 121 --partition oem \ 122 --dirs \ 123 --out_file $@ \ 124 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null) 125 126################################## 127# Generate the oem/etc/fs_config_files binary file for the target 128# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES 129# in the device make file to enable 130include $(CLEAR_VARS) 131 132LOCAL_MODULE := fs_config_files_oem 133LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 134LOCAL_LICENSE_CONDITIONS := notice 135LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE 136LOCAL_MODULE_CLASS := ETC 137LOCAL_INSTALLED_MODULE_STEM := fs_config_files 138LOCAL_MODULE_PATH := $(TARGET_OUT_OEM)/etc 139include $(BUILD_SYSTEM)/base_rules.mk 140$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config) 141$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header) 142$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN) 143$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header) 144 @mkdir -p $(dir $@) 145 $< fsconfig \ 146 --aid-header $(PRIVATE_ANDROID_FS_HDR) \ 147 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \ 148 --partition oem \ 149 --files \ 150 --out_file $@ \ 151 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null) 152 153endif 154 155ifneq ($(filter vendor_dlkm,$(fs_config_generate_extra_partition_list)),) 156################################## 157# Generate the vendor_dlkm/etc/fs_config_dirs binary file for the target 158# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES in 159# the device make file to enable 160include $(CLEAR_VARS) 161 162LOCAL_MODULE := fs_config_dirs_vendor_dlkm 163LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 164LOCAL_LICENSE_CONDITIONS := notice 165LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE 166LOCAL_MODULE_CLASS := ETC 167LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs 168LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_DLKM)/etc 169include $(BUILD_SYSTEM)/base_rules.mk 170$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config) 171$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header) 172$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN) 173$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header) 174 @mkdir -p $(dir $@) 175 $< fsconfig \ 176 --aid-header $(PRIVATE_ANDROID_FS_HDR) \ 177 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \ 178 --partition vendor_dlkm \ 179 --dirs \ 180 --out_file $@ \ 181 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null) 182 183################################## 184# Generate the vendor_dlkm/etc/fs_config_files binary file for the target 185# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES in 186# the device make file to enable 187include $(CLEAR_VARS) 188 189LOCAL_MODULE := fs_config_files_vendor_dlkm 190LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 191LOCAL_LICENSE_CONDITIONS := notice 192LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE 193LOCAL_MODULE_CLASS := ETC 194LOCAL_INSTALLED_MODULE_STEM := fs_config_files 195LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_DLKM)/etc 196include $(BUILD_SYSTEM)/base_rules.mk 197$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config) 198$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header) 199$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN) 200$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header) 201 @mkdir -p $(dir $@) 202 $< fsconfig \ 203 --aid-header $(PRIVATE_ANDROID_FS_HDR) \ 204 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \ 205 --partition vendor_dlkm \ 206 --files \ 207 --out_file $@ \ 208 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null) 209 210endif 211 212ifneq ($(filter odm_dlkm,$(fs_config_generate_extra_partition_list)),) 213################################## 214# Generate the odm_dlkm/etc/fs_config_dirs binary file for the target 215# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES 216# in the device make file to enable 217include $(CLEAR_VARS) 218 219LOCAL_MODULE := fs_config_dirs_odm_dlkm 220LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 221LOCAL_LICENSE_CONDITIONS := notice 222LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE 223LOCAL_MODULE_CLASS := ETC 224LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs 225LOCAL_MODULE_PATH := $(TARGET_OUT_ODM_DLKM)/etc 226include $(BUILD_SYSTEM)/base_rules.mk 227$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config) 228$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header) 229$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN) 230$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header) 231 @mkdir -p $(dir $@) 232 $< fsconfig \ 233 --aid-header $(PRIVATE_ANDROID_FS_HDR) \ 234 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \ 235 --partition odm_dlkm \ 236 --dirs \ 237 --out_file $@ \ 238 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null) 239 240################################## 241# Generate the odm_dlkm/etc/fs_config_files binary file for the target 242# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES 243# in the device make file to enable 244include $(CLEAR_VARS) 245 246LOCAL_MODULE := fs_config_files_odm_dlkm 247LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 248LOCAL_LICENSE_CONDITIONS := notice 249LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE 250LOCAL_MODULE_CLASS := ETC 251LOCAL_INSTALLED_MODULE_STEM := fs_config_files 252LOCAL_MODULE_PATH := $(TARGET_OUT_ODM_DLKM)/etc 253include $(BUILD_SYSTEM)/base_rules.mk 254$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config) 255$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header) 256$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN) 257$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header) 258 @mkdir -p $(dir $@) 259 $< fsconfig \ 260 --aid-header $(PRIVATE_ANDROID_FS_HDR) \ 261 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \ 262 --partition odm_dlkm \ 263 --files \ 264 --out_file $@ \ 265 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null) 266 267endif 268 269ifneq ($(filter system_dlkm,$(fs_config_generate_extra_partition_list)),) 270################################## 271# Generate the system_dlkm/etc/fs_config_dirs binary file for the target 272# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES 273# in the device make file to enable 274include $(CLEAR_VARS) 275 276LOCAL_MODULE := fs_config_dirs_system_dlkm 277LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 278LOCAL_LICENSE_CONDITIONS := notice 279LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE 280LOCAL_MODULE_CLASS := ETC 281LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs 282LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_DLKM)/etc 283include $(BUILD_SYSTEM)/base_rules.mk 284$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config) 285$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header) 286$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN) 287$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header) 288 @mkdir -p $(dir $@) 289 $< fsconfig \ 290 --aid-header $(PRIVATE_ANDROID_FS_HDR) \ 291 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \ 292 --partition system_dlkm \ 293 --dirs \ 294 --out_file $@ \ 295 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null) 296 297################################## 298# Generate the system_dlkm/etc/fs_config_files binary file for the target 299# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES 300# in the device make file to enable 301include $(CLEAR_VARS) 302 303LOCAL_MODULE := fs_config_files_system_dlkm 304LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 305LOCAL_LICENSE_CONDITIONS := notice 306LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE 307LOCAL_MODULE_CLASS := ETC 308LOCAL_INSTALLED_MODULE_STEM := fs_config_files 309LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_DLKM)/etc 310include $(BUILD_SYSTEM)/base_rules.mk 311$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config) 312$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header) 313$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN) 314$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header) 315 @mkdir -p $(dir $@) 316 $< fsconfig \ 317 --aid-header $(PRIVATE_ANDROID_FS_HDR) \ 318 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \ 319 --partition system_dlkm \ 320 --files \ 321 --out_file $@ \ 322 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null) 323 324endif 325 326android_filesystem_config := 327capability_header := 328fs_config_generate_extra_partition_list := 329