Skip to content

Commit a1c41a0

Browse files
committed
extract_utils: fix generated proprietary file extraction
Commit 71f352e ("extract_utils: skip parsing generated proprietary file when section is specified") introduced skipping for generated proprietary files. Generated proprietary files were stopped from being parsed if section was set, causing file_list to be empty. This is okay when not regenerating, or when regenerating from an existing dump, but when regenerating from a fresh dump, file_list is only populated after extraction, and the generated proprietary file's partition is needed on extraction. Move the generated proprietary file filtering to get_extract_partitions(). Change-Id: Id88fea9f882983cbe26c510540f1021d0bad3cbb
1 parent d595610 commit a1c41a0

File tree

2 files changed

+13
-12
lines changed

2 files changed

+13
-12
lines changed

extract_utils/main.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ def run(self):
145145
extract_fns.update(module.extract_fns)
146146

147147
extract_partitions.update(
148-
module.get_extract_partitions(),
148+
module.get_extract_partitions(self.__args.section),
149149
)
150150
firmware_partitions.update(
151151
module.get_firmware_partitions(),

extract_utils/module.py

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -378,9 +378,6 @@ def regenerate(
378378
self.fix_file_list()
379379

380380
def get_partitions(self) -> Set[str]:
381-
if not self.file_list.all_files:
382-
return set()
383-
384381
return {self.partition}
385382

386383

@@ -452,10 +449,19 @@ def __init__(
452449
if not skip_main_proprietary_file:
453450
self.add_proprietary_file('proprietary-files.txt')
454451

455-
def get_partitions(self, kind: ProprietaryFileType):
452+
def get_partitions(
453+
self,
454+
kind: ProprietaryFileType,
455+
section: Optional[str] = None,
456+
):
456457
partitions: List[str] = []
457458

458459
for proprietary_file in self.proprietary_files:
460+
if section is not None and isinstance(
461+
proprietary_file, GeneratedProprietaryFile
462+
):
463+
continue
464+
459465
if proprietary_file.kind is not kind:
460466
continue
461467

@@ -478,8 +484,8 @@ def get_files(self, kind: ProprietaryFileType):
478484

479485
return files
480486

481-
def get_extract_partitions(self):
482-
return self.get_partitions(ProprietaryFileType.BLOBS)
487+
def get_extract_partitions(self, section: Optional[str]):
488+
return self.get_partitions(ProprietaryFileType.BLOBS, section)
483489

484490
def get_firmware_partitions(self):
485491
return self.get_partitions(ProprietaryFileType.FIRMWARE)
@@ -698,11 +704,6 @@ def parse(
698704
section: Optional[str],
699705
):
700706
for proprietary_file in self.proprietary_files:
701-
if section is not None and isinstance(
702-
proprietary_file, GeneratedProprietaryFile
703-
):
704-
continue
705-
706707
if regenerate and isinstance(
707708
proprietary_file,
708709
GeneratedProprietaryFile,

0 commit comments

Comments
 (0)