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

Commit 91c1338b authored by Diogo Ferreira's avatar Diogo Ferreira
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 6285eea2
Loading
Loading
Loading
Loading
+30 −0
Original line number Diff line number Diff line
@@ -1549,6 +1549,36 @@ $(INTERNAL_UPDATE_PACKAGE_TARGET): $(BUILT_TARGET_FILES_PACKAGE) $(DISTTOOLS)
.PHONY: updatepackage
updatepackage: $(INTERNAL_UPDATE_PACKAGE_TARGET)

# -----------------------------------------------------------------
# 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*