From 0480850f0ba62cb59e80d1a3be61c4c4336bf987 Mon Sep 17 00:00:00 2001 From: Tao Bao Date: Thu, 25 Jul 2019 23:11:41 -0700 Subject: [PATCH] releasetools: Move recovery-two-step.img to OTA/. It used to be packed at IMAGES/recovery-two-step.img, but to serve OTA purpose only. Test: `m dist` with a non-A/B target. Check the file in the generated target_files.zip. Test: Create two-step package. Check that recovery-two-step.img is used. Change-Id: Iec6a73c682e0f844cd8c0b758c9470fa35dd15d8 --- tools/releasetools/add_img_to_target_files.py | 4 ++-- tools/releasetools/img_from_target_files.py | 2 -- tools/releasetools/ota_from_target_files.py | 13 ++++++------- tools/releasetools/sign_target_files_apks.py | 3 ++- tools/releasetools/validate_target_files.py | 5 ++++- 5 files changed, 14 insertions(+), 13 deletions(-) diff --git a/tools/releasetools/add_img_to_target_files.py b/tools/releasetools/add_img_to_target_files.py index e177828e9..bdb34b8c3 100755 --- a/tools/releasetools/add_img_to_target_files.py +++ b/tools/releasetools/add_img_to_target_files.py @@ -810,11 +810,11 @@ def AddImagesToTargetFiles(filename): banner("recovery (two-step image)") # The special recovery.img for two-step package use. recovery_two_step_image = common.GetBootableImage( - "IMAGES/recovery-two-step.img", "recovery-two-step.img", + "OTA/recovery-two-step.img", "recovery-two-step.img", OPTIONS.input_tmp, "RECOVERY", two_step_image=True) assert recovery_two_step_image, "Failed to create recovery-two-step.img." recovery_two_step_image_path = os.path.join( - OPTIONS.input_tmp, "IMAGES", "recovery-two-step.img") + OPTIONS.input_tmp, "OTA", "recovery-two-step.img") if not os.path.exists(recovery_two_step_image_path): recovery_two_step_image.WriteToDir(OPTIONS.input_tmp) if output_zip: diff --git a/tools/releasetools/img_from_target_files.py b/tools/releasetools/img_from_target_files.py index 8fb98717b..e4c985234 100755 --- a/tools/releasetools/img_from_target_files.py +++ b/tools/releasetools/img_from_target_files.py @@ -103,8 +103,6 @@ def CopyUserImages(input_tmp, output_zip): continue if not image.endswith(".img"): continue - if image == "recovery-two-step.img": - continue if OPTIONS.put_super: if image == "super_empty.img": continue diff --git a/tools/releasetools/ota_from_target_files.py b/tools/releasetools/ota_from_target_files.py index db7e86c81..4472b4a91 100755 --- a/tools/releasetools/ota_from_target_files.py +++ b/tools/releasetools/ota_from_target_files.py @@ -240,7 +240,7 @@ METADATA_NAME = 'META-INF/com/android/metadata' POSTINSTALL_CONFIG = 'META/postinstall_config.txt' DYNAMIC_PARTITION_INFO = 'META/dynamic_partitions_info.txt' AB_PARTITIONS = 'META/ab_partitions.txt' -UNZIP_PATTERN = ['IMAGES/*', 'META/*', 'RADIO/*'] +UNZIP_PATTERN = ['IMAGES/*', 'META/*', 'OTA/*', 'RADIO/*'] RETROFIT_DAP_UNZIP_PATTERN = ['OTA/super_*.img', AB_PARTITIONS] @@ -681,13 +681,12 @@ def _WriteRecoveryImageToBoot(script, output_zip): recovery_two_step_img_name = "recovery-two-step.img" recovery_two_step_img_path = os.path.join( - OPTIONS.input_tmp, "IMAGES", recovery_two_step_img_name) + OPTIONS.input_tmp, "OTA", recovery_two_step_img_name) if os.path.exists(recovery_two_step_img_path): - recovery_two_step_img = common.GetBootableImage( - recovery_two_step_img_name, recovery_two_step_img_name, - OPTIONS.input_tmp, "RECOVERY") - common.ZipWriteStr( - output_zip, recovery_two_step_img_name, recovery_two_step_img.data) + common.ZipWrite( + output_zip, + recovery_two_step_img_path, + arcname=recovery_two_step_img_name) logger.info( "two-step package: using %s in stage 1/3", recovery_two_step_img_name) script.WriteRawImage("/boot", recovery_two_step_img_name) diff --git a/tools/releasetools/sign_target_files_apks.py b/tools/releasetools/sign_target_files_apks.py index 2f3642b22..3119afa65 100755 --- a/tools/releasetools/sign_target_files_apks.py +++ b/tools/releasetools/sign_target_files_apks.py @@ -423,7 +423,8 @@ def ProcessTargetFiles(input_tf_zip, output_tf_zip, misc_info, if filename.startswith("IMAGES/"): continue - # Skip split super images, which will be re-generated during signing. + # Skip OTA-specific images (e.g. split super images), which will be + # re-generated during signing. if filename.startswith("OTA/") and filename.endswith(".img"): continue diff --git a/tools/releasetools/validate_target_files.py b/tools/releasetools/validate_target_files.py index 435e7f2da..d189499dc 100755 --- a/tools/releasetools/validate_target_files.py +++ b/tools/releasetools/validate_target_files.py @@ -257,7 +257,10 @@ def ValidateVerifiedBootImages(input_tmp, info_dict, options): if verity_key is None: verity_key = info_dict['verity_key'] + '.x509.pem' for image in ('boot.img', 'recovery.img', 'recovery-two-step.img'): - image_path = os.path.join(input_tmp, 'IMAGES', image) + if image == 'recovery-two-step.img': + image_path = os.path.join(input_tmp, 'OTA', image) + else: + image_path = os.path.join(input_tmp, 'IMAGES', image) if not os.path.exists(image_path): continue