commit | e8947493e6b296cffe46211debbd0a8c8769a34d | [log] [tgz] |
---|---|---|
author | Harald Welte <laforge@osmocom.org> | Thu Feb 10 10:33:20 2022 +0100 |
committer | Harald Welte <laforge@osmocom.org> | Thu Feb 10 17:06:30 2022 +0100 |
tree | a7a4bad9fa0047a431d2474b907350fc0b75edcc | |
parent | 08b2499c35a1579c82f1cb08e0a9ceb80a23812a [diff] |
Better decode of EF.UST, EF.EST and EF.IST So far, we only returned an array of service numbers like [ 2, 4, 5, 9 ] which is not very friendly to the human reader. In EF.SST we already had more verbose decoding including a description of each service. Let's add the same principle to EF.UST, EST and IST The same output above now looks like this: { "1": { "description": "Local Phone Book", "activated": false }, "2": { "description": "Fixed Dialling Numbers (FDN)", "activated": true }, "3": { "description": "Extension 2", "activated": false }, "4": { "description": "Service Dialling Numbers (SDN)", "activated": true }, "5": { "description": "Extension3", "activated": true }, "6": { "description": "Barred Dialling Numbers (BDN)", "activated": false }, "7": { "description": "Extension4", "activated": false }, "9": { "description": "Incoming Call Information (ICI and ICT)", "activated": true } } Change-Id: I34f64d1043698dc385619b2fdda23cb541675f76
This 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.
Please visit the official homepage for usage instructions, manual and examples.
You can clone from the official Osmocom git repository using
git clone git://git.osmocom.org/pysim.git
There is a cgit interface at https://git.osmocom.org/pysim
Please install the following dependencies:
Example for Debian:
apt-get install python3-pyscard python3-serial python3-pip python3-yaml pip3 install -r requirements.txt
After installing all dependencies, the pySim applications pySim-read.py
, pySim-prog.py
and pySim-shell.py
may be started directly from the cloned repository.
Archlinux users may install the package python-pysim-git
from the Arch User Repository (AUR). The most convenient way is the use of an AUR Helper, e.g. yay or pacaur. The following example shows the installation with yay
.
# Install yay -Sy python-pysim-git # Uninstall sudo pacman -Rs python-pysim-git
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 using a gerrit-based patch review process explained at https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit
./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -i <IMSI> -s <ICCID>
./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
, 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'))