Reimplement ust_service_activate and ust_service_deactivate for USIM/EF.UST

Fixes: f8d2e2ba08 ("split pySim/legacy/{cards,utils} from pySim/{cards,utils}")
Change-Id: I7a6a77b872a6f5d8c478ca75dcff8ea067b8203e
This commit is contained in:
Alexander Couzens
2023-07-28 05:13:06 +02:00
committed by laforge
parent 8dc2ca2d37
commit 6c5c3f8b2b
2 changed files with 23 additions and 2 deletions

View File

@@ -120,7 +120,26 @@ class EF_UServiceTable(TransparentEF):
cmd.lchan.select_file(self)
return num_problems
def ust_update(self, cmd, activate=[], deactivate=[]):
service_data, sw = cmd.lchan.read_binary()
service_data = h2b(service_data)
for service in activate:
nbyte, nbit = EF_UServiceTable._bit_byte_offset_for_service(service)
if nbyte > len(service_data):
missing = nbyte - service_data
service_data.extend(missing * "00")
service_data[nbyte] |= (1 << nbit)
for service in deactivate:
nbyte, nbit = EF_UServiceTable._bit_byte_offset_for_service(service)
if nbyte > len(service_data):
missing = nbyte - service_data
service_data.extend(missing * "00")
service_data[nbyte] &= ~(1 << nbit)
service_data = b2h(service_data)
cmd.lchan.update_binary(service_data)
# TS 31.102 Section 4.4.2.1
class EF_PBR(LinFixedEF):