Changes

no edit summary
Line 7: Line 7:     
==Structure of the IMEI and IMEISV (IMEI software version)==
 
==Structure of the IMEI and IMEISV (IMEI software version)==
The IMEI (15 decimal digits: 14 digits plus a check digit) or IMEISV (16 decimal digits: 14 digits plus two software version digits) includes information on the origin, model, and serial number of the device. The structure of the IMEI/SV is specified in [http://www.3gpp.org/ftp/Specs/html-info/23003.htm 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 algorithm|Luhn check digit]] at the end. For the IMEI format prior to 2003, the GSMA guideline was to have this Check Digit always transmitted to the network as zero. This guideline seems to have disappeared for the format valid from 2003 and onwards.<ref>GSM Association, [http://www.gsma.com/documents/ts-06-6-0-imei-allocation-and-approval-guidelines/20164/ IMEI Allocation and Approval Guidelines], Version 5.0, 2010-09-01, chapter 2.1.5 vs. D.1.6</ref>
+
The IMEI (15 decimal digits: 14 digits plus a check digit) or IMEISV (16 decimal digits: 14 digits plus two software version digits) includes information on the origin, model, and serial number of the device. The structure of the IMEI/SV is specified in [http://www.3gpp.org/ftp/Specs/html-info/23003.htm 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. For the IMEI format prior to 2003, the GSMA guideline was to have this Check Digit always transmitted to the network as zero. This guideline seems to have disappeared for the format valid from 2003 and onwards.
    
{{As of|2004}}, the format of the IMEI is ''AA-BBBBBB-CCCCCC-D'', although it may not always be displayed this way. The IMEISV does not have the Luhn check digit but instead has two digits for the Software Version Number (SVN), making the format ''AA-BBBBBB-CCCCCC-EE''
 
{{As of|2004}}, the format of the IMEI is ''AA-BBBBBB-CCCCCC-D'', although it may not always be displayed this way. The IMEISV does not have the Luhn check digit but instead has two digits for the Software Version Number (SVN), making the format ''AA-BBBBBB-CCCCCC-EE''
Line 27: Line 27:  
| style="text-align:center;"| FAC
 
| style="text-align:center;"| FAC
 
| style="text-align:center;" colspan="4" rowspan="4"| Serial number
 
| style="text-align:center;" colspan="4" rowspan="4"| Serial number
| style="text-align:center;" rowspan="2"| (Optional) D = [[Luhn algorithm|Luhn checksum]]
+
| style="text-align:center;" rowspan="2"| (Optional) D = Luhn checksum
|-
+
|
 
| New IMEI
 
| New IMEI
 
| style="text-align:center;" colspan="5"| TAC
 
| style="text-align:center;" colspan="5"| TAC
Line 40: Line 40:  
| style="text-align:center;" colspan="5"| TAC
 
| style="text-align:center;" colspan="5"| TAC
 
|}
 
|}
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.
+
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.
From January 1, 2003 until that April 1, 2004, the [[Final Assembly Code|FAC]] for all phones was 00.
+
From January 1, 2003 until that April 1, 2004, the FAC for all phones was 00.
 
After April 1, 2004, the Final Assembly Code ceased to exist and the Type Allocation Code increased to eight digits in length.
 
After April 1, 2004, the Final Assembly Code ceased to exist and the Type Allocation Code increased to eight digits in length.
   −
In any of the above cases, the first two digits of the TAC are the [[Reporting Body Identifier]], which identifies the GSMA-approved group that allocated the TAC.  The RBI numbers are allocated by the Global Decimal Administrator. IMEI numbers being decimal allows them to be distinguished from an [[MEID]], which is hexadecimal and always has 0xA0 or larger as its first two hexadecimal digits.
+
In any of the above cases, the first two digits of the TAC are the Reporting Body Identifier, which identifies the GSMA-approved group that allocated the TAC.  The RBI numbers are allocated by the Global Decimal Administrator. IMEI numbers being decimal allows them to be distinguished from an MEID, which is hexadecimal and always has 0xA0 or larger as its first two hexadecimal digits.
    
For example, the old style IMEI code 35-209900-176148-1 or IMEISV code 35-209900-176148-23 tells us the following:
 
For example, the old style IMEI code 35-209900-176148-1 or IMEISV code 35-209900-176148-23 tells us the following:
Line 58: Line 58:     
The new CDMA Mobile Equipment Identifier ([[MEID]]) uses the same basic format as the IMEI.
 
The new CDMA Mobile Equipment Identifier ([[MEID]]) uses the same basic format as the IMEI.
  −
=== Check digit computation ===
  −
{{see also|Luhn algorithm}}
  −
The last number of the IMEI is a [[check digit]] calculated using the [[Luhn algorithm]], as defined in the [http://www.gsma.com/newsroom/wp-content/uploads/2012/06/ts0660tacallocationprocessapproved.pdf IMEI Allocation and Approval Guidelines]:
  −
<blockquote>
  −
The Check Digit shall be calculated according to [[Luhn algorithm|Luhn formula]] (ISO/IEC 7812). (See GSM 02.16 / 3GPP 22.016). 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.
  −
  −
The presentation of the Check Digit 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 Check Digit unless it is printed outside of the packaging, and on the ME IMEI/Type Accreditation label.
  −
  −
The check digit is not transmitted over the radio interface, nor is it stored in the EIR database at any point. Therefore, all references to the last three or six digits of an IMEI refer to the actual IMEI number, to which the check digit does not belong.
  −
</blockquote>
  −
  −
The check digit is validated in three steps:
  −
# Starting from the right, double every other digit (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 354530085441085?,
  −
{| class="wikitable" style="text-align:center"
  −
|-
  −
! IMEI
  −
| style="width:1.5em" |4
  −
| style="width:1.5em" |9
  −
| style="width:1.5em" |0
  −
| style="width:1.5em" |1
  −
| style="width:1.5em" |5
  −
| style="width:1.5em" |4
  −
| style="width:1.5em" |2
  −
| style="width:1.5em" |0
  −
| style="width:1.5em" |3
  −
| style="width:1.5em" |2
  −
| style="width:1.5em" |3
  −
| style="width:1.5em" |7
  −
| style="width:1.5em" |5
  −
| style="width:1.5em" |1
  −
| style="width:1.5em" | x
  −
|-
  −
! Double every other
  −
|4
  −
| style="background: #FFA;" |18
  −
| 0
  −
| style="background: #FFA;" |2
  −
| 5
  −
| style="background: #FFA;" |8
  −
|2
  −
| style="background: #FFA;" |0
  −
| 3
  −
| style="background: #FFA;" |4
  −
| 3
  −
| style="background: #FFA;" |14
  −
|5
  −
| style="background: #FFA;" |2
  −
| x
  −
|-
  −
! Sum digits
  −
| colspan="15" style="white-space: nowrap" | 4 + (1 + 8) + 0 + 2 + 5 + 8 + 2 + 0 + 3 + 4 + 3 + (1 + 4) + 5 + 2 + x = 52 + x
  −
|}
  −
To make the sum divisible by 10, we set x = 8, so the complete IMEI become 490154203237518
 

Navigation menu