From 51d91896ffdbbf67f2d49eaefb4c6ed9139af25c Mon Sep 17 00:00:00 2001 From: Alexander Couzens Date: Mon, 15 Dec 2025 22:34:36 +0100 Subject: [PATCH] Hack: make the congress profile working Change-Id: I121a4a1a0c2279b7a44417a1f805b29dff1adc8e --- pySim/esim/saip/__init__.py | 12 +++++++++++- pySim/esim/saip/templates.py | 4 ++-- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/pySim/esim/saip/__init__.py b/pySim/esim/saip/__init__.py index c7f3e75c..f684a13a 100644 --- a/pySim/esim/saip/__init__.py +++ b/pySim/esim/saip/__init__.py @@ -386,11 +386,21 @@ class File: stream = io.BytesIO() # Providing file content within "fillFileContent" / "fillFileOffset" shall have the same effect as # creating a file with a fill/repeat pattern and thereafter updating the content via Update. + # Step 0: determine file size + file_size = self._file_size + for k, v in l: + if k != 'fileDescriptor': + continue + + file_desc = v + if 'efFileSize' in file_desc: + file_size = self._decode_file_size(file_desc['efFileSize']) + # Step 1: Fill with pattern from Fcp or Template if self.fill_pattern: stream.write(self.expand_fill_pattern()) elif self.template and self.template.default_val: - stream.write(self.template.expand_default_value_pattern(self.file_size)) + stream.write(self.template.expand_default_value_pattern(file_size)) stream.seek(0) # then process the fillFileContent/fillFileOffset for k, v in l: diff --git a/pySim/esim/saip/templates.py b/pySim/esim/saip/templates.py index 2c0a8f05..5103219d 100644 --- a/pySim/esim/saip/templates.py +++ b/pySim/esim/saip/templates.py @@ -673,7 +673,7 @@ class FilesUsimDf5GS(ProfileTemplate): FileTemplate(0x4f06, 'EF.UAC_AIC', 'TR', None, 4, 2, 0x06, None, True, ass_serv=[126]), FileTemplate(0x4f07, 'EF.SUCI_Calc_Info', 'TR', None, None, 2, 0x07, 'FF...FF', False, ass_serv=[124]), FileTemplate(0x4f08, 'EF.OPL5G', 'LF', None, 10, 10, 0x08, 'FF...FF', False, ['nb_rec'], ass_serv=[129]), - FileTemplate(0x4f09, 'EF.SUPI_NAI', 'TR', None, None, 2, 0x09, None, True, ['size'], ass_serv=[130]), + FileTemplate(0x4f09, 'EF.SUPI_NAI', 'TR', None, None, 2, 0x09, None, True, ['size'], ass_serv=[130], pe_name='ef-supinai'), FileTemplate(0x4f0a, 'EF.Routing_Indicator', 'TR', None, 4, 2, 0x0a, 'F0FFFFFF', False, ass_serv=[124]), ] @@ -818,7 +818,7 @@ class FilesIsimOptional(ProfileTemplate): base_path = Path('ADF.ISIM') extends = FilesIsimMandatory files = [ - FileTemplate(0x6f09, 'EF.P-CSCF', 'LF', 1, None, 2, None, None, True, ['size'], ass_serv=[1,5]), + FileTemplate(0x6f09, 'EF.P-CSCF', 'LF', 1, None, 2, None, None, True, ['size'], ass_serv=[1,5], pe_name='ef-pcscf'), FileTemplate(0x6f3c, 'EF.SMS', 'LF', 10, 176, 5, None, '00FF...FF', False, ass_serv=[6,8]), FileTemplate(0x6f42, 'EF.SMSP', 'LF', 1, 38, 5, None, 'FF...FF', False, ass_serv=[8]), FileTemplate(0x6f43, 'EF.SMSS', 'TR', None, 2, 5, None, 'FFFF', False, ass_serv=[6,8]),