blob: 5ade25891708c008ded4138e3671414396adb14a [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
William Robertsc950a352016-03-04 18:12:29 -080017# One can override the default android_filesystem_config.h file in one of two ways:
18#
19# 1. The old way:
20# To Build the custom target binary for the host to generate the fs_config
21# override files. The executable is hard coded to include the
22# $(TARGET_ANDROID_FILESYSTEM_CONFIG_H) file if it exists.
23# Expectations:
24# device/<vendor>/<device>/android_filesystem_config.h
25# fills in struct fs_path_config android_device_dirs[] and
26# struct fs_path_config android_device_files[]
27# device/<vendor>/<device>/device.mk
28# PRODUCT_PACKAGES += fs_config_dirs fs_config_files
29# If not specified, check if default one to be found
30#
31# 2. The new way:
32# set TARGET_FS_CONFIG_GEN to contain a list of intermediate format files
33# for generating the android_filesystem_config.h file.
34#
35# More information can be found in the README
Mark Salyzyn06b91b92015-04-01 14:41:29 -070036ANDROID_FS_CONFIG_H := android_filesystem_config.h
37
38ifneq ($(TARGET_ANDROID_FILESYSTEM_CONFIG_H),)
William Robertsc950a352016-03-04 18:12:29 -080039ifneq ($(TARGET_FS_CONFIG_GEN),)
40$(error Cannot set TARGET_ANDROID_FILESYSTEM_CONFIG_H and TARGET_FS_CONFIG_GEN simultaneously)
41endif
William Roberts78626c42016-02-11 10:35:07 -080042
43# One and only one file can be specified.
44ifneq ($(words $(TARGET_ANDROID_FILESYSTEM_CONFIG_H)),1)
45$(error Multiple fs_config files specified, \
46 see "$(TARGET_ANDROID_FILESYSTEM_CONFIG_H)".)
47endif
48
Mark Salyzyn06b91b92015-04-01 14:41:29 -070049ifeq ($(filter %/$(ANDROID_FS_CONFIG_H),$(TARGET_ANDROID_FILESYSTEM_CONFIG_H)),)
50$(error TARGET_ANDROID_FILESYSTEM_CONFIG_H file name must be $(ANDROID_FS_CONFIG_H), \
51 see "$(notdir $(TARGET_ANDROID_FILESYSTEM_CONFIG_H))".)
52endif
53
54my_fs_config_h := $(TARGET_ANDROID_FILESYSTEM_CONFIG_H)
55else ifneq ($(wildcard $(TARGET_DEVICE_DIR)/$(ANDROID_FS_CONFIG_H)),)
William Robertsc950a352016-03-04 18:12:29 -080056
57ifneq ($(TARGET_FS_CONFIG_GEN),)
58$(error Cannot provide $(TARGET_DEVICE_DIR)/$(ANDROID_FS_CONFIG_H) and set TARGET_FS_CONFIG_GEN simultaneously)
59endif
Mark Salyzyn06b91b92015-04-01 14:41:29 -070060my_fs_config_h := $(TARGET_DEVICE_DIR)/$(ANDROID_FS_CONFIG_H)
William Robertsc950a352016-03-04 18:12:29 -080061
Mark Salyzyn06b91b92015-04-01 14:41:29 -070062else
63my_fs_config_h := $(LOCAL_PATH)/default/$(ANDROID_FS_CONFIG_H)
64endif
65
Tom Cherry53940fd2018-06-14 12:19:19 -070066system_android_filesystem_config := system/core/include/private/android_filesystem_config.h
67
William Robertsc950a352016-03-04 18:12:29 -080068##################################
Mark Salyzyn06b91b92015-04-01 14:41:29 -070069include $(CLEAR_VARS)
70LOCAL_SRC_FILES := fs_config_generate.c
71LOCAL_MODULE := fs_config_generate_$(TARGET_DEVICE)
William Robertsc950a352016-03-04 18:12:29 -080072LOCAL_MODULE_CLASS := EXECUTABLES
Mark Salyzyn06b91b92015-04-01 14:41:29 -070073LOCAL_SHARED_LIBRARIES := libcutils
74LOCAL_CFLAGS := -Werror -Wno-error=\#warnings
William Robertsc950a352016-03-04 18:12:29 -080075
76ifneq ($(TARGET_FS_CONFIG_GEN),)
Elliott Hughes2d7c86d2016-12-13 23:37:07 +000077# Generate the "generated_oem_aid.h" file
78oem := $(local-generated-sources-dir)/generated_oem_aid.h
79$(oem): PRIVATE_LOCAL_PATH := $(LOCAL_PATH)
80$(oem): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
81$(oem): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
82$(oem): PRIVATE_CUSTOM_TOOL = $(PRIVATE_LOCAL_PATH)/fs_config_generator.py oemaid --aid-header=$(PRIVATE_ANDROID_FS_HDR) $(PRIVATE_TARGET_FS_CONFIG_GEN) > $@
83$(oem): $(TARGET_FS_CONFIG_GEN) $(LOCAL_PATH)/fs_config_generator.py
84 $(transform-generated-source)
85
86# Generate the fs_config header
William Robertsc950a352016-03-04 18:12:29 -080087gen := $(local-generated-sources-dir)/$(ANDROID_FS_CONFIG_H)
88$(gen): PRIVATE_LOCAL_PATH := $(LOCAL_PATH)
89$(gen): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
Elliott Hughes2d7c86d2016-12-13 23:37:07 +000090$(gen): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
91$(gen): PRIVATE_CUSTOM_TOOL = $(PRIVATE_LOCAL_PATH)/fs_config_generator.py fsconfig --aid-header=$(PRIVATE_ANDROID_FS_HDR) $(PRIVATE_TARGET_FS_CONFIG_GEN) > $@
92$(gen): $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config) $(LOCAL_PATH)/fs_config_generator.py
William Robertsc950a352016-03-04 18:12:29 -080093 $(transform-generated-source)
94
Elliott Hughes2d7c86d2016-12-13 23:37:07 +000095LOCAL_GENERATED_SOURCES := $(oem) $(gen)
96
William Robertsc950a352016-03-04 18:12:29 -080097my_fs_config_h := $(gen)
Elliott Hughes2d7c86d2016-12-13 23:37:07 +000098my_gen_oem_aid := $(oem)
William Robertsc950a352016-03-04 18:12:29 -080099gen :=
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000100oem :=
William Robertsc950a352016-03-04 18:12:29 -0800101endif
102
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000103LOCAL_C_INCLUDES := $(dir $(my_fs_config_h)) $(dir $(my_gen_oem_aid))
William Robertsc950a352016-03-04 18:12:29 -0800104
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700105include $(BUILD_HOST_EXECUTABLE)
106fs_config_generate_bin := $(LOCAL_INSTALLED_MODULE)
Mark Salyzyncf343a62018-11-16 09:44:07 -0800107# List of supported vendor, oem, odm, product and product_services Partitions
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700108fs_config_generate_extra_partition_list := $(strip \
109 $(if $(BOARD_USES_VENDORIMAGE)$(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE),vendor) \
110 $(if $(BOARD_USES_OEMIMAGE)$(BOARD_OEMIMAGE_FILE_SYSTEM_TYPE),oem) \
Mark Salyzyncf343a62018-11-16 09:44:07 -0800111 $(if $(BOARD_USES_ODMIMAGE)$(BOARD_ODMIMAGE_FILE_SYSTEM_TYPE),odm) \
112 $(if $(BOARD_PRODUCTIMAGE_FILE_SYSTEM_TYPE),product) \
113 $(if $(BOARD_PRODUCT_SERVICESIMAGE_FILE_SYSTEM_TYPE),product_services) \
114)
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700115
William Robertsc950a352016-03-04 18:12:29 -0800116##################################
Anton Hanssone85ec842018-06-26 14:03:38 +0100117# Generate the <p>/etc/fs_config_dirs binary files for each partition.
118# Add fs_config_dirs to PRODUCT_PACKAGES in the device make file to enable.
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700119include $(CLEAR_VARS)
120
121LOCAL_MODULE := fs_config_dirs
Anton Hanssone85ec842018-06-26 14:03:38 +0100122LOCAL_REQUIRED_MODULES := \
123 fs_config_dirs_system \
124 $(foreach t,$(fs_config_generate_extra_partition_list),$(LOCAL_MODULE)_$(t))
125include $(BUILD_PHONY_PACKAGE)
126
127
128##################################
129# Generate the <p>/etc/fs_config_files binary files for each partition.
130# Add fs_config_files to PRODUCT_PACKAGES in the device make file to enable.
131include $(CLEAR_VARS)
132
133LOCAL_MODULE := fs_config_files
134LOCAL_REQUIRED_MODULES := \
135 fs_config_files_system \
136 $(foreach t,$(fs_config_generate_extra_partition_list),$(LOCAL_MODULE)_$(t))
137include $(BUILD_PHONY_PACKAGE)
138
139##################################
140# Generate the <p>/etc/fs_config_dirs binary files for all enabled partitions
141# excluding /system. Add fs_config_dirs_nonsystem to PRODUCT_PACKAGES in the
142# device make file to enable.
143include $(CLEAR_VARS)
144
145LOCAL_MODULE := fs_config_dirs_nonsystem
146LOCAL_REQUIRED_MODULES := $(foreach t,$(fs_config_generate_extra_partition_list),fs_config_dirs_$(t))
147include $(BUILD_PHONY_PACKAGE)
148
149##################################
150# Generate the <p>/etc/fs_config_files binary files for all enabled partitions
151# excluding /system. Add fs_config_files_nonsystem to PRODUCT_PACKAGES in the
152# device make file to enable.
153include $(CLEAR_VARS)
154
155LOCAL_MODULE := fs_config_files_nonsystem
156LOCAL_REQUIRED_MODULES := $(foreach t,$(fs_config_generate_extra_partition_list),fs_config_files_$(t))
157include $(BUILD_PHONY_PACKAGE)
158
159##################################
160# Generate the system/etc/fs_config_dirs binary file for the target
161# Add fs_config_dirs or fs_config_dirs_system to PRODUCT_PACKAGES in
162# the device make file to enable
163include $(CLEAR_VARS)
164
165LOCAL_MODULE := fs_config_dirs_system
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700166LOCAL_MODULE_CLASS := ETC
Anton Hanssone85ec842018-06-26 14:03:38 +0100167LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700168include $(BUILD_SYSTEM)/base_rules.mk
Mark Salyzyn705b59e2018-11-16 13:30:37 -0800169$(LOCAL_BUILT_MODULE): PRIVATE_PARTITION_LIST := $(fs_config_generate_extra_partition_list)
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700170$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
171 @mkdir -p $(dir $@)
Mark Salyzyn705b59e2018-11-16 13:30:37 -0800172 $< -D $(if $(PRIVATE_PARTITION_LIST), \
173 -P '$(subst $(space),$(comma),$(addprefix -,$(PRIVATE_PARTITION_LIST)))') \
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700174 -o $@
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700175
William Robertsc950a352016-03-04 18:12:29 -0800176##################################
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700177# Generate the system/etc/fs_config_files binary file for the target
Anton Hanssone85ec842018-06-26 14:03:38 +0100178# Add fs_config_files or fs_config_files_system to PRODUCT_PACKAGES in
179# the device make file to enable
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700180include $(CLEAR_VARS)
181
Anton Hanssone85ec842018-06-26 14:03:38 +0100182LOCAL_MODULE := fs_config_files_system
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700183LOCAL_MODULE_CLASS := ETC
Anton Hanssone85ec842018-06-26 14:03:38 +0100184LOCAL_INSTALLED_MODULE_STEM := fs_config_files
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700185include $(BUILD_SYSTEM)/base_rules.mk
Mark Salyzyn705b59e2018-11-16 13:30:37 -0800186$(LOCAL_BUILT_MODULE): PRIVATE_PARTITION_LIST := $(fs_config_generate_extra_partition_list)
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700187$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
188 @mkdir -p $(dir $@)
Mark Salyzyn705b59e2018-11-16 13:30:37 -0800189 $< -F $(if $(PRIVATE_PARTITION_LIST), \
190 -P '$(subst $(space),$(comma),$(addprefix -,$(PRIVATE_PARTITION_LIST)))') \
Mark Salyzyn1fd588c2017-03-22 15:53:12 -0700191 -o $@
192
193ifneq ($(filter vendor,$(fs_config_generate_extra_partition_list)),)
194##################################
195# Generate the vendor/etc/fs_config_dirs binary file for the target
196# Add fs_config_dirs or fs_config_dirs_vendor to PRODUCT_PACKAGES in
197# the device make file to enable.
198include $(CLEAR_VARS)
199
200LOCAL_MODULE := fs_config_dirs_vendor
201LOCAL_MODULE_CLASS := ETC
202LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
203LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc
204include $(BUILD_SYSTEM)/base_rules.mk
205$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
206 @mkdir -p $(dir $@)
207 $< -D -P vendor -o $@
208
209##################################
210# Generate the vendor/etc/fs_config_files binary file for the target
211# Add fs_config_files or fs_config_files_vendor to PRODUCT_PACKAGES in
212# the device make file to enable
213include $(CLEAR_VARS)
214
215LOCAL_MODULE := fs_config_files_vendor
216LOCAL_MODULE_CLASS := ETC
217LOCAL_INSTALLED_MODULE_STEM := fs_config_files
218LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR)/etc
219include $(BUILD_SYSTEM)/base_rules.mk
220$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
221 @mkdir -p $(dir $@)
222 $< -F -P vendor -o $@
223
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
229# Add fs_config_dirs or fs_config_dirs_oem to PRODUCT_PACKAGES in
230# the device make file to enable
231include $(CLEAR_VARS)
232
233LOCAL_MODULE := fs_config_dirs_oem
234LOCAL_MODULE_CLASS := ETC
235LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
236LOCAL_MODULE_PATH := $(TARGET_OUT_OEM)/etc
237include $(BUILD_SYSTEM)/base_rules.mk
238$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
239 @mkdir -p $(dir $@)
240 $< -D -P oem -o $@
241
242##################################
243# Generate the oem/etc/fs_config_files binary file for the target
244# Add fs_config_files or fs_config_files_oem to PRODUCT_PACKAGES in
245# the device make file to enable
246include $(CLEAR_VARS)
247
248LOCAL_MODULE := fs_config_files_oem
249LOCAL_MODULE_CLASS := ETC
250LOCAL_INSTALLED_MODULE_STEM := fs_config_files
251LOCAL_MODULE_PATH := $(TARGET_OUT_OEM)/etc
252include $(BUILD_SYSTEM)/base_rules.mk
253$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
254 @mkdir -p $(dir $@)
255 $< -F -P oem -o $@
256
257endif
258
259ifneq ($(filter odm,$(fs_config_generate_extra_partition_list)),)
260##################################
261# Generate the odm/etc/fs_config_dirs binary file for the target
262# Add fs_config_dirs or fs_config_dirs_odm to PRODUCT_PACKAGES in
263# the device make file to enable
264include $(CLEAR_VARS)
265
266LOCAL_MODULE := fs_config_dirs_odm
267LOCAL_MODULE_CLASS := ETC
268LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
269LOCAL_MODULE_PATH := $(TARGET_OUT_ODM)/etc
270include $(BUILD_SYSTEM)/base_rules.mk
271$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
272 @mkdir -p $(dir $@)
273 $< -D -P odm -o $@
274
275##################################
276# Generate the odm/etc/fs_config_files binary file for the target
277# Add fs_config_files of fs_config_files_odm to PRODUCT_PACKAGES in
278# the device make file to enable
279include $(CLEAR_VARS)
280
281LOCAL_MODULE := fs_config_files_odm
282LOCAL_MODULE_CLASS := ETC
283LOCAL_INSTALLED_MODULE_STEM := fs_config_files
284LOCAL_MODULE_PATH := $(TARGET_OUT_ODM)/etc
285include $(BUILD_SYSTEM)/base_rules.mk
286$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
287 @mkdir -p $(dir $@)
288 $< -F -P odm -o $@
289
290endif
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700291
Mark Salyzyncf343a62018-11-16 09:44:07 -0800292ifneq ($(filter product,$(fs_config_generate_extra_partition_list)),)
293##################################
294# Generate the product/etc/fs_config_dirs binary file for the target
295# Add fs_config_dirs or fs_config_dirs_product to PRODUCT_PACKAGES in
296# the device make file to enable
297include $(CLEAR_VARS)
298
299LOCAL_MODULE := fs_config_dirs_product
300LOCAL_MODULE_CLASS := ETC
301LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
302LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/etc
303include $(BUILD_SYSTEM)/base_rules.mk
304$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
305 @mkdir -p $(dir $@)
306 $< -D -P product -o $@
307
308##################################
309# Generate the product/etc/fs_config_files binary file for the target
310# Add fs_config_files of fs_config_files_product to PRODUCT_PACKAGES in
311# the device make file to enable
312include $(CLEAR_VARS)
313
314LOCAL_MODULE := fs_config_files_product
315LOCAL_MODULE_CLASS := ETC
316LOCAL_INSTALLED_MODULE_STEM := fs_config_files
317LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT)/etc
318include $(BUILD_SYSTEM)/base_rules.mk
319$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
320 @mkdir -p $(dir $@)
321 $< -F -P product -o $@
322
323endif
324
325ifneq ($(filter product_services,$(fs_config_generate_extra_partition_list)),)
326##################################
327# Generate the product_services/etc/fs_config_dirs binary file for the target
328# Add fs_config_dirs or fs_config_dirs_product_services to PRODUCT_PACKAGES in
329# the device make file to enable
330include $(CLEAR_VARS)
331
332LOCAL_MODULE := fs_config_dirs_product_services
333LOCAL_MODULE_CLASS := ETC
334LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
335LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_SERVICES)/etc
336include $(BUILD_SYSTEM)/base_rules.mk
337$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
338 @mkdir -p $(dir $@)
339 $< -D -P product_services -o $@
340
341##################################
342# Generate the product_services/etc/fs_config_files binary file for the target
343# Add fs_config_files of fs_config_files_product_services to PRODUCT_PACKAGES in
344# the device make file to enable
345include $(CLEAR_VARS)
346
347LOCAL_MODULE := fs_config_files_product_services
348LOCAL_MODULE_CLASS := ETC
349LOCAL_INSTALLED_MODULE_STEM := fs_config_files
350LOCAL_MODULE_PATH := $(TARGET_OUT_PRODUCT_SERVICES)/etc
351include $(BUILD_SYSTEM)/base_rules.mk
352$(LOCAL_BUILT_MODULE): $(fs_config_generate_bin)
353 @mkdir -p $(dir $@)
354 $< -F -P product_services -o $@
355
356endif
357
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000358##################################
Tom Cherry7a95c152018-04-04 11:21:29 -0700359# Build the oemaid header library when fs config files are present.
360# Intentionally break build if you require generated AIDs
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000361# header file, but are not using any fs config files.
Tom Cherry53940fd2018-06-14 12:19:19 -0700362ifneq ($(TARGET_FS_CONFIG_GEN),)
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000363include $(CLEAR_VARS)
Tom Cherry7a95c152018-04-04 11:21:29 -0700364LOCAL_MODULE := oemaids_headers
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000365LOCAL_EXPORT_C_INCLUDE_DIRS := $(dir $(my_gen_oem_aid))
366LOCAL_EXPORT_C_INCLUDE_DEPS := $(my_gen_oem_aid)
Tom Cherry7a95c152018-04-04 11:21:29 -0700367include $(BUILD_HEADER_LIBRARY)
Tom Cherry53940fd2018-06-14 12:19:19 -0700368endif
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000369
370##################################
Tom Cherry2d197a12018-05-14 13:14:41 -0700371# Generate the vendor/etc/passwd text file for the target
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000372# This file may be empty if no AIDs are defined in
373# TARGET_FS_CONFIG_GEN files.
374include $(CLEAR_VARS)
375
376LOCAL_MODULE := passwd
377LOCAL_MODULE_CLASS := ETC
Tom Cherry55d01042018-02-08 13:15:21 -0800378LOCAL_VENDOR_MODULE := true
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000379
380include $(BUILD_SYSTEM)/base_rules.mk
381
Tom Cherry53940fd2018-06-14 12:19:19 -0700382ifneq ($(TARGET_FS_CONFIG_GEN),)
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000383$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
Tom Cherry53940fd2018-06-14 12:19:19 -0700384else
385$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := /dev/null
386endif
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000387$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
388$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config)
389 @mkdir -p $(dir $@)
Tom Cherry2d197a12018-05-14 13:14:41 -0700390 $(hide) $< passwd --required-prefix=vendor_ --aid-header=$(PRIVATE_ANDROID_FS_HDR) $(PRIVATE_TARGET_FS_CONFIG_GEN) > $@
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000391
392##################################
Tom Cherry2d197a12018-05-14 13:14:41 -0700393# Generate the vendor/etc/group text file for the target
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000394# This file may be empty if no AIDs are defined in
395# TARGET_FS_CONFIG_GEN files.
396include $(CLEAR_VARS)
397
398LOCAL_MODULE := group
399LOCAL_MODULE_CLASS := ETC
Tom Cherry55d01042018-02-08 13:15:21 -0800400LOCAL_VENDOR_MODULE := true
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000401
402include $(BUILD_SYSTEM)/base_rules.mk
403
Tom Cherry53940fd2018-06-14 12:19:19 -0700404ifneq ($(TARGET_FS_CONFIG_GEN),)
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000405$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
Tom Cherry53940fd2018-06-14 12:19:19 -0700406else
407$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := /dev/null
408endif
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000409$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(system_android_filesystem_config)
410$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(system_android_filesystem_config)
411 @mkdir -p $(dir $@)
Tom Cherry2d197a12018-05-14 13:14:41 -0700412 $(hide) $< group --required-prefix=vendor_ --aid-header=$(PRIVATE_ANDROID_FS_HDR) $(PRIVATE_TARGET_FS_CONFIG_GEN) > $@
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000413
414system_android_filesystem_config :=
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000415
Mark Salyzyn06b91b92015-04-01 14:41:29 -0700416ANDROID_FS_CONFIG_H :=
417my_fs_config_h :=
418fs_config_generate_bin :=
Elliott Hughes2d7c86d2016-12-13 23:37:07 +0000419my_gen_oem_aid :=
William Roberts6b19e492017-05-15 11:02:53 -0700420fs_config_generate_extra_partition_list :=