Loading core/Makefile +38 −0 Original line number Original line Diff line number Diff line Loading @@ -1406,6 +1406,36 @@ userdatatarball-nodeps: $(FS_GET_STATS) $(build-userdatatarball-target) $(build-userdatatarball-target) # ----------------------------------------------------------------- # partition table image ifdef BOARD_BPT_INPUT_FILES BUILT_BPTIMAGE_TARGET := $(PRODUCT_OUT)/partition-table.img INTERNAL_BVBTOOL_MAKE_TABLE_ARGS := \ --output_gpt $(BUILT_BPTIMAGE_TARGET) \ --output_json $(PRODUCT_OUT)/partition-table.bpt \ $(foreach file, $(BOARD_BPT_INPUT_FILES), --input $(file)) ifdef BOARD_BPT_DISK_SIZE INTERNAL_BVBTOOL_MAKE_TABLE_ARGS += --disk_size $(BOARD_BPT_DISK_SIZE) endif define build-bptimage-target $(call pretty,"Target partition table image: $(INSTALLED_BPTIMAGE_TARGET)") $(hide) $(BPTTOOL) make_table $(INTERNAL_BVBTOOL_MAKE_TABLE_ARGS) $(BOARD_BPT_MAKE_TABLE_ARGS) endef INSTALLED_BPTIMAGE_TARGET := $(BUILT_BPTIMAGE_TARGET) $(INSTALLED_BPTIMAGE_TARGET): $(BPTTOOL) $(BOARD_BPT_INPUT_FILES) $(build-bptimage-target) .PHONY: bptimage-nodeps bptimage-nodeps: $(build-bptimage-target) endif # BOARD_BPT_INPUT_FILES # ----------------------------------------------------------------- # ----------------------------------------------------------------- # cache partition image # cache partition image ifdef BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE ifdef BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE Loading Loading @@ -1811,6 +1841,14 @@ ifeq ($(BOARD_BVB_ENABLE),true) $(hide) echo "board_bvb_key_path=$(BOARD_BVB_KEY_PATH)" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bvb_key_path=$(BOARD_BVB_KEY_PATH)" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bvb_rollback_index=$(BOARD_BVB_ROLLBACK_INDEX)" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bvb_rollback_index=$(BOARD_BVB_ROLLBACK_INDEX)" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bvb_add_image_hashes_args=$(BOARD_BVB_ADD_IMAGE_HASHES_ARGS)" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bvb_add_image_hashes_args=$(BOARD_BVB_ADD_IMAGE_HASHES_ARGS)" >> $(zip_root)/META/misc_info.txt endif ifdef BOARD_BPT_INPUT_FILES $(hide) echo "board_bpt_enable=true" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bpt_make_table_args=$(BOARD_BPT_MAKE_TABLE_ARGS)" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bpt_input_files=$(BOARD_BPT_INPUT_FILES)" >> $(zip_root)/META/misc_info.txt endif ifdef BOARD_BPT_DISK_SIZE $(hide) echo "board_bpt_disk_size=$(BOARD_BPT_DISK_SIZE)" >> $(zip_root)/META/misc_info.txt endif endif $(call generate-userimage-prop-dictionary, $(zip_root)/META/misc_info.txt) $(call generate-userimage-prop-dictionary, $(zip_root)/META/misc_info.txt) ifneq ($(INSTALLED_RECOVERYIMAGE_TARGET),) ifneq ($(INSTALLED_RECOVERYIMAGE_TARGET),) Loading core/config.mk +5 −0 Original line number Original line Diff line number Diff line Loading @@ -525,6 +525,11 @@ MKBOOTIMG := $(HOST_OUT_EXECUTABLES)/mkbootimg$(HOST_EXECUTABLE_SUFFIX) else else MKBOOTIMG := $(BOARD_CUSTOM_MKBOOTIMG) MKBOOTIMG := $(BOARD_CUSTOM_MKBOOTIMG) endif endif ifeq (,$(strip $(BOARD_CUSTOM_BPTTOOL))) BPTTOOL := $(HOST_OUT_EXECUTABLES)/bpttool$(HOST_EXECUTABLE_SUFFIX) else BPTTOOL := $(BOARD_CUSTOM_BPTTOOL) endif ifeq (,$(strip $(BOARD_CUSTOM_BVBTOOL))) ifeq (,$(strip $(BOARD_CUSTOM_BVBTOOL))) BVBTOOL := $(HOST_OUT_EXECUTABLES)/bvbtool$(HOST_EXECUTABLE_SUFFIX) BVBTOOL := $(HOST_OUT_EXECUTABLES)/bvbtool$(HOST_EXECUTABLE_SUFFIX) else else Loading core/main.mk +5 −0 Original line number Original line Diff line number Diff line Loading @@ -77,6 +77,7 @@ dont_bother_goals := clean clobber dataclean installclean \ stnod systemtarball-nodeps \ stnod systemtarball-nodeps \ userdataimage-nodeps userdatatarball-nodeps \ userdataimage-nodeps userdatatarball-nodeps \ cacheimage-nodeps \ cacheimage-nodeps \ bptimage-nodeps \ vendorimage-nodeps \ vendorimage-nodeps \ ramdisk-nodeps \ ramdisk-nodeps \ bootimage-nodeps \ bootimage-nodeps \ Loading Loading @@ -905,6 +906,9 @@ userdatatarball: $(INSTALLED_USERDATATARBALL_TARGET) .PHONY: cacheimage .PHONY: cacheimage cacheimage: $(INSTALLED_CACHEIMAGE_TARGET) cacheimage: $(INSTALLED_CACHEIMAGE_TARGET) .PHONY: bptimage bptimage: $(INSTALLED_BPTIMAGE_TARGET) .PHONY: vendorimage .PHONY: vendorimage vendorimage: $(INSTALLED_VENDORIMAGE_TARGET) vendorimage: $(INSTALLED_VENDORIMAGE_TARGET) Loading Loading @@ -934,6 +938,7 @@ droidcore: files \ $(INSTALLED_RECOVERYIMAGE_TARGET) \ $(INSTALLED_RECOVERYIMAGE_TARGET) \ $(INSTALLED_USERDATAIMAGE_TARGET) \ $(INSTALLED_USERDATAIMAGE_TARGET) \ $(INSTALLED_CACHEIMAGE_TARGET) \ $(INSTALLED_CACHEIMAGE_TARGET) \ $(INSTALLED_BPTIMAGE_TARGET) \ $(INSTALLED_VENDORIMAGE_TARGET) \ $(INSTALLED_VENDORIMAGE_TARGET) \ $(INSTALLED_FILES_FILE) \ $(INSTALLED_FILES_FILE) \ $(INSTALLED_FILES_FILE_VENDOR) $(INSTALLED_FILES_FILE_VENDOR) Loading tools/releasetools/add_img_to_target_files.py +32 −0 Original line number Original line Diff line number Diff line Loading @@ -228,6 +228,35 @@ def AddUserdata(output_zip, prefix="IMAGES/"): shutil.rmtree(temp_dir) shutil.rmtree(temp_dir) def AddPartitionTable(output_zip, prefix="IMAGES/"): """Create a partition table image and store it in output_zip.""" _, img_file_name = tempfile.mkstemp() _, bpt_file_name = tempfile.mkstemp() # use BPTTOOL from environ, or "bpttool" if empty or not set. bpttool = os.getenv("BPTTOOL") or "bpttool" cmd = [bpttool, "make_table", "--output_json", bpt_file_name, "--output_gpt", img_file_name] input_files_str = OPTIONS.info_dict["board_bpt_input_files"] input_files = input_files_str.split(" ") for i in input_files: cmd.extend(["--input", i]) disk_size = OPTIONS.info_dict.get("board_bpt_disk_size") if disk_size: cmd.extend(["--disk_size", disk_size]) args = OPTIONS.info_dict.get("board_bpt_make_table_args") if args: cmd.extend(shlex.split(args)) p = common.Run(cmd, stdout=subprocess.PIPE) p.communicate() assert p.returncode == 0, "bpttool make_table failed" common.ZipWrite(output_zip, img_file_name, prefix + "partition-table.img") common.ZipWrite(output_zip, bpt_file_name, prefix + "partition-table.bpt") def AddCache(output_zip, prefix="IMAGES/"): def AddCache(output_zip, prefix="IMAGES/"): """Create an empty cache image and store it in output_zip.""" """Create an empty cache image and store it in output_zip.""" Loading Loading @@ -362,6 +391,9 @@ def AddImagesToTargetFiles(filename): AddUserdata(output_zip) AddUserdata(output_zip) banner("cache") banner("cache") AddCache(output_zip) AddCache(output_zip) if OPTIONS.info_dict.get("board_bpt_enable", None) == "true": banner("partition-table") AddPartitionTable(output_zip) # For devices using A/B update, copy over images from RADIO/ to IMAGES/ and # For devices using A/B update, copy over images from RADIO/ to IMAGES/ and # make sure we have all the needed images ready under IMAGES/. # make sure we have all the needed images ready under IMAGES/. Loading Loading
core/Makefile +38 −0 Original line number Original line Diff line number Diff line Loading @@ -1406,6 +1406,36 @@ userdatatarball-nodeps: $(FS_GET_STATS) $(build-userdatatarball-target) $(build-userdatatarball-target) # ----------------------------------------------------------------- # partition table image ifdef BOARD_BPT_INPUT_FILES BUILT_BPTIMAGE_TARGET := $(PRODUCT_OUT)/partition-table.img INTERNAL_BVBTOOL_MAKE_TABLE_ARGS := \ --output_gpt $(BUILT_BPTIMAGE_TARGET) \ --output_json $(PRODUCT_OUT)/partition-table.bpt \ $(foreach file, $(BOARD_BPT_INPUT_FILES), --input $(file)) ifdef BOARD_BPT_DISK_SIZE INTERNAL_BVBTOOL_MAKE_TABLE_ARGS += --disk_size $(BOARD_BPT_DISK_SIZE) endif define build-bptimage-target $(call pretty,"Target partition table image: $(INSTALLED_BPTIMAGE_TARGET)") $(hide) $(BPTTOOL) make_table $(INTERNAL_BVBTOOL_MAKE_TABLE_ARGS) $(BOARD_BPT_MAKE_TABLE_ARGS) endef INSTALLED_BPTIMAGE_TARGET := $(BUILT_BPTIMAGE_TARGET) $(INSTALLED_BPTIMAGE_TARGET): $(BPTTOOL) $(BOARD_BPT_INPUT_FILES) $(build-bptimage-target) .PHONY: bptimage-nodeps bptimage-nodeps: $(build-bptimage-target) endif # BOARD_BPT_INPUT_FILES # ----------------------------------------------------------------- # ----------------------------------------------------------------- # cache partition image # cache partition image ifdef BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE ifdef BOARD_CACHEIMAGE_FILE_SYSTEM_TYPE Loading Loading @@ -1811,6 +1841,14 @@ ifeq ($(BOARD_BVB_ENABLE),true) $(hide) echo "board_bvb_key_path=$(BOARD_BVB_KEY_PATH)" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bvb_key_path=$(BOARD_BVB_KEY_PATH)" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bvb_rollback_index=$(BOARD_BVB_ROLLBACK_INDEX)" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bvb_rollback_index=$(BOARD_BVB_ROLLBACK_INDEX)" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bvb_add_image_hashes_args=$(BOARD_BVB_ADD_IMAGE_HASHES_ARGS)" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bvb_add_image_hashes_args=$(BOARD_BVB_ADD_IMAGE_HASHES_ARGS)" >> $(zip_root)/META/misc_info.txt endif ifdef BOARD_BPT_INPUT_FILES $(hide) echo "board_bpt_enable=true" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bpt_make_table_args=$(BOARD_BPT_MAKE_TABLE_ARGS)" >> $(zip_root)/META/misc_info.txt $(hide) echo "board_bpt_input_files=$(BOARD_BPT_INPUT_FILES)" >> $(zip_root)/META/misc_info.txt endif ifdef BOARD_BPT_DISK_SIZE $(hide) echo "board_bpt_disk_size=$(BOARD_BPT_DISK_SIZE)" >> $(zip_root)/META/misc_info.txt endif endif $(call generate-userimage-prop-dictionary, $(zip_root)/META/misc_info.txt) $(call generate-userimage-prop-dictionary, $(zip_root)/META/misc_info.txt) ifneq ($(INSTALLED_RECOVERYIMAGE_TARGET),) ifneq ($(INSTALLED_RECOVERYIMAGE_TARGET),) Loading
core/config.mk +5 −0 Original line number Original line Diff line number Diff line Loading @@ -525,6 +525,11 @@ MKBOOTIMG := $(HOST_OUT_EXECUTABLES)/mkbootimg$(HOST_EXECUTABLE_SUFFIX) else else MKBOOTIMG := $(BOARD_CUSTOM_MKBOOTIMG) MKBOOTIMG := $(BOARD_CUSTOM_MKBOOTIMG) endif endif ifeq (,$(strip $(BOARD_CUSTOM_BPTTOOL))) BPTTOOL := $(HOST_OUT_EXECUTABLES)/bpttool$(HOST_EXECUTABLE_SUFFIX) else BPTTOOL := $(BOARD_CUSTOM_BPTTOOL) endif ifeq (,$(strip $(BOARD_CUSTOM_BVBTOOL))) ifeq (,$(strip $(BOARD_CUSTOM_BVBTOOL))) BVBTOOL := $(HOST_OUT_EXECUTABLES)/bvbtool$(HOST_EXECUTABLE_SUFFIX) BVBTOOL := $(HOST_OUT_EXECUTABLES)/bvbtool$(HOST_EXECUTABLE_SUFFIX) else else Loading
core/main.mk +5 −0 Original line number Original line Diff line number Diff line Loading @@ -77,6 +77,7 @@ dont_bother_goals := clean clobber dataclean installclean \ stnod systemtarball-nodeps \ stnod systemtarball-nodeps \ userdataimage-nodeps userdatatarball-nodeps \ userdataimage-nodeps userdatatarball-nodeps \ cacheimage-nodeps \ cacheimage-nodeps \ bptimage-nodeps \ vendorimage-nodeps \ vendorimage-nodeps \ ramdisk-nodeps \ ramdisk-nodeps \ bootimage-nodeps \ bootimage-nodeps \ Loading Loading @@ -905,6 +906,9 @@ userdatatarball: $(INSTALLED_USERDATATARBALL_TARGET) .PHONY: cacheimage .PHONY: cacheimage cacheimage: $(INSTALLED_CACHEIMAGE_TARGET) cacheimage: $(INSTALLED_CACHEIMAGE_TARGET) .PHONY: bptimage bptimage: $(INSTALLED_BPTIMAGE_TARGET) .PHONY: vendorimage .PHONY: vendorimage vendorimage: $(INSTALLED_VENDORIMAGE_TARGET) vendorimage: $(INSTALLED_VENDORIMAGE_TARGET) Loading Loading @@ -934,6 +938,7 @@ droidcore: files \ $(INSTALLED_RECOVERYIMAGE_TARGET) \ $(INSTALLED_RECOVERYIMAGE_TARGET) \ $(INSTALLED_USERDATAIMAGE_TARGET) \ $(INSTALLED_USERDATAIMAGE_TARGET) \ $(INSTALLED_CACHEIMAGE_TARGET) \ $(INSTALLED_CACHEIMAGE_TARGET) \ $(INSTALLED_BPTIMAGE_TARGET) \ $(INSTALLED_VENDORIMAGE_TARGET) \ $(INSTALLED_VENDORIMAGE_TARGET) \ $(INSTALLED_FILES_FILE) \ $(INSTALLED_FILES_FILE) \ $(INSTALLED_FILES_FILE_VENDOR) $(INSTALLED_FILES_FILE_VENDOR) Loading
tools/releasetools/add_img_to_target_files.py +32 −0 Original line number Original line Diff line number Diff line Loading @@ -228,6 +228,35 @@ def AddUserdata(output_zip, prefix="IMAGES/"): shutil.rmtree(temp_dir) shutil.rmtree(temp_dir) def AddPartitionTable(output_zip, prefix="IMAGES/"): """Create a partition table image and store it in output_zip.""" _, img_file_name = tempfile.mkstemp() _, bpt_file_name = tempfile.mkstemp() # use BPTTOOL from environ, or "bpttool" if empty or not set. bpttool = os.getenv("BPTTOOL") or "bpttool" cmd = [bpttool, "make_table", "--output_json", bpt_file_name, "--output_gpt", img_file_name] input_files_str = OPTIONS.info_dict["board_bpt_input_files"] input_files = input_files_str.split(" ") for i in input_files: cmd.extend(["--input", i]) disk_size = OPTIONS.info_dict.get("board_bpt_disk_size") if disk_size: cmd.extend(["--disk_size", disk_size]) args = OPTIONS.info_dict.get("board_bpt_make_table_args") if args: cmd.extend(shlex.split(args)) p = common.Run(cmd, stdout=subprocess.PIPE) p.communicate() assert p.returncode == 0, "bpttool make_table failed" common.ZipWrite(output_zip, img_file_name, prefix + "partition-table.img") common.ZipWrite(output_zip, bpt_file_name, prefix + "partition-table.bpt") def AddCache(output_zip, prefix="IMAGES/"): def AddCache(output_zip, prefix="IMAGES/"): """Create an empty cache image and store it in output_zip.""" """Create an empty cache image and store it in output_zip.""" Loading Loading @@ -362,6 +391,9 @@ def AddImagesToTargetFiles(filename): AddUserdata(output_zip) AddUserdata(output_zip) banner("cache") banner("cache") AddCache(output_zip) AddCache(output_zip) if OPTIONS.info_dict.get("board_bpt_enable", None) == "true": banner("partition-table") AddPartitionTable(output_zip) # For devices using A/B update, copy over images from RADIO/ to IMAGES/ and # For devices using A/B update, copy over images from RADIO/ to IMAGES/ and # make sure we have all the needed images ready under IMAGES/. # make sure we have all the needed images ready under IMAGES/. Loading