Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a3c088ce authored by Wei Li's avatar Wei Li
Browse files

Convert build/make/tools/fs_config/Android.mk to Android.bp

And export soong config variables of paths of *_dlkm partitions and whether they are built for a product.

Bug: 377304441
Test: lunch aosp_cf_x86_64_phone-trunk_staging-eng && m, check fs_config_dirs
and fs_config_files exist in etc/ in each partitions

Change-Id: I45decac561d5aadfb9e59dfc4157fd3699e65c9b
parent 490590b7
Loading
Loading
Loading
Loading
+8 −0
Original line number Diff line number Diff line
@@ -263,3 +263,11 @@ $(call soong_config_set_bool,google_graphics,board_uses_dt,$(if $(filter true,$(
$(call soong_config_set_bool,google_graphics,board_uses_decon_64bit_address,$(if $(filter true,$(BOARD_USES_DECON_64BIT_ADDRESS)),true,false))
$(call soong_config_set_bool,google_graphics,board_uses_hdrui_gles_conversion,$(if $(filter true,$(BOARD_USES_HDRUI_GLES_CONVERSION)),true,false))
$(call soong_config_set_bool,google_graphics,uses_idisplay_intf_sec,$(if $(filter true,$(USES_IDISPLAY_INTF_SEC)),true,false))

# Variables for fs_config
$(call soong_config_set_bool,fs_config,vendor,$(if $(BOARD_USES_VENDORIMAGE)$(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE),true,false))
$(call soong_config_set_bool,fs_config,oem,$(if $(BOARD_USES_OEMIMAGE)$(BOARD_OEMIMAGE_FILE_SYSTEM_TYPE),true,false))
$(call soong_config_set_bool,fs_config,odm,$(if $(BOARD_USES_ODMIMAGE)$(BOARD_ODMIMAGE_FILE_SYSTEM_TYPE),true,false))
$(call soong_config_set_bool,fs_config,vendor_dlkm,$(if $(BOARD_USES_VENDOR_DLKMIMAGE)$(BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE),true,false))
$(call soong_config_set_bool,fs_config,odm_dlkm,$(if $(BOARD_USES_ODM_DLKMIMAGE)$(BOARD_ODM_DLKMIMAGE_FILE_SYSTEM_TYPE),true,false))
$(call soong_config_set_bool,fs_config,system_dlkm,$(if $(BOARD_USES_SYSTEM_DLKMIMAGE)$(BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE),true,false))
+4 −0
Original line number Diff line number Diff line
@@ -183,12 +183,16 @@ $(call add_json_bool, Enforce_vintf_manifest, $(filter true,$(PRODUCT

$(call add_json_bool, Uml,                               $(filter true,$(TARGET_USER_MODE_LINUX)))
$(call add_json_str,  VendorPath,                        $(TARGET_COPY_OUT_VENDOR))
$(call add_json_str,  VendorDlkmPath,                    $(TARGET_COPY_OUT_VENDOR_DLKM))
$(call add_json_bool, BuildingVendorImage,               $(BUILDING_VENDOR_IMAGE))
$(call add_json_str,  OdmPath,                           $(TARGET_COPY_OUT_ODM))
$(call add_json_bool, BuildingOdmImage,                  $(BUILDING_ODM_IMAGE))
$(call add_json_str,  OdmDlkmPath,                       $(TARGET_COPY_OUT_ODM_DLKM))
$(call add_json_str,  ProductPath,                       $(TARGET_COPY_OUT_PRODUCT))
$(call add_json_bool, BuildingProductImage,              $(BUILDING_PRODUCT_IMAGE))
$(call add_json_str,  SystemExtPath,                     $(TARGET_COPY_OUT_SYSTEM_EXT))
$(call add_json_str,  SystemDlkmPath,                    $(TARGET_COPY_OUT_SYSTEM_DLKM))
$(call add_json_str,  OemPath,                           $(TARGET_COPY_OUT_OEM))
$(call add_json_bool, MinimizeJavaDebugInfo,             $(filter true,$(PRODUCT_MINIMIZE_JAVA_DEBUG_INFO)))

$(call add_json_bool, UseGoma,                           $(filter-out false,$(USE_GOMA)))
+216 −1
Original line number Diff line number Diff line
@@ -277,6 +277,7 @@ genrule_defaults {
    out: ["out"],
}

// system
genrule {
    name: "fs_config_dirs_system_gen",
    defaults: ["fs_config_defaults"],
@@ -307,6 +308,7 @@ prebuilt_etc {
    src: ":fs_config_files_system_gen",
}

// system_ext
genrule {
    name: "fs_config_dirs_system_ext_gen",
    defaults: ["fs_config_defaults"],
@@ -337,6 +339,7 @@ prebuilt_etc {
    system_ext_specific: true,
}

// product
genrule {
    name: "fs_config_dirs_product_gen",
    defaults: ["fs_config_defaults"],
@@ -367,6 +370,7 @@ prebuilt_etc {
    product_specific: true,
}

// vendor
genrule {
    name: "fs_config_dirs_vendor_gen",
    defaults: ["fs_config_defaults"],
@@ -397,6 +401,7 @@ prebuilt_etc {
    vendor: true,
}

// odm
genrule {
    name: "fs_config_dirs_odm_gen",
    defaults: ["fs_config_defaults"],
@@ -427,4 +432,214 @@ prebuilt_etc {
    device_specific: true,
}

// TODO(jiyong): add fs_config for oem, system_dlkm, vendor_dlkm, odm_dlkm partitions
// system_dlkm
genrule {
    name: "fs_config_dirs_system_dlkm_gen",
    defaults: ["fs_config_defaults"],
    cmd: fs_config_cmd_dirs +
        "--partition system_dlkm " +
        "$(locations :target_fs_config_gen)",
}

prebuilt_etc {
    name: "fs_config_dirs_system_dlkm",
    filename: "fs_config_dirs",
    src: ":fs_config_dirs_system_dlkm_gen",
    system_dlkm_specific: true,
}

genrule {
    name: "fs_config_files_system_dlkm_gen",
    defaults: ["fs_config_defaults"],
    cmd: fs_config_cmd_files +
        "--partition system_dlkm " +
        "$(locations :target_fs_config_gen)",
}

prebuilt_etc {
    name: "fs_config_files_system_dlkm",
    filename: "fs_config_files",
    src: ":fs_config_files_system_dlkm_gen",
    system_dlkm_specific: true,
}

// vendor_dlkm
genrule {
    name: "fs_config_dirs_vendor_dlkm_gen",
    defaults: ["fs_config_defaults"],
    cmd: fs_config_cmd_dirs +
        "--partition vendor_dlkm " +
        "$(locations :target_fs_config_gen)",
}

prebuilt_etc {
    name: "fs_config_dirs_vendor_dlkm",
    filename: "fs_config_dirs",
    src: ":fs_config_dirs_vendor_dlkm_gen",
    vendor_dlkm_specific: true,
}

genrule {
    name: "fs_config_files_vendor_dlkm_gen",
    defaults: ["fs_config_defaults"],
    cmd: fs_config_cmd_files +
        "--partition vendor_dlkm " +
        "$(locations :target_fs_config_gen)",
}

prebuilt_etc {
    name: "fs_config_files_vendor_dlkm",
    filename: "fs_config_files",
    src: ":fs_config_files_vendor_dlkm_gen",
    vendor_dlkm_specific: true,
}

// odm_dlkm
genrule {
    name: "fs_config_dirs_odm_dlkm_gen",
    defaults: ["fs_config_defaults"],
    cmd: fs_config_cmd_dirs +
        "--partition odm_dlkm " +
        "$(locations :target_fs_config_gen)",
}

prebuilt_etc {
    name: "fs_config_dirs_odm_dlkm",
    filename: "fs_config_dirs",
    src: ":fs_config_dirs_odm_dlkm_gen",
    odm_dlkm_specific: true,
}

genrule {
    name: "fs_config_files_odm_dlkm_gen",
    defaults: ["fs_config_defaults"],
    cmd: fs_config_cmd_files +
        "--partition odm_dlkm " +
        "$(locations :target_fs_config_gen)",
}

prebuilt_etc {
    name: "fs_config_files_odm_dlkm",
    filename: "fs_config_files",
    src: ":fs_config_files_odm_dlkm_gen",
    odm_dlkm_specific: true,
}

// oem
genrule {
    name: "fs_config_dirs_oem_gen",
    defaults: ["fs_config_defaults"],
    cmd: fs_config_cmd_dirs +
        "--partition oem " +
        "$(locations :target_fs_config_gen)",
}

prebuilt_etc {
    name: "fs_config_dirs_oem",
    filename: "fs_config_dirs",
    src: ":fs_config_dirs_oem_gen",
    oem_specific: true,
}

genrule {
    name: "fs_config_files_oem_gen",
    defaults: ["fs_config_defaults"],
    cmd: fs_config_cmd_files +
        "--partition oem " +
        "$(locations :target_fs_config_gen)",
}

prebuilt_etc {
    name: "fs_config_files_oem",
    filename: "fs_config_files",
    src: ":fs_config_files_oem_gen",
    oem_specific: true,
}

// Generate the <p>/etc/fs_config_dirs binary files for each partition.
// Add fs_config_dirs to PRODUCT_PACKAGES in the device make file to enable.
phony {
    name: "fs_config_dirs",
    required: [
        "fs_config_dirs_system",
        "fs_config_dirs_system_ext",
        "fs_config_dirs_product",
        "fs_config_dirs_nonsystem",
    ],
}

// Generate the <p>/etc/fs_config_files binary files for each partition.
// Add fs_config_files to PRODUCT_PACKAGES in the device make file to enable.
phony {
    name: "fs_config_files",
    required: [
        "fs_config_files_system",
        "fs_config_files_system_ext",
        "fs_config_files_product",
        "fs_config_files_nonsystem",
    ],
}

// Generate the <p>/etc/fs_config_dirs binary files for all enabled partitions
// excluding /system, /system_ext and /product. Add fs_config_dirs_nonsystem to
// PRODUCT_PACKAGES in the device make file to enable.
phony {
    name: "fs_config_dirs_nonsystem",
    required: [] +
        select(soong_config_variable("fs_config", "vendor"), {
            true: ["fs_config_dirs_vendor"],
            default: [],
        }) +
        select(soong_config_variable("fs_config", "oem"), {
            true: ["fs_config_dirs_oem"],
            default: [],
        }) +
        select(soong_config_variable("fs_config", "odm"), {
            true: ["fs_config_dirs_odm"],
            default: [],
        }) +
        select(soong_config_variable("fs_config", "vendor_dlkm"), {
            true: ["fs_config_dirs_vendor_dlkm"],
            default: [],
        }) +
        select(soong_config_variable("fs_config", "odm_dlkm"), {
            true: ["fs_config_dirs_odm_dlkm"],
            default: [],
        }) +
        select(soong_config_variable("fs_config", "system_dlkm"), {
            true: ["fs_config_dirs_system_dlkm"],
            default: [],
        }),
}

// Generate the <p>/etc/fs_config_files binary files for all enabled partitions
// excluding /system, /system_ext and /product. Add fs_config_files_nonsystem to
// PRODUCT_PACKAGES in the device make file to enable.
phony {
    name: "fs_config_files_nonsystem",
    required: [] +
        select(soong_config_variable("fs_config", "vendor"), {
            true: ["fs_config_files_vendor"],
            default: [],
        }) +
        select(soong_config_variable("fs_config", "oem"), {
            true: ["fs_config_files_oem"],
            default: [],
        }) +
        select(soong_config_variable("fs_config", "odm"), {
            true: ["fs_config_files_odm"],
            default: [],
        }) +
        select(soong_config_variable("fs_config", "vendor_dlkm"), {
            true: ["fs_config_files_vendor_dlkm"],
            default: [],
        }) +
        select(soong_config_variable("fs_config", "odm_dlkm"), {
            true: ["fs_config_files_odm_dlkm"],
            default: [],
        }) +
        select(soong_config_variable("fs_config", "system_dlkm"), {
            true: ["fs_config_files_system_dlkm"],
            default: [],
        }),
}

tools/fs_config/Android.mk

deleted100644 → 0
+0 −328
Original line number Diff line number Diff line
# 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.

LOCAL_PATH := $(call my-dir)

# One can override the default android_filesystem_config.h file by using TARGET_FS_CONFIG_GEN.
#   Set TARGET_FS_CONFIG_GEN to contain a list of intermediate format files
#   for generating the android_filesystem_config.h file.
#
# More information can be found in the README

ifneq ($(wildcard $(TARGET_DEVICE_DIR)/android_filesystem_config.h),)
$(error Using $(TARGET_DEVICE_DIR)/android_filesystem_config.h is deprecated, please use TARGET_FS_CONFIG_GEN instead)
endif

android_filesystem_config := system/core/libcutils/include/private/android_filesystem_config.h
capability_header := bionic/libc/kernel/uapi/linux/capability.h

# List of supported vendor, oem, odm, vendor_dlkm, odm_dlkm, and system_dlkm Partitions
fs_config_generate_extra_partition_list := $(strip \
  $(if $(BOARD_USES_VENDORIMAGE)$(BOARD_VENDORIMAGE_FILE_SYSTEM_TYPE),vendor) \
  $(if $(BOARD_USES_OEMIMAGE)$(BOARD_OEMIMAGE_FILE_SYSTEM_TYPE),oem) \
  $(if $(BOARD_USES_ODMIMAGE)$(BOARD_ODMIMAGE_FILE_SYSTEM_TYPE),odm) \
  $(if $(BOARD_USES_VENDOR_DLKMIMAGE)$(BOARD_VENDOR_DLKMIMAGE_FILE_SYSTEM_TYPE),vendor_dlkm) \
  $(if $(BOARD_USES_ODM_DLKMIMAGE)$(BOARD_ODM_DLKMIMAGE_FILE_SYSTEM_TYPE),odm_dlkm) \
  $(if $(BOARD_USES_SYSTEM_DLKMIMAGE)$(BOARD_SYSTEM_DLKMIMAGE_FILE_SYSTEM_TYPE),system_dlkm) \
)

##################################
# Generate the <p>/etc/fs_config_dirs binary files for each partition.
# Add fs_config_dirs to PRODUCT_PACKAGES in the device make file to enable.
include $(CLEAR_VARS)

LOCAL_MODULE := fs_config_dirs
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
LOCAL_REQUIRED_MODULES := \
  fs_config_dirs_system \
  fs_config_dirs_system_ext \
  fs_config_dirs_product \
  fs_config_dirs_nonsystem
include $(BUILD_PHONY_PACKAGE)

##################################
# Generate the <p>/etc/fs_config_files binary files for each partition.
# Add fs_config_files to PRODUCT_PACKAGES in the device make file to enable.
include $(CLEAR_VARS)

LOCAL_MODULE := fs_config_files
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
LOCAL_REQUIRED_MODULES := \
  fs_config_files_system \
  fs_config_files_system_ext \
  fs_config_files_product \
  fs_config_files_nonsystem
include $(BUILD_PHONY_PACKAGE)

##################################
# Generate the <p>/etc/fs_config_dirs binary files for all enabled partitions
# excluding /system, /system_ext and /product. Add fs_config_dirs_nonsystem to
# PRODUCT_PACKAGES in the device make file to enable.
include $(CLEAR_VARS)

LOCAL_MODULE := fs_config_dirs_nonsystem
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
LOCAL_REQUIRED_MODULES := $(foreach t,$(fs_config_generate_extra_partition_list),fs_config_dirs_$(t))
include $(BUILD_PHONY_PACKAGE)

##################################
# Generate the <p>/etc/fs_config_files binary files for all enabled partitions
# excluding /system, /system_ext and /product. Add fs_config_files_nonsystem to
# PRODUCT_PACKAGES in the device make file to enable.
include $(CLEAR_VARS)

LOCAL_MODULE := fs_config_files_nonsystem
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
LOCAL_REQUIRED_MODULES := $(foreach t,$(fs_config_generate_extra_partition_list),fs_config_files_$(t))
include $(BUILD_PHONY_PACKAGE)

ifneq ($(filter oem,$(fs_config_generate_extra_partition_list)),)
##################################
# Generate the oem/etc/fs_config_dirs binary file for the target
# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES
# in the device make file to enable
include $(CLEAR_VARS)

LOCAL_MODULE := fs_config_dirs_oem
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
LOCAL_MODULE_CLASS := ETC
LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
LOCAL_MODULE_PATH := $(TARGET_OUT_OEM)/etc
include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config)
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header)
$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header)
	@mkdir -p $(dir $@)
	$< fsconfig \
	   --aid-header $(PRIVATE_ANDROID_FS_HDR) \
	   --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
	   --partition oem \
	   --dirs \
	   --out_file $@ \
	   $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)

##################################
# Generate the oem/etc/fs_config_files binary file for the target
# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES
# in the device make file to enable
include $(CLEAR_VARS)

LOCAL_MODULE := fs_config_files_oem
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
LOCAL_MODULE_CLASS := ETC
LOCAL_INSTALLED_MODULE_STEM := fs_config_files
LOCAL_MODULE_PATH := $(TARGET_OUT_OEM)/etc
include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config)
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header)
$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header)
	@mkdir -p $(dir $@)
	$< fsconfig \
	   --aid-header $(PRIVATE_ANDROID_FS_HDR) \
	   --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
	   --partition oem \
	   --files \
	   --out_file $@ \
	   $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)

endif

ifneq ($(filter vendor_dlkm,$(fs_config_generate_extra_partition_list)),)
##################################
# Generate the vendor_dlkm/etc/fs_config_dirs binary file for the target
# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES in
# the device make file to enable
include $(CLEAR_VARS)

LOCAL_MODULE := fs_config_dirs_vendor_dlkm
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
LOCAL_MODULE_CLASS := ETC
LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_DLKM)/etc
include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config)
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header)
$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header)
	@mkdir -p $(dir $@)
	$< fsconfig \
	   --aid-header $(PRIVATE_ANDROID_FS_HDR) \
	   --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
	   --partition vendor_dlkm \
	   --dirs \
	   --out_file $@ \
	   $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)

##################################
# Generate the vendor_dlkm/etc/fs_config_files binary file for the target
# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES in
# the device make file to enable
include $(CLEAR_VARS)

LOCAL_MODULE := fs_config_files_vendor_dlkm
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
LOCAL_MODULE_CLASS := ETC
LOCAL_INSTALLED_MODULE_STEM := fs_config_files
LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_DLKM)/etc
include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config)
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header)
$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header)
	@mkdir -p $(dir $@)
	$< fsconfig \
	   --aid-header $(PRIVATE_ANDROID_FS_HDR) \
	   --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
	   --partition vendor_dlkm \
	   --files \
	   --out_file $@ \
	   $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)

endif

ifneq ($(filter odm_dlkm,$(fs_config_generate_extra_partition_list)),)
##################################
# Generate the odm_dlkm/etc/fs_config_dirs binary file for the target
# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES
# in the device make file to enable
include $(CLEAR_VARS)

LOCAL_MODULE := fs_config_dirs_odm_dlkm
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
LOCAL_MODULE_CLASS := ETC
LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
LOCAL_MODULE_PATH := $(TARGET_OUT_ODM_DLKM)/etc
include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config)
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header)
$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header)
	@mkdir -p $(dir $@)
	$< fsconfig \
	   --aid-header $(PRIVATE_ANDROID_FS_HDR) \
	   --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
	   --partition odm_dlkm \
	   --dirs \
	   --out_file $@ \
	   $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)

##################################
# Generate the odm_dlkm/etc/fs_config_files binary file for the target
# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES
# in the device make file to enable
include $(CLEAR_VARS)

LOCAL_MODULE := fs_config_files_odm_dlkm
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
LOCAL_MODULE_CLASS := ETC
LOCAL_INSTALLED_MODULE_STEM := fs_config_files
LOCAL_MODULE_PATH := $(TARGET_OUT_ODM_DLKM)/etc
include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config)
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header)
$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header)
	@mkdir -p $(dir $@)
	$< fsconfig \
	   --aid-header $(PRIVATE_ANDROID_FS_HDR) \
	   --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
	   --partition odm_dlkm \
	   --files \
	   --out_file $@ \
	   $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)

endif

ifneq ($(filter system_dlkm,$(fs_config_generate_extra_partition_list)),)
##################################
# Generate the system_dlkm/etc/fs_config_dirs binary file for the target
# Add fs_config_dirs or fs_config_dirs_nonsystem to PRODUCT_PACKAGES
# in the device make file to enable
include $(CLEAR_VARS)

LOCAL_MODULE := fs_config_dirs_system_dlkm
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
LOCAL_MODULE_CLASS := ETC
LOCAL_INSTALLED_MODULE_STEM := fs_config_dirs
LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_DLKM)/etc
include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config)
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header)
$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header)
	@mkdir -p $(dir $@)
	$< fsconfig \
	   --aid-header $(PRIVATE_ANDROID_FS_HDR) \
	   --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
	   --partition system_dlkm \
	   --dirs \
	   --out_file $@ \
	   $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)

##################################
# Generate the system_dlkm/etc/fs_config_files binary file for the target
# Add fs_config_files or fs_config_files_nonsystem to PRODUCT_PACKAGES
# in the device make file to enable
include $(CLEAR_VARS)

LOCAL_MODULE := fs_config_files_system_dlkm
LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0
LOCAL_LICENSE_CONDITIONS := notice
LOCAL_NOTICE_FILE := build/soong/licenses/LICENSE
LOCAL_MODULE_CLASS := ETC
LOCAL_INSTALLED_MODULE_STEM := fs_config_files
LOCAL_MODULE_PATH := $(TARGET_OUT_SYSTEM_DLKM)/etc
include $(BUILD_SYSTEM)/base_rules.mk
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_FS_HDR := $(android_filesystem_config)
$(LOCAL_BUILT_MODULE): PRIVATE_ANDROID_CAP_HDR := $(capability_header)
$(LOCAL_BUILT_MODULE): PRIVATE_TARGET_FS_CONFIG_GEN := $(TARGET_FS_CONFIG_GEN)
$(LOCAL_BUILT_MODULE): $(LOCAL_PATH)/fs_config_generator.py $(TARGET_FS_CONFIG_GEN) $(android_filesystem_config) $(capability_header)
	@mkdir -p $(dir $@)
	$< fsconfig \
	   --aid-header $(PRIVATE_ANDROID_FS_HDR) \
	   --capability-header $(PRIVATE_ANDROID_CAP_HDR) \
	   --partition system_dlkm \
	   --files \
	   --out_file $@ \
	   $(or $(PRIVATE_TARGET_FS_CONFIG_GEN),/dev/null)

endif

android_filesystem_config :=
capability_header :=
fs_config_generate_extra_partition_list :=