FreeCalypso > hg > fc-pcsc-tools
comparison doc/PLMN-list-commands @ 200:bca0f86d9efe
doc/PLMN-list-commands article written
author | Mychaela Falconia <falcon@freecalypso.org> |
---|---|
date | Sun, 07 Mar 2021 03:41:06 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
199:7ecc08e55d39 | 200:bca0f86d9efe |
---|---|
1 GSM SIM specs define EF_PLMNsel and EF_FPLMN as containing lists of preferred | |
2 and forbidden PLMNs, respectively. Both files are defined as writable by | |
3 ordinary users, requiring only CHV1 access for both reading and writing - and | |
4 both files are indeed user-writable on Grcard and Sysmocom SIMs. However, some | |
5 operator-issued SIMs (specifically T-Mobile USA) implement an underhanded trick: | |
6 whenever we try to write anything to either of these two files, the write | |
7 operation appears to succeed (SW 0x9000), but the byte content of the SIM file | |
8 remains unchanged. Therefore, writability of these files by ordinary end users | |
9 on regular operator-issued SIMs should be regarded as questionable. | |
10 | |
11 fc-simtool provides high-level commands for both dumping (reading) and writing | |
12 both EF_PLMNsel and EF_FPLMN. Here are the commands for EF_PLMNsel: | |
13 | |
14 plmnsel-dump | |
15 | |
16 This command dumps the full content of EF_PLMNsel. | |
17 | |
18 plmnsel-write index mcc-mnc | |
19 | |
20 This command writes a single entry into EF_PLMNsel. The first argument is the | |
21 0-based index of the entry position to write into, and the second argument is | |
22 the PLMN code as in MCC-MNC. | |
23 | |
24 plmnsel-write-list plmn-list-file | |
25 | |
26 This command overwrites the entire EF_PLMNsel SIM file with a user-specified | |
27 PLMN list given in an ASCII data file. The file must contain PLMN codes | |
28 (MCC-MNC) separated by white space; any lines or line tails beginning with '#' | |
29 are treated as comments. Output from a previous plmnsel-dump is acceptable | |
30 input to plmnsel-write-list. PLMN codes are written into EF_PLMNsel from index | |
31 0 onward; any unused space at the end is filled with FF bytes. | |
32 | |
33 plmnsel-erase start-index [end-index] | |
34 | |
35 This command erases a single entry position or a range of entry positions in | |
36 EF_PLMNsel. Because EF_PLMNsel is a transparent EF (not record-based) at the | |
37 SIM protocol level, our numbering of entry positions in this file is 0-based, | |
38 rather than the 1-based convention used for record-based SIM files. Keyword | |
39 "end" may be specified instead of the final index, meaning erase to the end of | |
40 the file. | |
41 | |
42 plmnsel-erase-all | |
43 | |
44 This command overwrites the entire EF_PLMNsel SIM file with FF bytes, | |
45 corresponding to fully erased state. This command is more efficient than | |
46 'plmnsel-erase 0 end', as the operation is performed with a single UPDATE BINARY | |
47 SIM protocol command. | |
48 | |
49 The commands for EF_FPLMN parallel those for EF_PLMNsel: simply replace | |
50 plmnsel-* with fplmn-*; all arguments are the same. |