Only enable zucchini if configuration file exists

Only enable zucchini if configuration file zucchini_config.txt exits
in target files and version in source and target is the same.

Without this patch zucchini would be enabled if configuration file
was missing from both target files.

Bug: 231204699
Test: Run ota package generation with zucchini_config.txt missing from
      both source and target zips. Confirm that zucchini is disabled.
Change-Id: Ia34998fd911d5860b38fe49fa5a88056a22d661e
This commit is contained in:
Håkan Kvist
2022-05-03 10:19:41 +02:00
parent e30f7e8be1
commit 3db1ef61de
2 changed files with 6 additions and 3 deletions

View File

@@ -1208,6 +1208,8 @@ def GenerateAbOtaPackage(target_file, output_file, source_file=None):
metadata.postcondition.partition_state)
if not ota_utils.IsZucchiniCompatible(source_file, target_file):
logger.warning(
"Builds doesn't support zucchini, or source/target don't have compatible zucchini versions. Disabling zucchini.")
OPTIONS.enable_zucchini = False
additional_args += ["--enable_zucchini",

View File

@@ -693,6 +693,7 @@ def IsZucchiniCompatible(source_file: str, target_file: str):
if os.path.exists(entry_path):
with open(entry_path, "r") as fp:
return fp.read()
else:
return ""
return ReadEntry(source_file, _ZUCCHINI_CONFIG_ENTRY_NAME) == ReadEntry(target_file, _ZUCCHINI_CONFIG_ENTRY_NAME)
return False
sourceEntry = ReadEntry(source_file, _ZUCCHINI_CONFIG_ENTRY_NAME)
targetEntry = ReadEntry(target_file, _ZUCCHINI_CONFIG_ENTRY_NAME)
return sourceEntry and targetEntry and sourceEntry == targetEntry