Allow init_rc files to be installed in ramdisk
Test: th
Test: m target-file-package, then check INIT_BOOT dir of target file,
make sure snapuserd.rc is there
Bug: 219841787
Bug: 228893064
Change-Id: Iac3f219c763fbf8acd17f0339089c7576974dc05
diff --git a/core/base_rules.mk b/core/base_rules.mk
index e6b8f20..f358356 100644
--- a/core/base_rules.mk
+++ b/core/base_rules.mk
@@ -590,10 +590,18 @@
my_init_rc := $(foreach rc,$(LOCAL_INIT_RC_$(my_32_64_bit_suffix)) $(LOCAL_INIT_RC),$(LOCAL_PATH)/$(rc))
endif
ifneq ($(strip $(my_init_rc)),)
- # Make doesn't support recovery as an output partition, but some Soong modules installed in recovery
- # have init.rc files that need to be installed alongside them. Manually handle the case where the
- # output file is in the recovery partition.
- my_init_rc_path := $(if $(filter $(TARGET_RECOVERY_ROOT_OUT)/%,$(my_module_path)),$(TARGET_RECOVERY_ROOT_OUT)/system/etc,$(TARGET_OUT$(partition_tag)_ETC))
+ # Make doesn't support recovery or ramdisk as an output partition,
+ # but some Soong modules installed in recovery or ramdisk
+ # have init.rc files that need to be installed alongside them.
+ # Manually handle the case where the
+ # output file is in the recovery or ramdisk partition.
+ ifneq (,$(filter $(TARGET_RECOVERY_ROOT_OUT)/%,$(my_module_path)))
+ my_init_rc_path := $(TARGET_RECOVERY_ROOT_OUT)/system/etc
+ else ifneq (,$(filter $(TARGET_RAMDISK_OUT)/%,$(my_module_path)))
+ my_init_rc_path := $(TARGET_RAMDISK_OUT)/system/etc
+ else
+ my_init_rc_path := $(TARGET_OUT$(partition_tag)_ETC)
+ endif
my_init_rc_pairs := $(foreach rc,$(my_init_rc),$(rc):$(my_init_rc_path)/init/$(notdir $(rc)))
my_init_rc_installed := $(foreach rc,$(my_init_rc_pairs),$(call word-colon,2,$(rc)))