diff --git a/README.md b/README.md index 274ab11b..37510786 100644 --- a/README.md +++ b/README.md @@ -1,8 +1,8 @@ -pySim-prog - Utility for programmable SIM/USIM-Cards +pySim - Read, Write and Browse Programmable SIM/USIM Cards ==================================================== -This repository contains a Python-language program that can be used -to program (write) certain fields/parameters on so-called programmable +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 @@ -13,50 +13,73 @@ 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 --------- +Homepage and Manual +------------------- -The official homepage of the project is - +Please visit the [official homepage](https://osmocom.org/projects/pysim/wiki) for usage instructions, manual and examples. -GIT Repository +Git Repository -------------- -You can clone from the official libosmocore.git repository using +You can clone from the official Osmocom git repository using +``` +git clone git://git.osmocom.org/pysim.git +``` - git clone git://git.osmocom.org/pysim.git - -There is a cgit interface at +There is a cgit interface at -Dependencies +Installation ------------ -pysim requires: +Please install the following dependencies: -- pyscard -- serial -- pytlv -- cmd2 -- jsonpath-ng -- bidict + - pyscard + - serial + - pytlv + - cmd2 + - jsonpath-ng + - construct + - bidict + - gsm0338 Example for Debian: - - apt-get install python3-pyscard python3-serial python3-cmd2 python3-pip python3-yaml - pip3 install pytlv bidict +``` +apt-get install python3-pyscard python3-serial python3-cmd2 python3-pip python3-yaml +pip3 install pytlv jsonpath-ng construct bidict gsm0338 +``` Alternatively, everything can be installed using pip: +``` +pip3 install -r requirements.txt +``` - 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 Package + +Archlinux users may install the package ``python-pysim-git`` +[![](https://img.shields.io/aur/version/python-pysim-git)](https://aur.archlinux.org/packages/python-pysim-git) +from the [Arch User Repository (AUR)](https://aur.archlinux.org). +The most convenient way is the use of an [AUR Helper](https://wiki.archlinux.org/index.php/AUR_helpers), +e.g. [yay](https://aur.archlinux.org/packages/yay) or [pacaur](https://aur.archlinux.org/packages/pacaur). +The following example shows the installation with ``yay``. + +```sh +# Install +yay -Sy python-pysim-git + +# Uninstall +sudo pacman -Rs python-pysim-git +``` Mailing List ------------ -There is no separate mailing list for this project. However, +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 + mailing list, please see for subscription options and the list archive. @@ -64,6 +87,7 @@ Please observe the [Osmocom Mailing List Rules](https://osmocom.org/projects/cellular-infrastructure/wiki/Mailing_List_Rules) when posting. + Contributing ------------ @@ -74,40 +98,35 @@ We are using a gerrit-based patch review process explained at -Manual ------- -p -Please see the sphinx based documentation in the 'docs' sub-directory -of the source. A PDF rendering of the user manual is available from - - - -Usage ------ +Usage Examples +-------------- * Program customizable SIMs. Two modes are possible: - - one where you specify every parameter manually : - + - one where you specify every parameter manually: +``` ./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -i -s +``` - - - one where they are generated from some minimal set : - + - one where they are generated from some minimal set: +``` ./pySim-prog.py -n 26C3 -c 49 -x 262 -y 42 -z -j +``` - With and , 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 and - 0 1 2 ... for ). +With ```` and ````, 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 ```` and +0 1 2 ... for ````). - 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) +You also need to enter some parameters to select the device: - * Interact with SIMs from a python interactive shell (ipython for eg :) + -t TYPE : type of card (``supersim``, ``magicsim``, ``fakemagicsim`` or try ``auto``) + -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 @@ -121,3 +140,4 @@ print(sc.read_binary(['3f00', '7f20', '6f07'])) # Run A3/A8 print(sc.run_gsm('00112233445566778899aabbccddeeff')) +```