Skip to content

Commit 7c97424

Browse files
committed
extract_utils: Fix extraction of "empty" partitions
* Any device with an LP entry in super for an empty partition (e.g. as Moto commonly does) currently errors out after I5c6c2f94e0557442b686ddf418559e44787f8177 (extract_utils: do not use ProcessPoolExecutor() for IO-bound tasks). * The failure was previously masked by ProcessPoolExecutor silently swallowing unretireved Future exceptions. * Just try/except and print a warning instead. Change-Id: I790db409e35bf11cb94673013fad58e1feab29f6
1 parent 409b495 commit 7c97424

1 file changed

Lines changed: 9 additions & 6 deletions

File tree

extract_utils/extract.py

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -483,12 +483,15 @@ def extract_all_partitions(dump_dir: str, ctx: ExtractCtx):
483483

484484
while partitions:
485485
for partition in partitions:
486-
if partition == 'recovery':
487-
extract_recovery_partition(partition, dump_dir)
488-
elif partition in firmware_partitions:
489-
extract_firmware_partition(partition, dump_dir)
490-
else:
491-
extract_partition(partition, dump_dir)
486+
try:
487+
if partition == 'recovery':
488+
extract_recovery_partition(partition, dump_dir)
489+
elif partition in firmware_partitions:
490+
extract_firmware_partition(partition, dump_dir)
491+
else:
492+
extract_partition(partition, dump_dir)
493+
except Exception as e:
494+
print(f'Warning: Failed to extract partition {partition}: {e}')
492495

493496
found_partitions = find_partitions(dump_dir, ctx)
494497
partitions = find_alternate_partitions(partitions, found_partitions)

0 commit comments

Comments
 (0)