Loading tools/releasetools/apex_utils.py +3 −13 Original line number Diff line number Diff line Loading @@ -425,15 +425,12 @@ def SignCompressedApex(avbtool, apex_file, payload_key, container_key, Returns: The path to the signed APEX file. """ debugfs_path = os.path.join(OPTIONS.search_path, 'bin', 'debugfs_static') # 1. Decompress original_apex inside compressed apex. original_apex_file = common.MakeTempFile(prefix='original-apex-', suffix='.apex') # Decompression target path should not exist os.remove(original_apex_file) common.RunAndCheckOutput(['deapexer', '--debugfs_path', debugfs_path, 'decompress', '--input', apex_file, common.RunAndCheckOutput(['deapexer', 'decompress', '--input', apex_file, '--output', original_apex_file]) # 2. Sign original_apex Loading Loading @@ -495,9 +492,7 @@ def SignApex(avbtool, apex_data, payload_key, container_key, container_pw, with open(apex_file, 'wb') as output_fp: output_fp.write(apex_data) debugfs_path = os.path.join(OPTIONS.search_path, 'bin', 'debugfs_static') cmd = ['deapexer', '--debugfs_path', debugfs_path, 'info', '--print-type', apex_file] cmd = ['deapexer', 'info', '--print-type', apex_file] try: apex_type = common.RunAndCheckOutput(cmd).strip() Loading Loading @@ -571,10 +566,6 @@ def GetApexInfoForPartition(input_file, partition): apex_infos = [] debugfs_path = "debugfs" if OPTIONS.search_path: debugfs_path = os.path.join(OPTIONS.search_path, "bin", "debugfs_static") deapexer = 'deapexer' if OPTIONS.search_path: deapexer_path = os.path.join(OPTIONS.search_path, "bin", "deapexer") Loading @@ -594,8 +585,7 @@ def GetApexInfoForPartition(input_file, partition): apex_info.version = manifest.version # Check if the file is compressed or not apex_type = RunAndCheckOutput([ deapexer, "--debugfs_path", debugfs_path, 'info', '--print-type', apex_filepath]).rstrip() deapexer, 'info', '--print-type', apex_filepath]).rstrip() if apex_type == 'COMPRESSED': apex_info.is_compressed = True elif apex_type == 'UNCOMPRESSED': Loading tools/releasetools/ota_from_target_files.py +0 −39 Original line number Diff line number Diff line Loading @@ -738,45 +738,6 @@ def GeneratePartitionTimestampFlagsDowngrade( ] def SupportsMainlineGkiUpdates(target_file): """Return True if the build supports MainlineGKIUpdates. This function scans the product.img file in IMAGES/ directory for pattern |*/apex/com.android.gki.*.apex|. If there are files matching this pattern, conclude that build supports mainline GKI and return True Args: target_file: Path to a target_file.zip, or an extracted directory Return: True if thisb uild supports Mainline GKI Updates. """ if target_file is None: return False if os.path.isfile(target_file): target_file = common.UnzipTemp(target_file, ["IMAGES/product.img"]) if not os.path.isdir(target_file): assert os.path.isdir(target_file), \ "{} must be a path to zip archive or dir containing extracted"\ " target_files".format(target_file) image_file = os.path.join(target_file, "IMAGES", "product.img") if not os.path.isfile(image_file): return False if IsSparseImage(image_file): # Unsparse the image tmp_img = common.MakeTempFile(suffix=".img") subprocess.check_output(["simg2img", image_file, tmp_img]) image_file = tmp_img cmd = ["debugfs_static", "-R", "ls -p /apex", image_file] output = subprocess.check_output(cmd).decode() pattern = re.compile(r"com\.android\.gki\..*\.apex") return pattern.search(output) is not None def ExtractOrCopyTargetFiles(target_file): if os.path.isdir(target_file): return CopyTargetFilesDir(target_file) Loading Loading
tools/releasetools/apex_utils.py +3 −13 Original line number Diff line number Diff line Loading @@ -425,15 +425,12 @@ def SignCompressedApex(avbtool, apex_file, payload_key, container_key, Returns: The path to the signed APEX file. """ debugfs_path = os.path.join(OPTIONS.search_path, 'bin', 'debugfs_static') # 1. Decompress original_apex inside compressed apex. original_apex_file = common.MakeTempFile(prefix='original-apex-', suffix='.apex') # Decompression target path should not exist os.remove(original_apex_file) common.RunAndCheckOutput(['deapexer', '--debugfs_path', debugfs_path, 'decompress', '--input', apex_file, common.RunAndCheckOutput(['deapexer', 'decompress', '--input', apex_file, '--output', original_apex_file]) # 2. Sign original_apex Loading Loading @@ -495,9 +492,7 @@ def SignApex(avbtool, apex_data, payload_key, container_key, container_pw, with open(apex_file, 'wb') as output_fp: output_fp.write(apex_data) debugfs_path = os.path.join(OPTIONS.search_path, 'bin', 'debugfs_static') cmd = ['deapexer', '--debugfs_path', debugfs_path, 'info', '--print-type', apex_file] cmd = ['deapexer', 'info', '--print-type', apex_file] try: apex_type = common.RunAndCheckOutput(cmd).strip() Loading Loading @@ -571,10 +566,6 @@ def GetApexInfoForPartition(input_file, partition): apex_infos = [] debugfs_path = "debugfs" if OPTIONS.search_path: debugfs_path = os.path.join(OPTIONS.search_path, "bin", "debugfs_static") deapexer = 'deapexer' if OPTIONS.search_path: deapexer_path = os.path.join(OPTIONS.search_path, "bin", "deapexer") Loading @@ -594,8 +585,7 @@ def GetApexInfoForPartition(input_file, partition): apex_info.version = manifest.version # Check if the file is compressed or not apex_type = RunAndCheckOutput([ deapexer, "--debugfs_path", debugfs_path, 'info', '--print-type', apex_filepath]).rstrip() deapexer, 'info', '--print-type', apex_filepath]).rstrip() if apex_type == 'COMPRESSED': apex_info.is_compressed = True elif apex_type == 'UNCOMPRESSED': Loading
tools/releasetools/ota_from_target_files.py +0 −39 Original line number Diff line number Diff line Loading @@ -738,45 +738,6 @@ def GeneratePartitionTimestampFlagsDowngrade( ] def SupportsMainlineGkiUpdates(target_file): """Return True if the build supports MainlineGKIUpdates. This function scans the product.img file in IMAGES/ directory for pattern |*/apex/com.android.gki.*.apex|. If there are files matching this pattern, conclude that build supports mainline GKI and return True Args: target_file: Path to a target_file.zip, or an extracted directory Return: True if thisb uild supports Mainline GKI Updates. """ if target_file is None: return False if os.path.isfile(target_file): target_file = common.UnzipTemp(target_file, ["IMAGES/product.img"]) if not os.path.isdir(target_file): assert os.path.isdir(target_file), \ "{} must be a path to zip archive or dir containing extracted"\ " target_files".format(target_file) image_file = os.path.join(target_file, "IMAGES", "product.img") if not os.path.isfile(image_file): return False if IsSparseImage(image_file): # Unsparse the image tmp_img = common.MakeTempFile(suffix=".img") subprocess.check_output(["simg2img", image_file, tmp_img]) image_file = tmp_img cmd = ["debugfs_static", "-R", "ls -p /apex", image_file] output = subprocess.check_output(cmd).decode() pattern = re.compile(r"com\.android\.gki\..*\.apex") return pattern.search(output) is not None def ExtractOrCopyTargetFiles(target_file): if os.path.isdir(target_file): return CopyTargetFilesDir(target_file) Loading