I' ve just added a tool to deal with SIMs more easily (especially when you want to program tens of them ... :)<br>You can check it out at git://<a href="http://bs11-abis.gnumonks.org/pysim.git">bs11-abis.gnumonks.org/pysim.git</a><br>
<br>The currently supported models are :<br> - Super Sim 12-in-1 (the format  described in the OpenBSC Wiki)<br> - Magic SIM (2010 model)<br> - 'fake' Magic SIM (some counterfeits ?)<br><br>Note that I have some marked 'SuperSIM' that need the 'Fake Magic SIM protocol'. In any case, just try 'auto' first and it'll try to autodetect. If you have a card for which that doesn't work, contact me please (or debug and fix it yourself :)<br>
<br>I tested it with the 3 models I have here and it worked fine (tested IMSI, PLMN_Sel & Ki). (with the 2010 magic sim model, the ICCID isn't programmed but that has no impact ... and it's not programmed with the official software either ...)<br>
<br>Here's the README for reference :<br><br>This utility allows to :<br><br> * Program customizable SIMs. Two modes are possible:<br><br>  - one where you specify every parameter manually :<br><br>./pySim.py -n 26C3 -c 49 -x 262 -y 42 -i <IMSI> -s <ICCID><br>
<br><br>  - one where they are generated from some minimal set :<br><br>./pySim.py -n 26C3 -c 49 -x 262 -y 42 -z <random_string_of_choice> -j <card_num><br><br>    With <random_string_of_choice> and <card_num>, the soft will generate<br>
    'predictable' IMSI and ICCID, so make sure you choose them so as not to<br>    conflict with anyone. (for eg. your name as <random_string_of_choice> and<br>    0 1 2 ... for <card num>).<br><br>  You also need to enter some parameters to select the device :<br>
   -t TYPE : type of card (supersim, magicsim, fakemagicsim or try 'auto')<br>   -d DEV  : Serial port device (default /dev/ttyUSB0)<br>   -b BAUD : Baudrate (default 9600)<br><br> * Interact with SIMs from a python interactive shell (ipython for eg :)<br>
<br>import pySim<br>sl = pySim.SerialSimLink(device='/dev/ttyUSB0', baudrate=9600)<br>print sl.read_binary(['3f00', '7f20', '6f07']) # Print IMSI<br>print sl.run_gsm('00112233445566778899aabbccddeeff') # Run A3/A8<br>
<br>----------------<br>
<br><br>    Sylvain<br><br><br>