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

Commit bd42daba authored by Koushik Dutta's avatar Koushik Dutta Committed by Steve Kondik
Browse files

clockwwork recovery build fixes

parent 38f19c21
Loading
Loading
Loading
Loading
+98 −7
Original line number Diff line number Diff line
@@ -580,8 +580,21 @@ ifeq (,$(filter true, $(TARGET_NO_KERNEL) $(TARGET_NO_RECOVERY) $(BUILD_TINY_AND

INSTALLED_RECOVERYIMAGE_TARGET := $(PRODUCT_OUT)/recovery.img

ifneq ($(TARGET_RECOVERY_INITRC),)
  recovery_initrc := $(TARGET_RECOVERY_INITRC) # Use target specific init.rc
else
ifeq ($(BOARD_USES_RECOVERY_CHARGEMODE),true)
  $(error BOARD_USES_RECOVERY_CHARGEMODE is deprecated. Please see http://bit.ly/opcSJZ on how to properly implement chargemode in recovery. Or just remove the BOARD_USES_RECOVERY_CHARGEMODE if you are lazy. I will hate you though. -Koush)
else
  recovery_initrc := $(call include-path-for, recovery)/etc/init.rc
endif
endif
ifneq ($(TARGET_PREBUILT_RECOVERY_KERNEL),)
  recovery_kernel := $(TARGET_PREBUILT_RECOVERY_KERNEL) # Use prebuilt recovery kernel
else
  recovery_kernel := $(INSTALLED_KERNEL_TARGET) # same as a non-recovery system
endif
recovery_uncompressed_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.cpio
recovery_ramdisk := $(PRODUCT_OUT)/ramdisk-recovery.img
recovery_build_prop := $(INSTALLED_BUILD_PROP_TARGET)
recovery_binary := $(call intermediates-dir-for,EXECUTABLES,recovery)/recovery
@@ -616,6 +629,12 @@ ifdef BOARD_KERNEL_PAGESIZE
  INTERNAL_RECOVERYIMAGE_ARGS += --pagesize $(BOARD_KERNEL_PAGESIZE)
endif

INTERNAL_RECOVERY_FILES := $(filter $(TARGET_RECOVERY_OUT)/%, \
	$(ALL_PREBUILT) \
	$(ALL_COPIED_HEADERS) \
	$(ALL_GENERATED_SOURCES) \
	$(ALL_DEFAULT_INSTALLED_MODULES))

# Keys authorized to sign OTA packages this build will accept.  The
# build always uses dev-keys for this; release packaging tools will
# substitute other keys for this one.
@@ -634,39 +653,111 @@ $(RECOVERY_INSTALL_OTA_KEYS): $(OTA_PUBLIC_KEYS) $(DUMPKEY_JAR) $(extra_keys)
	@mkdir -p $(dir $@)
	java -jar $(DUMPKEY_JAR) $(PRIVATE_OTA_PUBLIC_KEYS) $(extra_keys) > $@

$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTFS) $(MKBOOTIMG) $(MINIGZIP) \
TARGET_RECOVERY_ROOT_TIMESTAMP := $(TARGET_RECOVERY_OUT)/root.ts

$(TARGET_RECOVERY_ROOT_TIMESTAMP): $(INTERNAL_RECOVERY_FILES) \
		$(INSTALLED_RAMDISK_TARGET) \
		$(INSTALLED_BOOTIMAGE_TARGET) \
		$(recovery_binary) \
		$(recovery_initrc) $(recovery_kernel) \
		$(recovery_initrc) \
		$(INSTALLED_2NDBOOTLOADER_TARGET) \
		$(recovery_build_prop) $(recovery_resource_deps) \
		$(recovery_fstab) \
		$(RECOVERY_INSTALL_OTA_KEYS)
	@echo ----- Making recovery image ------
	rm -rf $(TARGET_RECOVERY_OUT)
	@echo ----- Making recovery filesystem ------
	mkdir -p $(TARGET_RECOVERY_OUT)
	mkdir -p $(TARGET_RECOVERY_ROOT_OUT)
	mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/etc
	mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/tmp
	echo Copying baseline ramdisk...
	cp -R $(TARGET_ROOT_OUT) $(TARGET_RECOVERY_OUT)
ifneq ($(BOARD_USES_COMBINED_RECOVERY),true)
	rm $(TARGET_RECOVERY_ROOT_OUT)/init*.rc
endif
	echo Modifying ramdisk contents...
ifeq ($(BOARD_USES_COMBINED_RECOVERY),true)
	cp -f $(recovery_initrc) $(TARGET_RECOVERY_ROOT_OUT)/
else
	cp -f $(recovery_initrc) $(TARGET_RECOVERY_ROOT_OUT)/init.rc
endif
	cp -f $(recovery_binary) $(TARGET_RECOVERY_ROOT_OUT)/sbin/
ifneq ($(BOARD_USES_COMBINED_RECOVERY),true)
	rm -f $(TARGET_RECOVERY_ROOT_OUT)/init.*.rc
endif
	mkdir -p $(TARGET_RECOVERY_ROOT_OUT)/system/bin
	cp -rf $(recovery_resources_common) $(TARGET_RECOVERY_ROOT_OUT)/
	$(foreach item,$(recovery_resources_private), \
	  cp -rf $(item) $(TARGET_RECOVERY_ROOT_OUT)/)
	$(foreach item,$(recovery_fstab), \
	  cp -f $(item) $(TARGET_RECOVERY_ROOT_OUT)/etc/recovery.fstab)
	cp $(RECOVERY_INSTALL_OTA_KEYS) $(TARGET_RECOVERY_ROOT_OUT)/res/keys
ifeq ($(BOARD_USES_COMBINED_RECOVERY),true)
	cp $(INSTALLED_DEFAULT_PROP_TARGET) $(TARGET_RECOVERY_ROOT_OUT)/default.prop
	rm -rf $(TARGET_RECOVERY_ROOT_OUT)/misc
	mv $(TARGET_RECOVERY_ROOT_OUT)/etc $(TARGET_RECOVERY_ROOT_OUT)/misc
else
	cat $(INSTALLED_DEFAULT_PROP_TARGET) $(recovery_build_prop) \
	        > $(TARGET_RECOVERY_ROOT_OUT)/default.prop
	$(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) | $(MINIGZIP) > $(recovery_ramdisk)
endif
	@echo ----- Made recovery filesystem -------- $(TARGET_RECOVERY_ROOT_OUT)
	@touch $(TARGET_RECOVERY_ROOT_TIMESTAMP)

$(recovery_uncompressed_ramdisk): $(MINIGZIP) \
    $(TARGET_RECOVERY_ROOT_TIMESTAMP)
	@echo ----- Making uncompressed recovery ramdisk ------
	$(MKBOOTFS) $(TARGET_RECOVERY_ROOT_OUT) > $@

$(recovery_ramdisk): $(MKBOOTFS) \
    $(recovery_uncompressed_ramdisk)
	@echo ----- Making recovery ramdisk ------
	$(MINIGZIP) < $(recovery_uncompressed_ramdisk) > $@

ifeq ($(BOARD_USES_UBOOT),true)
INTERNAL_RECOVERYIMAGE_ARGS := -A ARM -O Linux -T RAMDisk -C gzip -n Image -d $(recovery_ramdisk)
recovery_uboot_ramdisk := $(recovery_ramdisk:%.img=%.ub)

$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKIMAGE) $(recovery_ramdisk) \
		$(recovery_kernel)
	@echo ----- Making recovery image ------
	$(MKIMAGE) $(INTERNAL_RECOVERYIMAGE_ARGS) $(recovery_uboot_ramdisk)
	@echo ----- Made recovery uboot ramdisk -------- $(recovery_uboot_ramdisk)
	$(hide) rm -f $@
	zip -qDj $@ $(recovery_uboot_ramdisk) $(recovery_kernel)
	@echo ----- Made recovery image \(zip\) -------- $@

else ifeq ($(BOARD_USES_UBOOT_MULTIIMAGE),true)
INTERNAL_RECOVERYIMAGE_ARGS := -A ARM -O Linux -T multi -C none -n Image
BOARD_UBOOT_ENTRY := $(strip $(BOARD_UBOOT_ENTRY))

ifdef BOARD_UBOOT_ENTRY
  INTERNAL_RECOVERYIMAGE_ARGS += -e $(BOARD_UBOOT_ENTRY)
endif

BOARD_UBOOT_LOAD := $(strip $(BOARD_UBOOT_LOAD))

ifdef BOARD_UBOOT_LOAD
  INTERNAL_RECOVERYIMAGE_ARGS += -a $(BOARD_UBOOT_LOAD)
endif

UBOOT_DATA_ARGS = $(shell echo $(recovery_kernel):$(recovery_ramdisk)|sed -e 's/[[:space:]]//g')
INTERNAL_RECOVERYIMAGE_ARGS += -d $(UBOOT_DATA_ARGS)

$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKIMAGE) \
		$(recovery_ramdisk) \
		$(recovery_kernel)
	@echo ----- Making recovery uboot image ------
	$(MKIMAGE) $(INTERNAL_RECOVERYIMAGE_ARGS) $@
	@echo ----- Made recovery uboot image -------- $@

else ifndef BOARD_CUSTOM_BOOTIMG_MK
$(INSTALLED_RECOVERYIMAGE_TARGET): $(MKBOOTIMG) \
		$(recovery_ramdisk) \
		$(recovery_kernel)
	@echo ----- Making recovery image ------
	$(MKBOOTIMG) $(INTERNAL_RECOVERYIMAGE_ARGS) --output $@
	@echo ----- Made recovery image -------- $@
	$(hide) $(call assert-max-image-size,$@,$(BOARD_RECOVERYIMAGE_PARTITION_SIZE),raw)
endif

else
INSTALLED_RECOVERYIMAGE_TARGET :=