Max has uploaded this change for review. ( https://gerrit.osmocom.org/12460


Change subject: Add option to keep cards' ICCID when programming
......................................................................

Add option to keep cards' ICCID when programming

This makes it easier to change only the network-related parameters while
keeping SIM-specific data (used for inventory or DB for example) intact.

Change-Id: I7a9c2fdd6af081fe478f1007bc322f3d7cb8d350
---
M pySim-prog.py
1 file changed, 12 insertions(+), 4 deletions(-)



  git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/60/12460/1

diff --git a/pySim-prog.py b/pySim-prog.py
index d6d7ad5..0c1e634 100755
--- a/pySim-prog.py
+++ b/pySim-prog.py
@@ -128,6 +128,9 @@
        parser.add_option("--read-imsi", dest="read_imsi", action="store_true",
                        help="Read the IMSI from the CARD", default=False
                )
+       parser.add_option("--keep-iccid", dest="keep_iccid", 
action="store_true",
+                       help="Use ICCID of the card as is", default=False
+               )
        parser.add_option("-z", "--secret", dest="secret", metavar="STR",
                        help="Secret used for ICCID/IMSI autogen",
                )
@@ -173,8 +176,8 @@
                if options.read_csv is None:
                        parser.error("CSV mode requires a CSV input file")
        elif options.source == 'cmdline':
-               if ((options.imsi is None) or (options.iccid is None)) and 
(options.num is None):
-                       parser.error("If either IMSI or ICCID isn't specified, 
num is required")
+               if ((options.imsi is None) or (options.iccid is None)) and 
(options.num is None) and (options.keep_iccid is False):
+                       parser.error("If either IMSI or ICCID isn't specified, 
num or keep-iccid is required")
        else:
                parser.error("Only `cmdline' and `csv' sources supported")

@@ -267,7 +270,9 @@
                iccid = opts.iccid
                if not _isnum(iccid, 19) and not _isnum(iccid, 20):
                        raise ValueError('ICCID must be 19 or 20 digits !');
-
+        elif opts.keep_iccid is True:
+                # will be filled by the caller
+                iccid = 0
        else:
                if opts.num is None:
                        raise ValueError('Neither ICCID nor card number 
specified !')
@@ -620,7 +625,10 @@

                # Generate parameters
                if opts.source == 'cmdline':
-                       cp = gen_parameters(opts)
+                        cp = gen_parameters(opts)
+                        if opts.keep_iccid is True:
+                                (res, _) = scc.read_binary(EF['ICCID'])
+                                cp['iccid'] = dec_iccid(res)
                elif opts.source == 'csv':
                        if opts.read_imsi:
                                if opts.dry_run:

--
To view, visit https://gerrit.osmocom.org/12460
To unsubscribe, or for help writing mail filters, visit 
https://gerrit.osmocom.org/settings

Gerrit-Project: pysim
Gerrit-Branch: master
Gerrit-MessageType: newchange
Gerrit-Change-Id: I7a9c2fdd6af081fe478f1007bc322f3d7cb8d350
Gerrit-Change-Number: 12460
Gerrit-PatchSet: 1
Gerrit-Owner: Max <[email protected]>

Reply via email to