From 95a95c3a5e96a7c26a4f5cd61d126725363c2c8e Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Fri, 16 Jun 2017 15:30:23 -0700 Subject: [PATCH] Allow packing custom radio images into target_files zip. Radio images are added to INSTALLED_RADIOIMAGE_TARGET, which by default will be packed under RADIO/ in a target_files zip. This CL introduces BOARD_PACK_RADIOIMAGES that allows additionally copying them into IMAGES/, which will then be included into -img.zip. Bug: 62195105 Test: Define BOARD_PACK_RADIOIMAGES and `m dist`. Check the generated target_files zip and -img.zip. Change-Id: I3deafd2dfecd1d4dbfdfc2d002fc40ef22fb60ea --- core/Makefile | 5 ++++ tools/releasetools/add_img_to_target_files.py | 25 +++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/core/Makefile b/core/Makefile index b6a9780515..9aae8ca795 100644 --- a/core/Makefile +++ b/core/Makefile @@ -2409,6 +2409,11 @@ ifdef BOARD_AVB_DTBO_KEY_PATH endif # BOARD_AVB_DTBO_KEY_PATH endif # BOARD_AVB_ENABLE endif # BOARD_PREBUILT_DTBOIMAGE + @# The radio images in BOARD_PACK_RADIOIMAGES will be additionally copied from RADIO/ into + @# IMAGES/, which then will be added into -img.zip. Such images must be listed in + @# INSTALLED_RADIOIMAGE_TARGET. + $(hide) $(foreach part,$(BOARD_PACK_RADIOIMAGES), \ + echo $(part) >> $(zip_root)/META/pack_radioimages.txt;) @# Run fs_config on all the system, vendor, boot ramdisk, @# and recovery ramdisk files in the zip, and save the output $(hide) $(call fs_config,$(zip_root)/SYSTEM,system/) > $(zip_root)/META/filesystem_config.txt diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py index ff7109ab17..23c179f07c 100755 --- a/tools/releasetools/add_img_to_target_files.py +++ b/tools/releasetools/add_img_to_target_files.py @@ -654,6 +654,31 @@ def AddImagesToTargetFiles(filename): if output_zip: OPTIONS.replace_updated_files_list.append(care_map_path) + # Radio images that need to be packed into IMAGES/, and product-img.zip. + pack_radioimages = os.path.join( + OPTIONS.input_tmp, "META", "pack_radioimages.txt") + if os.path.exists(pack_radioimages): + with open(pack_radioimages, 'r') as f: + lines = f.readlines() + for line in lines: + img_name = line.strip() + _, ext = os.path.splitext(img_name) + if not ext: + img_name += ".img" + prebuilt_path = os.path.join(OPTIONS.input_tmp, "IMAGES", img_name) + if os.path.exists(prebuilt_path): + print("%s already exists, no need to overwrite..." % (img_name,)) + continue + + img_radio_path = os.path.join(OPTIONS.input_tmp, "RADIO", img_name) + assert os.path.exists(img_radio_path), \ + "Failed to find %s at %s" % (img_name, img_radio_path) + if output_zip: + common.ZipWrite(output_zip, img_radio_path, + os.path.join("IMAGES", img_name)) + else: + shutil.copy(img_radio_path, prebuilt_path) + if output_zip: common.ZipClose(output_zip) if OPTIONS.replace_updated_files_list: