blob: c338462da37fa33c82448fad0ce4de8c03f08efa [file] [log] [blame]
The Android Open Source Project88b60792009-03-03 19:28:42 -08001# 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)
Mark Salyzyn073a9eb2015-04-15 12:53:39 -070016
Tom Cherrye0f3ed52019-02-11 13:09:59 -080017# 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
William Robertsc950a352016-03-04 18:12:29 -080019# for generating the android_filesystem_config.h file.
20#
21# More information can be found in the README
Mark Salyzyn06b91b92015-04-01 14:41:29 -070022
Tom Cherry9d924f62019-02-13 14:02:30 -080023ifneq ($(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)
Tom Cherry1a9f8352019-02-13 16:17:39 -080025endif
26
Tom Cherry54752bf2020-09-17 09:42:55 -070027system_android_filesystem_config := system/core/libcutils/include/private/android_filesystem_config.h
Tom Cherry9d924f62019-02-13 14:02:30 -080028system_capability_header := bionic/libc/kernel/uapi/linux/capability.h
Tom Cherry53940fd2018-06-14 12:19:19 -070029
Yifan Hongf496f1b2020-07-15 16:52:59 -070030# List of supported vendor, oem, odm, vendor_dlkm, odm_dlkm, product and system_ext Partitions
Mark Salyzyn1fd588c2017-03-22 15:53:12 -070031fs_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) \
Mark Salyzyncf343a62018-11-16 09:44:07 -080034 $(if $(BOARD_USES_ODMIMAGE)$(BOARD_ODMIMAGE_FILE_SYSTEM_TYPE),odm) \
Yifan Hongcfb917a2020-05-07 14:58:20 -070035 $(if $(BOARD_USES_VENDOR_DLKMIMAGE)$(BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE),vendor_dlkm) \
Yifan Hongf496f1b2020-07-15 16:52:59 -070036 $(if $(BOARD_USES_ODM_DLKMIMAGE)$(BOARD_ODM_DLKMIMAGE_FILE_SYSTEM_TYPE),odm_dlkm) \
Mark Salyzyncf343a62018-11-16 09:44:07 -080037)
Mark Salyzyn06b91b92015-04-01 14:41:29 -070038
William Robertsc950a352016-03-04 18:12:29 -080039##################################
Anton Hanssone85ec842018-06-26 14:03:38 +010040# Generate the <p>/etc/fs_config_dirs binary files for each partition.
41# Add fs_config_dirs to PRODUCT_PACKAGES in the device make file to enable.
Mark Salyzyn06b91b92015-04-01 14:41:29 -070042include $(CLEAR_VARS)
43
44LOCAL_MODULE := fs_config_dirs
Anton Hanssone85ec842018-06-26 14:03:38 +010045LOCAL_REQUIRED_MODULES := \
Justin Yun75f7cf92020-10-19 16:58:06 +090046 fs_config_dirs_system \
47 fs_config_dirs_system_ext \
48 fs_config_dirs_product \
49 fs_config_dirs_nonsystem
Anton Hanssone85ec842018-06-26 14:03:38 +010050include $(BUILD_PHONY_PACKAGE)
51
Anton Hanssone85ec842018-06-26 14:03:38 +010052##################################
53# Generate the <p>/etc/fs_config_files binary files for each partition.
54# Add fs_config_files to PRODUCT_PACKAGES in the device make file to enable.
55include $(CLEAR_VARS)
56
57LOCAL_MODULE := fs_config_files
58LOCAL_REQUIRED_MODULES := \
59 fs_config_files_system \
Justin Yun75f7cf92020-10-19 16:58:06 +090060 fs_config_files_system_ext \
61 fs_config_files_product \
62 fs_config_files_nonsystem
63include $(BUILD_PHONY_PACKAGE)
64
65##################################
66# Generate the system_ext/etc/fs_config_dirs binary file for the target if the
67# system_ext partition is generated. Add fs_config_dirs or fs_config_dirs_system_ext
68# to PRODUCT_PACKAGES in the device make file to enable.
69include $(CLEAR_VARS)
70
71LOCAL_MODULE := fs_config_dirs_system_ext
72LOCAL_REQUIRED_MODULES := $(if $(BOARD_USES_SYSTEM_EXTIMAGE)$(BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE),_fs_config_dirs_system_ext)
73include $(BUILD_PHONY_PACKAGE)
74
75##################################
76# Generate the system_ext/etc/fs_config_files binary file for the target if the
77# system_ext partition is generated. Add fs_config_files or fs_config_files_system_ext
78# to PRODUCT_PACKAGES in the device make file to enable.
79include $(CLEAR_VARS)
80
81LOCAL_MODULE := fs_config_files_system_ext
82LOCAL_REQUIRED_MODULES := $(if $(BOARD_USES_SYSTEM_EXTIMAGE)$(BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE),_fs_config_files_system_ext)
83include $(BUILD_PHONY_PACKAGE)
84
85##################################
86# Generate the product/etc/fs_config_dirs binary file for the target if the
87# product partition is generated. Add fs_config_dirs or fs_config_dirs_product
88# to PRODUCT_PACKAGES in the device make file to enable.
89include $(CLEAR_VARS)
90
91LOCAL_MODULE := fs_config_dirs_product
92LOCAL_REQUIRED_MODULES := $(if $(BOARD_USES_PRODUCTIMAGE)$(BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE),_fs_config_dirs_product)
93include $(BUILD_PHONY_PACKAGE)
94
95##################################
96# Generate the product/etc/fs_config_files binary file for the target if the
97# product partition is generated. Add fs_config_files or fs_config_files_product
98# to PRODUCT_PACKAGES in the device make file to enable.
99include $(CLEAR_VARS)
100
101LOCAL_MODULE := fs_config_files_product
102LOCAL_REQUIRED_MODULES := $(if $(BOARD_USES_PRODUCTIMAGE)$(BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE),_fs_config_files_product)
Anton Hanssone85ec842018-06-26 14:03:38 +0100103include $(BUILD_PHONY_PACKAGE)
104
105##################################
106# Generate the <p>/etc/fs_config_dirs binary files for all enabled partitions
Justin Yun75f7cf92020-10-19 16:58:06 +0900107# excluding /system, /system_ext and /product. Add fs_config_dirs_nonsystem to
108# PRODUCT_PACKAGES in the device make file to enable.
Anton Hanssone85ec842018-06-26 14:03:38 +0100109include $(CLEAR_VARS)
110
111LOCAL_MODULE := fs_config_dirs_nonsystem
Justin Yun75f7cf92020-10-19 16:58:06 +0900112LOCAL_REQUIRED_MODULES := $(foreach t,$(fs_config_generate_extra_partition_list),_fs_config_dirs_$(t))
Anton Hanssone85ec842018-06-26 14:03:38 +0100113include $(BUILD_PHONY_PACKAGE)
114
115##################################
116# Generate the <p>/etc/fs_config_files binary files for all enabled partitions
Justin Yun75f7cf92020-10-19 16:58:06 +0900117# excluding /system, /system_ext and /product. Add fs_config_files_nonsystem to
118# PRODUCT_PACKAGES in the device make file to enable.
Anton Hanssone85ec842018-06-26 14:03:38 +0100119include $(CLEAR_VARS)
120
121LOCAL_MODULE := fs_config_files_nonsystem
Justin Yun75f7cf92020-10-19 16:58:06 +0900122LOCAL_REQUIRED_MODULES := $(foreach t,$(fs_config_generate_extra_partition_list),_fs_config_files_$(t))
Anton Hanssone85ec842018-06-26 14:03:38 +0100123include $(BUILD_PHONY_PACKAGE)
124
125##################################
126# Generate the system/etc/fs_config_dirs binary file for the target
127# Add fs_config_dirs or fs_config_dirs_system to PRODUCT_PACKAGES in
128# the device make file to enable
129include $(CLEAR_VARS)
130
131LOCAL_MODULE := fs_config_dirs_system
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700132LOCAL_MODULE_CLASS := ETC
Anton Hanssone85ec842018-06-26 14:03:38 +0100133LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700134include $(BUILD_SYSTEM)/base_rules.mk
Tom Cherry9d924f62019-02-13 14:02:30 -0800135$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
136$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
Mark Salyzyn705b59e2018-11-16 13:30:37 -0800137$(LOCAL_BUILT_MODULE): PRIVATE_PARTITION_LIST := $(fs_config_generate_extra_partition_list)
Tom Cherry9d924f62019-02-13 14:02:30 -0800138$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
139$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700140 @mkdir -p $(dir $@)
Tom Cherry9d924f62019-02-13 14:02:30 -0800141 $< fsconfig \
142 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
143 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
144 --partition system \
Felix8453f022019-05-26 12:09:50 +0200145 --all-partitions "$(subst $(space),$(comma),$(PRIVATE_PARTITION_LIST))" \
Tom Cherry9d924f62019-02-13 14:02:30 -0800146 --dirs \
147 --out_file $@ \
148 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700149
William Robertsc950a352016-03-04 18:12:29 -0800150##################################
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700151# Generate the system/etc/fs_config_files binary file for the target
Anton Hanssone85ec842018-06-26 14:03:38 +0100152# Add fs_config_files or fs_config_files_system to PRODUCT_PACKAGES in
153# the device make file to enable
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700154include $(CLEAR_VARS)
155
Anton Hanssone85ec842018-06-26 14:03:38 +0100156LOCAL_MODULE := fs_config_files_system
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700157LOCAL_MODULE_CLASS := ETC
Anton Hanssone85ec842018-06-26 14:03:38 +0100158LOCAL_INSTALLED_MODULE_STEM := fs_config_files
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700159include $(BUILD_SYSTEM)/base_rules.mk
Tom Cherry9d924f62019-02-13 14:02:30 -0800160$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
161$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
Mark Salyzyn705b59e2018-11-16 13:30:37 -0800162$(LOCAL_BUILT_MODULE): PRIVATE_PARTITION_LIST := $(fs_config_generate_extra_partition_list)
Tom Cherry9d924f62019-02-13 14:02:30 -0800163$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
164$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700165 @mkdir -p $(dir $@)
Tom Cherry9d924f62019-02-13 14:02:30 -0800166 $< fsconfig \
167 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
168 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
169 --partition system \
Felix8453f022019-05-26 12:09:50 +0200170 --all-partitions "$(subst $(space),$(comma),$(PRIVATE_PARTITION_LIST))" \
Tom Cherry9d924f62019-02-13 14:02:30 -0800171 --files \
172 --out_file $@ \
173 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700174
175ifneq ($(filter vendor,$(fs_config_generate_extra_partition_list)),)
176##################################
177# Generate the vendor/etc/fs_config_dirs binary file for the target
Justin Yun75f7cf92020-10-19 16:58:06 +0900178# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES
179# in the device make file to enable
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700180include $(CLEAR_VARS)
181
Justin Yun75f7cf92020-10-19 16:58:06 +0900182LOCAL_MODULE := _fs_config_dirs_vendor
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700183LOCAL_MODULE_CLASS := ETC
184LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
185LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc
186include $(BUILD_SYSTEM)/base_rules.mk
Tom Cherry9d924f62019-02-13 14:02:30 -0800187$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
188$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
189$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
190$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700191 @mkdir -p $(dir $@)
Tom Cherry9d924f62019-02-13 14:02:30 -0800192 $< fsconfig \
193 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
194 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
195 --partition vendor \
196 --dirs \
197 --out_file $@ \
198 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700199
200##################################
201# Generate the vendor/etc/fs_config_files binary file for the target
Justin Yun75f7cf92020-10-19 16:58:06 +0900202# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES
203# in the device make file to enable
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700204include $(CLEAR_VARS)
205
Justin Yun75f7cf92020-10-19 16:58:06 +0900206LOCAL_MODULE := _fs_config_files_vendor
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700207LOCAL_MODULE_CLASS := ETC
208LOCAL_INSTALLED_MODULE_STEM := fs_config_files
209LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc
210include $(BUILD_SYSTEM)/base_rules.mk
Tom Cherry9d924f62019-02-13 14:02:30 -0800211$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
212$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
213$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
214$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700215 @mkdir -p $(dir $@)
Tom Cherry9d924f62019-02-13 14:02:30 -0800216 $< fsconfig \
217 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
218 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
219 --partition vendor \
220 --files \
221 --out_file $@ \
222 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700223
224endif
225
226ifneq ($(filter oem,$(fs_config_generate_extra_partition_list)),)
227##################################
228# Generate the oem/etc/fs_config_dirs binary file for the target
Justin Yun75f7cf92020-10-19 16:58:06 +0900229# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES
230# in the device make file to enable
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700231include $(CLEAR_VARS)
232
Justin Yun75f7cf92020-10-19 16:58:06 +0900233LOCAL_MODULE := _fs_config_dirs_oem
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700234LOCAL_MODULE_CLASS := ETC
235LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
236LOCAL_MODULE_PATH := $(TARGET_OUT_OEM)/etc
237include $(BUILD_SYSTEM)/base_rules.mk
Tom Cherry9d924f62019-02-13 14:02:30 -0800238$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
239$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
240$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
241$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700242 @mkdir -p $(dir $@)
Tom Cherry9d924f62019-02-13 14:02:30 -0800243 $< fsconfig \
244 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
245 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
246 --partition oem \
247 --dirs \
248 --out_file $@ \
249 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700250
251##################################
252# Generate the oem/etc/fs_config_files binary file for the target
Justin Yun75f7cf92020-10-19 16:58:06 +0900253# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES
254# in the device make file to enable
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700255include $(CLEAR_VARS)
256
Justin Yun75f7cf92020-10-19 16:58:06 +0900257LOCAL_MODULE := _fs_config_files_oem
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700258LOCAL_MODULE_CLASS := ETC
259LOCAL_INSTALLED_MODULE_STEM := fs_config_files
260LOCAL_MODULE_PATH := $(TARGET_OUT_OEM)/etc
261include $(BUILD_SYSTEM)/base_rules.mk
Tom Cherry9d924f62019-02-13 14:02:30 -0800262$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
263$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
264$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
265$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700266 @mkdir -p $(dir $@)
Tom Cherry9d924f62019-02-13 14:02:30 -0800267 $< fsconfig \
268 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
269 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
270 --partition oem \
271 --files \
272 --out_file $@ \
273 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700274
275endif
276
277ifneq ($(filter odm,$(fs_config_generate_extra_partition_list)),)
278##################################
279# Generate the odm/etc/fs_config_dirs binary file for the target
Justin Yun75f7cf92020-10-19 16:58:06 +0900280# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES
281# in the device make file to enable
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700282include $(CLEAR_VARS)
283
Justin Yun75f7cf92020-10-19 16:58:06 +0900284LOCAL_MODULE := _fs_config_dirs_odm
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700285LOCAL_MODULE_CLASS := ETC
286LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
287LOCAL_MODULE_PATH := $(TARGET_OUT_ODM)/etc
288include $(BUILD_SYSTEM)/base_rules.mk
Tom Cherry9d924f62019-02-13 14:02:30 -0800289$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
290$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
291$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
292$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700293 @mkdir -p $(dir $@)
Tom Cherry9d924f62019-02-13 14:02:30 -0800294 $< fsconfig \
295 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
296 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
297 --partition odm \
298 --dirs \
299 --out_file $@ \
300 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700301
302##################################
303# Generate the odm/etc/fs_config_files binary file for the target
Justin Yun75f7cf92020-10-19 16:58:06 +0900304# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES
305# in the device make file to enable
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700306include $(CLEAR_VARS)
307
Justin Yun75f7cf92020-10-19 16:58:06 +0900308LOCAL_MODULE := _fs_config_files_odm
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700309LOCAL_MODULE_CLASS := ETC
310LOCAL_INSTALLED_MODULE_STEM := fs_config_files
311LOCAL_MODULE_PATH := $(TARGET_OUT_ODM)/etc
312include $(BUILD_SYSTEM)/base_rules.mk
Tom Cherry9d924f62019-02-13 14:02:30 -0800313$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
314$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
315$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
316$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700317 @mkdir -p $(dir $@)
Tom Cherry9d924f62019-02-13 14:02:30 -0800318 $< fsconfig \
319 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
320 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
321 --partition odm \
322 --files \
323 --out_file $@ \
324 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700325
326endif
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700327
Yifan Hongcfb917a2020-05-07 14:58:20 -0700328ifneq ($(filter vendor_dlkm,$(fs_config_generate_extra_partition_list)),)
329##################################
330# Generate the vendor_dlkm/etc/fs_config_dirs binary file for the target
Justin Yun75f7cf92020-10-19 16:58:06 +0900331# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES in
Yifan Hongcfb917a2020-05-07 14:58:20 -0700332# the device make file to enable
333include $(CLEAR_VARS)
334
Justin Yun75f7cf92020-10-19 16:58:06 +0900335LOCAL_MODULE := _fs_config_dirs_vendor_dlkm
Yifan Hongcfb917a2020-05-07 14:58:20 -0700336LOCAL_MODULE_CLASS := ETC
337LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
338LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_DLKM)/etc
339include $(BUILD_SYSTEM)/base_rules.mk
340$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
341$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
342$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
343$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
344 @mkdir -p $(dir $@)
345 $< fsconfig \
346 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
347 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
348 --partition vendor_dlkm \
349 --dirs \
350 --out_file $@ \
351 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
352
353##################################
354# Generate the vendor_dlkm/etc/fs_config_files binary file for the target
Justin Yun75f7cf92020-10-19 16:58:06 +0900355# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES in
Yifan Hongcfb917a2020-05-07 14:58:20 -0700356# the device make file to enable
357include $(CLEAR_VARS)
358
Justin Yun75f7cf92020-10-19 16:58:06 +0900359LOCAL_MODULE := _fs_config_files_vendor_dlkm
Yifan Hongcfb917a2020-05-07 14:58:20 -0700360LOCAL_MODULE_CLASS := ETC
361LOCAL_INSTALLED_MODULE_STEM := fs_config_files
362LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_DLKM)/etc
363include $(BUILD_SYSTEM)/base_rules.mk
364$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
365$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
366$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
367$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
368 @mkdir -p $(dir $@)
369 $< fsconfig \
370 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
371 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
372 --partition vendor_dlkm \
373 --files \
374 --out_file $@ \
375 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
376
377endif
378
Yifan Hongf496f1b2020-07-15 16:52:59 -0700379ifneq ($(filter odm_dlkm,$(fs_config_generate_extra_partition_list)),)
380##################################
381# Generate the odm_dlkm/etc/fs_config_dirs binary file for the target
Justin Yun75f7cf92020-10-19 16:58:06 +0900382# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES
383# in the device make file to enable
Yifan Hongf496f1b2020-07-15 16:52:59 -0700384include $(CLEAR_VARS)
385
Justin Yun75f7cf92020-10-19 16:58:06 +0900386LOCAL_MODULE := _fs_config_dirs_odm_dlkm
Yifan Hongf496f1b2020-07-15 16:52:59 -0700387LOCAL_MODULE_CLASS := ETC
388LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
389LOCAL_MODULE_PATH := $(TARGET_OUT_ODM_DLKM)/etc
390include $(BUILD_SYSTEM)/base_rules.mk
391$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
392$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
393$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
394$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
395 @mkdir -p $(dir $@)
396 $< fsconfig \
397 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
398 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
399 --partition odm_dlkm \
400 --dirs \
401 --out_file $@ \
402 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
403
404##################################
405# Generate the odm_dlkm/etc/fs_config_files binary file for the target
Justin Yun75f7cf92020-10-19 16:58:06 +0900406# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES
407# in the device make file to enable
Yifan Hongf496f1b2020-07-15 16:52:59 -0700408include $(CLEAR_VARS)
409
Justin Yun75f7cf92020-10-19 16:58:06 +0900410LOCAL_MODULE := _fs_config_files_odm_dlkm
Yifan Hongf496f1b2020-07-15 16:52:59 -0700411LOCAL_MODULE_CLASS := ETC
412LOCAL_INSTALLED_MODULE_STEM := fs_config_files
413LOCAL_MODULE_PATH := $(TARGET_OUT_ODM_DLKM)/etc
414include $(BUILD_SYSTEM)/base_rules.mk
415$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
416$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
417$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
418$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
419 @mkdir -p $(dir $@)
420 $< fsconfig \
421 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
422 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
423 --partition odm_dlkm \
424 --files \
425 --out_file $@ \
426 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
427
428endif
429
Justin Yun75f7cf92020-10-19 16:58:06 +0900430ifneq ($(BOARD_USES_PRODUCTIMAGE)$(BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE),)
Mark Salyzyncf343a62018-11-16 09:44:07 -0800431##################################
432# Generate the product/etc/fs_config_dirs binary file for the target
433# Add fs_config_dirs or fs_config_dirs_product to PRODUCT_PACKAGES in
434# the device make file to enable
435include $(CLEAR_VARS)
436
Justin Yun75f7cf92020-10-19 16:58:06 +0900437LOCAL_MODULE := _fs_config_dirs_product
Mark Salyzyncf343a62018-11-16 09:44:07 -0800438LOCAL_MODULE_CLASS := ETC
439LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
440LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/etc
441include $(BUILD_SYSTEM)/base_rules.mk
Tom Cherry9d924f62019-02-13 14:02:30 -0800442$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
443$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
444$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
445$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
Mark Salyzyncf343a62018-11-16 09:44:07 -0800446 @mkdir -p $(dir $@)
Tom Cherry9d924f62019-02-13 14:02:30 -0800447 $< fsconfig \
448 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
449 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
450 --partition product \
451 --dirs \
452 --out_file $@ \
453 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
Mark Salyzyncf343a62018-11-16 09:44:07 -0800454
455##################################
456# Generate the product/etc/fs_config_files binary file for the target
Justin Yun75f7cf92020-10-19 16:58:06 +0900457# Add fs_config_files or fs_config_files_product to PRODUCT_PACKAGES in
Mark Salyzyncf343a62018-11-16 09:44:07 -0800458# the device make file to enable
459include $(CLEAR_VARS)
460
Justin Yun75f7cf92020-10-19 16:58:06 +0900461LOCAL_MODULE := _fs_config_files_product
Mark Salyzyncf343a62018-11-16 09:44:07 -0800462LOCAL_MODULE_CLASS := ETC
463LOCAL_INSTALLED_MODULE_STEM := fs_config_files
464LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/etc
465include $(BUILD_SYSTEM)/base_rules.mk
Tom Cherry9d924f62019-02-13 14:02:30 -0800466$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
467$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
468$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
469$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
Mark Salyzyncf343a62018-11-16 09:44:07 -0800470 @mkdir -p $(dir $@)
Tom Cherry9d924f62019-02-13 14:02:30 -0800471 $< fsconfig \
472 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
473 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
474 --partition product \
475 --files \
476 --out_file $@ \
477 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
Mark Salyzyncf343a62018-11-16 09:44:07 -0800478endif
479
Justin Yun75f7cf92020-10-19 16:58:06 +0900480ifneq ($(BOARD_USES_SYSTEM_EXTIMAGE)$(BOARD_SYSTEM_EXTIMAGE_FILE_SYSTEM_TYPE),)
Mark Salyzyncf343a62018-11-16 09:44:07 -0800481##################################
Justin Yun6151e3f2019-06-25 15:58:13 +0900482# Generate the system_ext/etc/fs_config_dirs binary file for the target
483# Add fs_config_dirs or fs_config_dirs_system_ext to PRODUCT_PACKAGES in
Mark Salyzyncf343a62018-11-16 09:44:07 -0800484# the device make file to enable
485include $(CLEAR_VARS)
486
Justin Yun75f7cf92020-10-19 16:58:06 +0900487LOCAL_MODULE := _fs_config_dirs_system_ext
Mark Salyzyncf343a62018-11-16 09:44:07 -0800488LOCAL_MODULE_CLASS := ETC
489LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
Justin Yun6151e3f2019-06-25 15:58:13 +0900490LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_EXT)/etc
Mark Salyzyncf343a62018-11-16 09:44:07 -0800491include $(BUILD_SYSTEM)/base_rules.mk
Tom Cherry9d924f62019-02-13 14:02:30 -0800492$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
493$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
494$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
495$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
Mark Salyzyncf343a62018-11-16 09:44:07 -0800496 @mkdir -p $(dir $@)
Tom Cherry9d924f62019-02-13 14:02:30 -0800497 $< fsconfig \
498 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
499 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
Justin Yun6151e3f2019-06-25 15:58:13 +0900500 --partition system_ext \
Tom Cherry9d924f62019-02-13 14:02:30 -0800501 --dirs \
502 --out_file $@ \
503 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
Mark Salyzyncf343a62018-11-16 09:44:07 -0800504
505##################################
Justin Yun6151e3f2019-06-25 15:58:13 +0900506# Generate the system_ext/etc/fs_config_files binary file for the target
Justin Yun75f7cf92020-10-19 16:58:06 +0900507# Add fs_config_files or fs_config_files_system_ext to PRODUCT_PACKAGES in
Mark Salyzyncf343a62018-11-16 09:44:07 -0800508# the device make file to enable
509include $(CLEAR_VARS)
510
Justin Yun75f7cf92020-10-19 16:58:06 +0900511LOCAL_MODULE := _fs_config_files_system_ext
Mark Salyzyncf343a62018-11-16 09:44:07 -0800512LOCAL_MODULE_CLASS := ETC
513LOCAL_INSTALLED_MODULE_STEM := fs_config_files
Justin Yun6151e3f2019-06-25 15:58:13 +0900514LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_EXT)/etc
Mark Salyzyncf343a62018-11-16 09:44:07 -0800515include $(BUILD_SYSTEM)/base_rules.mk
Tom Cherry9d924f62019-02-13 14:02:30 -0800516$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
517$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(system_capability_header)
518$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
519$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(system_capability_header)
Mark Salyzyncf343a62018-11-16 09:44:07 -0800520 @mkdir -p $(dir $@)
Tom Cherry9d924f62019-02-13 14:02:30 -0800521 $< fsconfig \
522 --aid-header $(PRIVATE_ANDROID_FS_HDR) \
523 --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
Justin Yun6151e3f2019-06-25 15:58:13 +0900524 --partition system_ext \
Tom Cherry9d924f62019-02-13 14:02:30 -0800525 --files \
526 --out_file $@ \
527 $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)
Mark Salyzyncf343a62018-11-16 09:44:07 -0800528endif
529
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000530system_android_filesystem_config :=
Tom Cherry9d924f62019-02-13 14:02:30 -0800531system_capability_header :=
William Roberts6b19e492017-05-15 11:02:53 -0700532fs_config_generate_extra_partition_list :=