Add BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT flag.
If set to true, - super.img is built from images in $PRODUCT_OUT - super.img is built to $PRODUCT_OUT - super.img is built when 'make'. 'make dist' still builds super image from images in target files to intermediates directory. This flag is useful for virtual devices, but isn't intended to be set for actual devices. For actual devices, userspace fastboot should flash super_empty.img and individual user images separately. Test: on cuttlefish (flag is set), make # generates $OUT/super.img make superimage # generates $OUT/super.img Test: on real non-retrofit DAP device (flag is not set) make # no super.img is generated make superimage # generates $OUT/obj/PACKAGING/.../super.img make dist # generates out/dist/super.img Bug: 113175337 Change-Id: Ieb81e4fbb663bb4b69e9962c3fa9f16b03aeb907
This commit is contained in:
parent
d540f5a9a5
commit
acd862aed3
2 changed files with 72 additions and 23 deletions
|
@ -4441,7 +4441,7 @@ $(PROGUARD_DICT_ZIP) :
|
|||
endif # TARGET_BUILD_APPS
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# super partition image
|
||||
# super partition image (dist)
|
||||
|
||||
ifeq (true,$(PRODUCT_BUILD_SUPER_PARTITION))
|
||||
|
||||
|
@ -4456,31 +4456,83 @@ define dump-super-image-info
|
|||
endef
|
||||
|
||||
ifneq (true,$(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS))
|
||||
INSTALLED_SUPERIMAGE_TARGET := $(call intermediates-dir-for,PACKAGING,super.img)/super.img
|
||||
$(INSTALLED_SUPERIMAGE_TARGET): extracted_input_target_files := $(patsubst %.zip,%,$(BUILT_TARGET_FILES_PACKAGE))
|
||||
$(INSTALLED_SUPERIMAGE_TARGET): $(LPMAKE) $(BUILT_TARGET_FILES_PACKAGE) $(BUILD_SUPER_IMAGE)
|
||||
$(call pretty,"Target super fs image: $@")
|
||||
|
||||
# For real devices and for dist builds, build super image from target files to an intermediate directory.
|
||||
INTERNAL_SUPERIMAGE_DIST_TARGET := $(call intermediates-dir-for,PACKAGING,super.img)/super.img
|
||||
$(INTERNAL_SUPERIMAGE_DIST_TARGET): extracted_input_target_files := $(patsubst %.zip,%,$(BUILT_TARGET_FILES_PACKAGE))
|
||||
$(INTERNAL_SUPERIMAGE_DIST_TARGET): $(LPMAKE) $(BUILT_TARGET_FILES_PACKAGE) $(BUILD_SUPER_IMAGE)
|
||||
$(call pretty,"Target super fs image from target files: $@")
|
||||
PATH=$(dir $(LPMAKE)):$$PATH \
|
||||
$(BUILD_SUPER_IMAGE) -v $(extracted_input_target_files) $@
|
||||
|
||||
# supernod uses images in the $(PRODUCT_OUT) directory instead of images from target files package.
|
||||
.PHONY: superimage-nodeps supernod
|
||||
superimage-nodeps supernod: intermediates := $(call intermediates-dir-for,PACKAGING,superimage-nodeps)
|
||||
superimage-nodeps supernod: | $(LPMAKE) $(BUILD_SUPER_IMAGE) \
|
||||
$(foreach p, $(BOARD_SUPER_PARTITION_PARTITION_LIST), $(INSTALLED_$(call to-upper,$(p))IMAGE_TARGET))
|
||||
$(call pretty,"make $(INSTALLED_SUPERIMAGE_TARGET): ignoring dependencies")
|
||||
mkdir -p $(intermediates)
|
||||
rm -rf $(intermediates)/misc_info.txt
|
||||
$(call dump-super-image-info,$(intermediates)/misc_info.txt)
|
||||
$(foreach p,$(BOARD_SUPER_PARTITION_PARTITION_LIST), \
|
||||
echo "$(p)_image=$(INSTALLED_$(call to-upper,$(p))IMAGE_TARGET)" >> $(intermediates)/misc_info.txt;)
|
||||
mkdir -p $(dir $(INSTALLED_SUPERIMAGE_TARGET))
|
||||
PATH=$(dir $(LPMAKE)):$$PATH \
|
||||
$(BUILD_SUPER_IMAGE) -v $(intermediates)/misc_info.txt $(INSTALLED_SUPERIMAGE_TARGET)
|
||||
$(call dist-for-goals,dist_files,$(INTERNAL_SUPERIMAGE_DIST_TARGET))
|
||||
|
||||
.PHONY: superimage_dist
|
||||
superimage_dist: $(INTERNAL_SUPERIMAGE_DIST_TARGET)
|
||||
|
||||
endif # PRODUCT_RETROFIT_DYNAMIC_PARTITIONS != "true"
|
||||
endif # BOARD_SUPER_PARTITION_SIZE != ""
|
||||
endif # PRODUCT_BUILD_SUPER_PARTITION == "true"
|
||||
|
||||
$(call dist-for-goals,dist_files,$(INSTALLED_SUPERIMAGE_TARGET))
|
||||
# -----------------------------------------------------------------
|
||||
# super partition image for development
|
||||
|
||||
ifeq (true,$(PRODUCT_BUILD_SUPER_PARTITION))
|
||||
ifneq ($(BOARD_SUPER_PARTITION_SIZE),)
|
||||
ifneq (true,$(PRODUCT_RETROFIT_DYNAMIC_PARTITIONS))
|
||||
|
||||
# Build super.img by using $(INSTALLED_*IMAGE_TARGET) to $(1)
|
||||
# $(1): built image path
|
||||
# $(2): misc_info.txt path; its contents should match expectation of build_super_image.py
|
||||
define build-superimage-target
|
||||
mkdir -p $(dir $(2))
|
||||
rm -rf $(2)
|
||||
$(call dump-super-image-info,$(2))
|
||||
$(foreach p,$(BOARD_SUPER_PARTITION_PARTITION_LIST), \
|
||||
echo "$(p)_image=$(INSTALLED_$(call to-upper,$(p))IMAGE_TARGET)" >> $(2);)
|
||||
mkdir -p $(dir $(1))
|
||||
PATH=$(dir $(LPMAKE)):$$PATH \
|
||||
$(BUILD_SUPER_IMAGE) -v $(2) $(1)
|
||||
endef
|
||||
|
||||
INSTALLED_SUPERIMAGE_TARGET := $(PRODUCT_OUT)/super.img
|
||||
INSTALLED_SUPERIMAGE_DEPENDENCIES := $(LPMAKE) $(BUILD_SUPER_IMAGE) \
|
||||
$(foreach p, $(BOARD_SUPER_PARTITION_PARTITION_LIST), $(INSTALLED_$(call to-upper,$(p))IMAGE_TARGET))
|
||||
|
||||
# If BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT is set, super.img is built from images in the
|
||||
# $(PRODUCT_OUT) directory, and is built to $(PRODUCT_OUT)/super.img. Also, it will
|
||||
# be built for non-dist builds. This is useful for devices that uses super.img directly, e.g.
|
||||
# virtual devices.
|
||||
ifeq (true,$(BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT))
|
||||
$(INSTALLED_SUPERIMAGE_TARGET): $(INSTALLED_SUPERIMAGE_DEPENDENCIES)
|
||||
$(call pretty,"Target super fs image for debug: $@")
|
||||
$(call build-superimage-target,$(INSTALLED_SUPERIMAGE_TARGET),\
|
||||
$(call intermediates-dir-for,PACKAGING,superimage_debug)/misc_info.txt)
|
||||
|
||||
droidcore: $(INSTALLED_SUPERIMAGE_TARGET)
|
||||
|
||||
# For devices that uses super image directly, the superimage target points to the file in $(PRODUCT_OUT).
|
||||
.PHONY: superimage
|
||||
superimage: $(INSTALLED_SUPERIMAGE_TARGET)
|
||||
endif # BOARD_BUILD_SUPER_IMAGE_BY_DEFAULT
|
||||
|
||||
# Build $(PRODUCT_OUT)/super.img without dependencies.
|
||||
.PHONY: superimage-nodeps supernod
|
||||
superimage-nodeps supernod: intermediates :=
|
||||
superimage-nodeps supernod: | $(INSTALLED_SUPERIMAGE_DEPENDENCIES)
|
||||
$(call pretty,"make $(INSTALLED_SUPERIMAGE_TARGET): ignoring dependencies")
|
||||
$(call build-superimage-target,$(INSTALLED_SUPERIMAGE_TARGET),\
|
||||
$(call intermediates-dir-for,PACKAGING,superimage-nodeps)/misc_info.txt)
|
||||
|
||||
endif # PRODUCT_RETROFIT_DYNAMIC_PARTITIONS != "true"
|
||||
endif # BOARD_SUPER_PARTITION_SIZE != ""
|
||||
endif # PRODUCT_BUILD_SUPER_PARTITION == "true"
|
||||
|
||||
# -----------------------------------------------------------------
|
||||
# super empty image
|
||||
|
||||
ifeq (true,$(PRODUCT_BUILD_SUPER_PARTITION))
|
||||
ifneq ($(BOARD_SUPER_PARTITION_SIZE),)
|
||||
|
||||
INSTALLED_SUPERIMAGE_EMPTY_TARGET := $(PRODUCT_OUT)/super_empty.img
|
||||
$(INSTALLED_SUPERIMAGE_EMPTY_TARGET): intermediates := $(call intermediates-dir-for,PACKAGING,super_empty)
|
||||
|
|
|
@ -1469,9 +1469,6 @@ odmimage: $(INSTALLED_ODMIMAGE_TARGET)
|
|||
.PHONY: systemotherimage
|
||||
systemotherimage: $(INSTALLED_SYSTEMOTHERIMAGE_TARGET)
|
||||
|
||||
.PHONY: superimage
|
||||
superimage: $(INSTALLED_SUPERIMAGE_TARGET)
|
||||
|
||||
.PHONY: superimage_empty
|
||||
superimage_empty: $(INSTALLED_SUPERIMAGE_EMPTY_TARGET)
|
||||
|
||||
|
|
Loading…
Reference in a new issue