Package: pysimcard
pySim - Read, Write and Browse Programmable SIM/USIM CardsThis repository contains Python programs that can be used
to read, program (write) and browse 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.Homepage and ManualPlease visit theofficial homepagefor usage instructions, manual and examples.Git RepositoryYou can clone from the official Osmocom  git repository usinggit clone git://git.osmocom.org/pysim.gitThere is a cgit interface athttps://git.osmocom.org/pysimInstallationPlease install the following dependencies:pyscardserialpytlvcmd2 >= 1.3.0 but < 2.0.0jsonpath-ngconstructbidictgsm0338Example for Debian:apt-get install python3-pyscard python3-serial python3-cmd2 python3-pip python3-yaml
pip3 install pytlv jsonpath-ng construct bidict gsm0338Alternatively, everything can be installed using pip:pip3 install -r requirements.txtAfter installing all dependencies, the pySim applicationspySim-read.py,pySim-prog.pyandpySim-shell.pymay be started directly from the cloned repository.Archlinux PackageArchlinux users may install the packagepython-pysim-gitfrom theArch User Repository (AUR).
The most convenient way is the use of anAUR Helper,
e.g.yayorpacaur.
The following example shows the installation withyay.# Installyay-Sypython-pysim-git# Uninstallsudopacman-Rspython-pysim-gitMailing ListThere is no separate mailing list for this project. However,
discussions related to pysim-prog are happening on theopenbsc@lists.osmocom.orgmailing list, please seehttps://lists.osmocom.org/mailman/listinfo/openbscfor subscription
options and the list archive.Please observe theOsmocom Mailing List
Ruleswhen posting.ContributingOur coding standards are described athttps://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standardsWe are using a gerrit-based patch review process explained athttps://osmocom.org/projects/cellular-infrastructure/wiki/GerritUsage ExamplesProgram 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 e.g. 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,fakemagicsimor tryauto)-d DEV  : Serial port device (default/dev/ttyUSB0)-b BAUD : Baudrate (default 9600)Interact with SIMs from a python interactive shell (e.g. ipython):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'))