The IMEI (14 decimal digits plus a check digit) or IMEISV (16 digits) includes information on the origin, model, and serial number of the device. The structure of the IMEI/SV are specified in
3GPP TS 23.003. The model and origin comprise the initial 8-digit portion of the IMEI/SV, known as the Type Allocation Code (TAC). The remainder of the IMEI is manufacturer-defined, with a Luhn check digit at the end (which is never transmitted). As of 2004[update], the format of the IMEI is AA-BBBBBB-CCCCCC-D, although it may not always be displayed this way. The IMEISV drops the Luhn check digit in favour of an additional two digits for the Software Version Number (SVN), making the format AA-BBBBBB-CCCCCC-EE
AA | BBBBBB | CCCCCC | D | EE |
---|
Reporting Body Identifier, indicating the GSMA-approved group that allocated the model TAC | The remainder of the TAC | Serial sequence of the model | Luhn check digit of the entire number (or zero) | Software Version Number (SVN). |
Prior to 2002, the TAC was six digits long and was followed by a two-digit Final Assembly Code (FAC), which was a manufacturer-specific code indicating the location of the device's construction.For example, the IMEI code 35-209900-176148-1 or IMEISV code 35-209900-176148-23 tells us the following:
TAC: 352099 so it was issued by the BABT and has the allocation number 2099
FAC: 00 so it was numbered during the transition phase from the old format to the new format (described below)
SNR: 176148 - uniquely identifying a unit of this model
CD: 1 so it is a GSM Phase 2 or higher
SVN: 23 - The "software version number" identifying the revision of the software installed on the phone. 99 is reserved.
The format changed as of April 1, 2004, when the Final Assembly Code ceased to exist and the Type Approval Code increased to eight digits in length and became known as the Type Allocation Code. From January 1, 2003 until that time the FAC for all phones was 00.The Reporting Body Identifier is allocated by the Global Decimal Administrator; the first two digits must be decimal (i.e., less than 0xA0) for it to be an IMEI and not an MEID.The new CDMA Mobile Equipment Identifier (MEID) uses the same basic format as the IMEI.
Check digit computation
The last number of the IMEI is a check digit calculated using the Luhn algorithm.According to the IMEI Allocation and Approval Guidelines,
The Check Digit is calculated according to Luhn formula (ISO/IEC 7812). See GSM 02.16 / 3GPP 22.016. The Check Digit shall not be transmitted to the network. The Check Digit is a function of all other digits in the IMEI. The Software Version Number (SVN) of a mobile is not included in the calculation. The purpose of the Check Digit is to help guard against the possibility of incorrect entries to the CEIR and EIR equipment [registries]. The presentation of the Check Digit (CD), both electronically and in printed form on the label and packaging, is very important. Logistics (using bar-code reader) and EIR/CEIR administration cannot use the CD unless it is printed outside of the packaging, and on the ME IMEI/Type Accreditation label. The check digit shall always be transmitted to the network as "0".
The check digit is validated in three steps:
- Starting from the right, double a digit every two digits (e.g., 7 → 14).
- Sum the digits (e.g., 14 → 1 + 4).
- Check if the sum is divisible by 10.
Conversely, one can calculate the IMEI by choosing the check digit that would give a sum divisible by 10. For the example IMEI 49015420323751?,
IMEI | 4 | 9 | 0 | 1 | 5 | 4 | 2 | 0 | 3 | 2 | 3 | 7 | 5 | 1 | ? |
---|
Double every other | 4 | 18 | 0 | 2 | 5 | 8 | 2 | 0 | 3 | 4 | 3 | 14 | 5 | 2 | ? |
---|
Sum digits | 4 + (1 + 8) + 0 + 2 + 5 + 8 + 2 + 0 + 3 + 4 + 3 + (1 + 4) + 5 + 2 + ? = 52 + ? |
---|
To make the sum divisible by 10, we set ? = 8, so the IMEI is 490154203237518.