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

Commit 35f57e9b authored by Diogo Ferreira's avatar Diogo Ferreira Committed by Ethan Chen
Browse files

build: Add the factorypackage target

The build system generates several artifacts, among them update zips,
OTAs and update packages for fastboot.

Shipping devices typically need extra-special packages in order to
fulfill factory automation requirements.

This patches adds a "factorypackage" target that can be customized
by devices by providing a script that converts target files into the
desired format. The script path should be set into
TARGET_RELEASETOOL_FACTORY_FROM_TARGET_SCRIPT.

Change-Id: I993f12766c96274f096c5f6c6da5aaa32394abbc
parent c0b3f26f
Loading
Loading
Loading
Loading
+29 −0
Original line number Diff line number Diff line
@@ -1706,6 +1706,35 @@ bacon: otapackage
	$(hide) $(MD5SUM) $(CM_TARGET_PACKAGE) > $(CM_TARGET_PACKAGE).md5sum
	@echo -e ${CL_CYN}"Package Complete: $(CM_TARGET_PACKAGE)"${CL_RST}

# -----------------------------------------------------------------
# The factory package

name := $(TARGET_PRODUCT)-factory-$(FILE_NAME_TAG)

INTERNAL_FACTORY_PACKAGE_TARGET := $(PRODUCT_OUT)/$(name).zip

ifeq ($(TARGET_RELEASETOOLS_EXTENSIONS),)
# default to common dir for device vendor
$(INTERNAL_FACTORY_PACKAGE_TARGET): extensions := $(TARGET_DEVICE_DIR)/../common
else
$(INTERNAL_FACTORY_PACKAGE_TARGET): extensions := $(TARGET_RELEASETOOLS_EXTENSIONS)
endif

$(INTERNAL_FACTORY_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
	@echo -e ${CL_YLW}"Package:"${CL_RST}" $@"
	if [ -z $(TARGET_RELEASETOOL_FACTORY_FROM_TARGET_SCRIPT) ]; then \
          echo "Error: Factory script is not defined by target"; \
          exit 1; \
	fi
	MKBOOTIMG=$(BOARD_CUSTOM_BOOTIMG_MK) \
	$(TARGET_RELEASETOOL_FACTORY_FROM_TARGET_SCRIPT) -v \
	   -s $(extensions) \
	   -p $(HOST_OUT) \
	   $(BUILT_TARGET_FILES_PACKAGE) $@

.PHONY: factorypackage
factorypackage: $(INTERNAL_FACTORY_PACKAGE_TARGET)

endif    # recovery_fstab is defined
endif    # TARGET_NO_KERNEL != true
endif    # TARGET_DEVICE != generic*