Legacy tools

legacy tools are the classic pySim-prog and pySim-read programs that existed long before pySim-shell.

These days, you should primarily use pySim-shell instead of these legacy tools.

pySim-prog

pySim-prog was the first part of the pySim software suite. It started as a tool to write ICCID, IMSI, MSISDN and Ki to very simplistic SIM cards, and was later extended to a variety of other cards. As the number of features supported became no longer bearable to express with command-line arguments, pySim-shell was created.

Basic use cases can still use pySim-prog.

Program customizable SIMs

Two modes are possible:

  • one where you specify every parameter manually :

./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -i <IMSI> -s <ICCID>

  • one where they are generated from some minimal set :

./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)

pySim-read

pySim-read allows you to read some data from a SIM card. It will only some files of the card, and will only read files accessible to a normal user (without any special authentication)

These days, you should use the export command of pySim-shell instead. It performs a much more comprehensive export of all of the [standard] files that can be found on the card. To get a human-readable decode instead of the raw hex export, you can use export --json.

Specifically, pySim-read will dump the following:

  • MF

  • EF.ICCID

  • DF.GSM

  • EF,IMSI

  • EF.GID1

  • EF.GID2

  • EF.SMSP

  • EF.SPN

  • EF.PLMNsel

  • EF.PLMNwAcT

  • EF.OPLMNwAcT

  • EF.HPLMNAcT

  • EF.ACC

  • EF.MSISDN

  • EF.AD

  • EF.SST

  • ADF.USIM

  • EF.EHPLMN

  • EF.UST

  • EF.ePDGId

  • EF.ePDGSelection

  • ADF.ISIM

  • EF.PCSCF

  • EF.DOMAIN

  • EF.IMPI

  • EF.IMPU

  • EF.UICCIARI

  • EF.IST

pySim-read usage

Legacy tool for reading some parts of a SIM card

usage: pySim-read.py [-h] [-d DEV] [-b BAUD] [--pcsc-shared]
                     [-p PCSC | --pcsc-regex REGEX] [--modem-device DEV]
                     [--modem-baud BAUD] [--osmocon PATH]

Serial Reader

Use a simple/ultra-low-cost serial reader attached to a (physical or USB/virtual) RS232 port. This doesn’t work with all RS232-attached smart card readers, only with the very primitive readers following the ancient Phoenix or Smart Mouse design.

-d, --device

Serial Device for SIM access

Default: “/dev/ttyUSB0”

-b, --baud

Baud rate used for SIM access

Default: 9600

PC/SC Reader

Use a PC/SC card reader to talk to the SIM card. PC/SC is a standard API for how applications access smart card readers, and is available on a variety of operating systems, such as Microsoft Windows, MacOS X and Linux. Most vendors of smart card readers provide drivers that offer a PC/SC interface, if not even a generic USB CCID driver is used. You can use a tool like pcsc_scan -r to obtain a list of readers available on your system.

--pcsc-shared

Open PC/SC reaer in SHARED access (default: EXCLUSIVE)

Default: False

-p, --pcsc-device

Number of PC/SC reader to use for SIM access

--pcsc-regex

Regex matching PC/SC reader to use for SIM access

AT Command Modem Reader

Talk to a SIM Card inside a mobile phone or cellular modem which is attached to this computer and offers an AT command interface including the AT+CSIM interface for Generic SIM access as specified in 3GPP TS 27.007.

--modem-device

Serial port of modem for Generic SIM Access (3GPP TS 27.007)

--modem-baud

Baud rate used for modem port

Default: 115200

OsmocomBB Reader

Use an OsmocomBB compatible phone to access the SIM inserted to the phone SIM slot. This will require you to run the OsmocomBB firmware inside the phone (can be ram-loaded). It also requires that you run the osmocon program, which provides a unix domain socket to which this reader driver can attach.

--osmocon

Socket path for Calypso (e.g. Motorola C1XX) based reader (via OsmocomBB)