This is merely a historical archive of years 2008-2021, before the migration to mailman3.
A maintained and still updated list archive can be found at https://lists.osmocom.org/hyperkitty/list/gerrit-log@lists.osmocom.org/.
daniel gerrit-no-reply at lists.osmocom.orgdaniel has uploaded this change for review. ( https://gerrit.osmocom.org/c/pysim/+/15394 Change subject: Add an option to read the iccid and batch-program the new card data ...................................................................... Add an option to read the iccid and batch-program the new card data This can be used to reprogram everything including IMSI on the card: while true; do ./pySim-prog.py -p 0 -t sysmoUSIM-SJS1 --source=csv --read-csv=cards.csv --read-iccid && paplay complete.oga sleep 2 done Change-Id: Ib343a29141b5255f67a59ab76959b51e162b7916 --- M pySim-prog.py 1 file changed, 26 insertions(+), 9 deletions(-) git pull ssh://gerrit.osmocom.org:29418/pysim refs/changes/94/15394/1 diff --git a/pySim-prog.py b/pySim-prog.py index 2ac4dad..8abce0a 100755 --- a/pySim-prog.py +++ b/pySim-prog.py @@ -39,7 +39,7 @@ from pySim.commands import SimCardCommands from pySim.cards import _cards_classes -from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn +from pySim.utils import h2b, swap_nibbles, rpad, derive_milenage_opc, calculate_luhn, dec_iccid from pySim.ts_51_011 import EF def parse_options(): @@ -131,6 +131,9 @@ parser.add_option("--read-imsi", dest="read_imsi", action="store_true", help="Read the IMSI from the CARD", default=False ) + parser.add_option("--read-iccid", dest="read_iccid", action="store_true", + help="Read the ICCID from the CARD", default=False + ) parser.add_option("-z", "--secret", dest="secret", metavar="STR", help="Secret used for ICCID/IMSI autogen", ) @@ -171,8 +174,8 @@ return options if options.source == 'csv': - if (options.imsi is None) and (options.batch_mode is False) and (options.read_imsi is False): - parser.error("CSV mode needs either an IMSI, --read-imsi or batch mode") + if (options.imsi is None) and (options.batch_mode is False) and (options.read_imsi is False) and (options.read_iccid is False): + parser.error("CSV mode needs either an IMSI, --read-imsi, --read-iccid or batch mode") if options.read_csv is None: parser.error("CSV mode requires a CSV input file") elif options.source == 'cmdline': @@ -444,7 +447,7 @@ cw.writerow([params[x] for x in row]) f.close() -def _read_params_csv(opts, imsi): +def _read_params_csv(opts, iccid=None, imsi=None): import csv f = open(opts.read_csv, 'r') cr = csv.DictReader(f) @@ -452,11 +455,15 @@ if not 'iccid' in cr.fieldnames: raise Exception("CSV file in wrong format!") for row in cr: - if opts.num is not None and opts.read_imsi is False: + if opts.num is not None and opts.read_iccid is False and opts.read_imsi is False: if opts.num == i: f.close() return row; i += 1 + if row['iccid'] == iccid: + f.close() + return row; + if row['imsi'] == imsi: f.close() return row; @@ -464,8 +471,8 @@ f.close() return None -def read_params_csv(opts, imsi): - row = _read_params_csv(opts, imsi) +def read_params_csv(opts, imsi=None, iccid=None): + row = _read_params_csv(opts, iccid=iccid, imsi=imsi) if row is not None: row['mcc'] = int(row.get('mcc', row['imsi'][0:3])) row['mnc'] = int(row.get('mnc', row['imsi'][3:5])) @@ -655,7 +662,17 @@ if opts.source == 'cmdline': cp = gen_parameters(opts) elif opts.source == 'csv': - if opts.read_imsi: + imsi = None + iccid = None + if opts.read_iccid: + if opts.dry_run: + # Connect transport + print "Insert card now (or CTRL-C to cancel)" + sl.wait_for_card(newcardonly=not first) + (res,_) = scc.read_binary(['3f00', '2fe2'], length=10) + iccid = dec_iccid(res) + print iccid + elif opts.read_imsi: if opts.dry_run: # Connect transport print "Insert card now (or CTRL-C to cancel)" @@ -664,7 +681,7 @@ imsi = swap_nibbles(res)[3:] else: imsi = opts.imsi - cp = read_params_csv(opts, imsi) + cp = read_params_csv(opts, imsi=imsi, iccid=iccid) if cp is None: print "Error reading parameters\n" sys.exit(2) -- To view, visit https://gerrit.osmocom.org/c/pysim/+/15394 To unsubscribe, or for help writing mail filters, visit https://gerrit.osmocom.org/settings Gerrit-Project: pysim Gerrit-Branch: master Gerrit-Change-Id: Ib343a29141b5255f67a59ab76959b51e162b7916 Gerrit-Change-Number: 15394 Gerrit-PatchSet: 1 Gerrit-Owner: daniel <dwillmann at sysmocom.de> Gerrit-MessageType: newchange -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.osmocom.org/pipermail/gerrit-log/attachments/20190903/4da64c82/attachment.htm>