commit | 0ec147513c453e1a5a39133494427c0d84f396be | [log] [tgz] |
---|---|---|
author | Ben Fox-Moore <ben.foxmoore@accelleran.com> | Mon Sep 24 15:47:02 2018 +0200 |
committer | Philipp Maier <pmaier@sysmocom.de> | Wed Sep 26 18:14:19 2018 +0200 |
tree | e1cdc953d81f38a49a18edfc54fb34b1ca1d051f | |
parent | c555e18ebb8829ff216452c6803fd7c1718c6845 [diff] |
utils: fix encoding/decoding of IMSI value When programming or reading a SIM with an IMSI shorter than 15, the IMSI value is incorrectly encoded/decoded. The code pads the the IMSI value with 0xF from the left but padding from the right would be correct. It also encodes the length as half the number of digits in the IMSI (rounded up). This isn't correct for even length IMSIs. With even length IMSIs, the odd/even parity bit bumps the last digit into an extra byte, which should be counted as well. - Fix endcoding of IMSI value - Fix decoding of IMSI value Change-Id: I9ae4ca4eb7c2965e601a7108843d052ff613beb9 Patch-by: Ben Foxmoore Closes: SYS#3552
This repository contains a Python-language program that can be used to program (write) certain fields/parameters on so-called programmable SIM/USIM cards.
Such SIM/USIM cards are special cards, which - unlike those issued by regular commercial operators - come with the kind of keys that allow you to write the files/fields that normally only an operator can program.
This is useful particularly if you are running your own cellular network, and want to issue your own SIM/USIM cards for that network.
The official homepage of the project is http://osmocom.org/projects/pysim/wiki
You can clone from the official libosmocore.git repository using
git clone git://git.osmocom.org/pysim.git
There is a cgit interface at http://git.osmocom.org/pysim/
pysim requires:
Example for Debian:
apt-get install python-pyscard python-serial python-pip pip install pytlv
There is no separate mailing list for this project. However, discussions related to pysim-prog are happening on the openbsc@lists.osmocom.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/openbsc for subscription options and the list archive.
Please observe the Osmocom Mailing List Rules when posting.
Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards
We are currently accepting patches by e-mail to the above-mentioned mailing list.
./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -i -s
./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -z <random_string_of_choice> -j <card_num>
With <random_string_of_choice> and <card_num>, the soft will generate 'predictable' IMSI and ICCID, so make sure you choose them so as not to conflict with anyone. (for eg. your name as <random_string_of_choice> and 0 1 2 ... for <card num>).
You also need to enter some parameters to select the device : -t TYPE : type of card (supersim, magicsim, fakemagicsim or try 'auto') -d DEV : Serial port device (default /dev/ttyUSB0) -b BAUD : Baudrate (default 9600)
from pySim.transport.serial import SerialSimLink from pySim.commands import SimCardCommands
sl = SerialSimLink(device='/dev/ttyUSB0', baudrate=9600) sc = SimCardCommands(sl)
sl.wait_for_card()
# Print IMSI
print sc.read_binary(['3f00', '7f20', '6f07'])
# Run A3/A8
print sc.run_gsm('00112233445566778899aabbccddeeff')