FreeCalypso > hg > freecalypso-tools
comparison doc/IMEI @ 725:232e36a227dd
doc/IMEI: updated for Compal IMEI discovery
| author | Mychaela Falconia <falcon@freecalypso.org> |
|---|---|
| date | Tue, 25 Aug 2020 17:28:32 +0000 |
| parents | 4644799cb515 |
| children |
comparison
equal
deleted
inserted
replaced
| 724:c2fe49987323 | 725:232e36a227dd |
|---|---|
| 12 not to store the Luhn check digit in the GSM device's flash or EEPROM or | 12 not to store the Luhn check digit in the GSM device's flash or EEPROM or |
| 13 whatever, but it is not sent over the air: instead the IMEISV is sent. It | 13 whatever, but it is not sent over the air: instead the IMEISV is sent. It |
| 14 appears that the GSM standard authors' intent was that the IMEI part is stored | 14 appears that the GSM standard authors' intent was that the IMEI part is stored |
| 15 immutably in each manufactured device whereas the SV digits are added by the | 15 immutably in each manufactured device whereas the SV digits are added by the |
| 16 running firmware to indicate its version, but the IMEI handling scheme | 16 running firmware to indicate its version, but the IMEI handling scheme |
| 17 implemented in TI's reference firmware and retained by many of the TI-based GSM | 17 implemented in TI's reference firmware and retained by many TI-based GSM device |
| 18 device manufacturers (at least FIC/Openmoko and Foxconn/Pirelli) dispenses away | 18 manufacturers (FIC/Openmoko, Foxconn/Pirelli, some module vendors, but notably |
| 19 with the IMEI vs. IMEISV distinction. | 19 NOT Compal) dispenses away with the IMEI vs. IMEISV distinction. |
| 20 | 20 |
| 21 IMEI storage and retrieval in TI's reference firmware | 21 IMEI storage and retrieval in TI's reference firmware |
| 22 ===================================================== | 22 ===================================================== |
| 23 | 23 |
| 24 When running on the plain Calypso as opposed to Calypso+, TI's TCS211 reference | 24 When running on the plain Calypso as opposed to Calypso+, TI's TCS211 reference |
| 54 reference fw: the factory-assigned IMEI is stored in an FFS file named | 54 reference fw: the factory-assigned IMEI is stored in an FFS file named |
| 55 /pcm/IMEI, and that is where the original mokoN firmwares look for it. Further | 55 /pcm/IMEI, and that is where the original mokoN firmwares look for it. Further |
| 56 blurring the distinction between the IMEI and the IMEISV, the 16 digits stored | 56 blurring the distinction between the IMEI and the IMEISV, the 16 digits stored |
| 57 in /pcm/IMEI (which the fw treats as the IMEISV) were factory-programmed as the | 57 in /pcm/IMEI (which the fw treats as the IMEISV) were factory-programmed as the |
| 58 15-digit IMEI (with the Luhn check digit) with an appended 0, i.e., the SV | 58 15-digit IMEI (with the Luhn check digit) with an appended 0, i.e., the SV |
| 59 digits get set to x0 where x is the Luhn check digit. | 59 digits get set to x0 where x is the Luhn check digit. The same scheme has been |
| 60 implemented on some Calypso-based packaged modem modules: Huawei GTM900-B and | |
| 61 one other module we call Tango. | |
| 60 | 62 |
| 61 Foxconn, the makers of the Pirelli DP-L10, have used the obfuscated version of | 63 Foxconn, the makers of the Pirelli DP-L10, have used the obfuscated version of |
| 62 TI's IMEI handling mechanism instead, with an additional twist: instead of | 64 TI's IMEI handling mechanism instead, with an additional twist: instead of |
| 63 storing the 16-byte encrypted datum in /gsm/imei.enc in FFS, they have moved it | 65 storing the 16-byte encrypted datum in /gsm/imei.enc in FFS, they have moved it |
| 64 into their own factory data record stored in a non-FFS sector of the flash. | 66 into their own factory data record stored in a non-FFS sector of the flash. |
| 65 The content of the 16 digits treated as the IMEISV by the G23M component of the | 67 The content of the 16 digits treated as the IMEISV by the G23M component of the |
| 66 fw is the same as Openmoko's: 15-digit IMEI with the Luhn check digit followed | 68 fw is the same as Openmoko's: 15-digit IMEI with the Luhn check digit followed |
| 67 by a 0 digit. | 69 by a 0 digit. |
| 68 | 70 |
| 69 Compal, the makers of Motorola C1xx phones, have similarly moved their IMEI out | 71 Compal, the makers of Motorola C1xx phones, took a very different approach: they |
| 70 of FFS into their own proprietary flash data structures, and we have never | 72 completely departed from TI's way and implemented IMEI storage and retrieval |
| 71 decoded the latter, hence we don't know exactly where and how their IMEI is | 73 "by the book" instead - their IMEI is stored in the physically immutable OTP |
| 72 stored. If you wish to run FreeCalypso firmware on these phones, you have to | 74 cells of their Intel-style flash chip's protection register. Once we have made |
| 73 set your own IMEISV for our fw even if you are not seeking to make it different | 75 this discovery, our fc-loadtool now offers a new flash compal-imei command for |
| 74 from the factory-assigned one, as we don't know how to retrieve the latter. | 76 reading and saving this factory IMEI. This Compal factory OTP record is a true |
| 77 15-digit IMEI with the Luhn check digit at the end, no blurring between IMEI and | |
| 78 IMEISV here. Compal's firmwares add their own SV digits identifying different | |
| 79 fw versions - their version is truly done "by the book". | |
| 75 | 80 |
| 76 Changing the IMEI | 81 Changing the IMEI |
| 77 ================= | 82 ================= |
| 78 | 83 |
| 79 When someone says that they wish to change the IMEI on their phone, they need | 84 When someone says that they wish to change the IMEI on their phone, they need |
| 99 /pcm/IMEI in FFS, your new IMEISV will take effect not only with FreeCalypso | 104 /pcm/IMEI in FFS, your new IMEISV will take effect not only with FreeCalypso |
| 100 firmware, but also with the legacy mokoN fw versions, because they all look in | 105 firmware, but also with the legacy mokoN fw versions, because they all look in |
| 101 /pcm/IMEI. The same does NOT hold with Compal/Motorola or Foxconn/Pirelli | 106 /pcm/IMEI. The same does NOT hold with Compal/Motorola or Foxconn/Pirelli |
| 102 phones, however: if you wish to change their IMEI to be seen by their original | 107 phones, however: if you wish to change their IMEI to be seen by their original |
| 103 proprietary firmwares, you are on your own, as we do not currently have any | 108 proprietary firmwares, you are on your own, as we do not currently have any |
| 104 tools for accomplishing such a feat. | 109 tools for accomplishing such a feat. Furthermore, changing the IMEI seen by |
| 110 Compal's proprietary fw would require locating the IMEI reading code in their | |
| 111 fw and patching that code, as the IMEI record itself in the flash chip's | |
| 112 protection register is physically immutable. On the Pirelli DP-L10 the feat | |
| 113 would be simpler, as their factory data block can be rewritten - but we haven't | |
| 114 produced a tool for fooling Pirelli IMEIs, as there is no current need for such | |
| 115 a tool. | |
| 105 | 116 |
| 106 IMEI handling in FreeCalypso | 117 IMEI handling in FreeCalypso |
| 107 ============================ | 118 ============================ |
| 108 | 119 |
| 109 The FreeCalypso family of projects has adopted the following IMEI storage and | 120 The FreeCalypso family of projects has adopted the following IMEI storage and |
