引言
大家对于IMEI这个标识码应该都不陌生,通常通过手机拨打*#06#号码就能查询到它,作为设备的唯一身份证明。然而,IMEI的功能是否仅限于设备识别呢?本文将深入解析IMEI的核心概念及其广泛应用,帮助读者全面理解这串看似简单的数字所蕴含的重要信息
IMEI的核心定义
IMEI,全称为International Mobile Equipment Identity,即国际移动设备识别码,也被称作手机序列号或设备串号。它是专门用于在移动通信网络中识别每一部独立手机或其他移动通信设备的独特编码,可以视为移动通信领域的”身份证”。目前,IMEI主要由15位数字构成。
IMEI的编码结构具有特定的含义:首先是TAC(Type Allocation Code,类型分配码),这部分由8位数字组成(早期版本为6位),主要用于区分不同的手机品牌和型号。TAC码的前两位是分配机构标识(Reporting Body Identifier),代表负责分配IMEI码的机构,例如01代表美国CTIA,35代表英国BABT,86代表中国TAF等。这部分编码由GSMA及其授权机构统一管理。
在早期TAC码为6位的手机设计中,还包括FAC(Final Assembly Code,最终装配代码),由2位数字构成,主要用于制造商内部区分产品的生产地点。其次是SNR(Serial Number,序列号),从第9位开始的6位数字,用于区分每部手机的具体生产序列号。最后一位CD(Check Digit,校验码)则是通过Luhn算法从前14位数字计算得出,起到验证数据完整性的作用。
IMEI与IMEISV的区别解析
在网络运营商的后台数据统计中,许多人发现有时会同时出现15位和16位的设备标识码,这容易引起混淆。实际上,标准的IMEI始终是15位长,而16位的标识码实际上是IMEISV(International Mobile Equipment Identity and Software Version Number,国际移动设备识别码和软件版本号)。运营商后台看到的16位数据,实际上是TAC型号分配码+SNR序列号+SVN(Software Version Number,软件版本号)的组合,而不包含校验位。通过对比图1和图2所示的结构图,可以看出IMEISV与IMEI的主要区别在于包含了SVN软件版本号,这一特征使得同一型号的不同软件版本手机能够被有效区分。
图1: IMEI结构示意图
图2:IMEISV结构示意图
IMEI上报机制及其重要意义
在手机设备与网络建立连接的过程中,设备通常会主动上报IMEI信息。以5G网络为例,在初始注册流程中,UE(User Equipment,用户设备)会将IMEI or IMEISV or GUTI(Global Unique Temporary Identifier,全球唯一临时标识符)信息包含在IDENTITY RESPONSE(身份响应)消息中。那么,究竟在什么情况下会特别上报IMEI信息呢?当网络侧未能获取终端的IMEI信息时,网络会在IDENTITY REQUEST(身份请求)消息中包含类型为”IMEI”的Identity type字段,收到该指令的UE就会在IDENTITY RESPONSE消息中回传IMEI信息。
图3:IDENTITY RESPONSE消息格式
图4:Identity type字段具体内容
为什么通常在初始注册阶段特别上报IMEI信息呢?因为IMEI信息具有极高的重要性。网络需要验证终端设备的IMEI是否合法,一旦发现不合规的IMEI,将直接下发REGISTRATION REJECT(注册拒绝)消息,并在消息中携带5GMM_Cause码(#3或#6)。收到该响应的终端会自动将USIM卡置于失效状态,具体表现为:将5GS更新状态设置为5U3 ROAMING NOT ALLOWED(不允许漫游),并删除所有相关的5G-GUTI、最后访问注册的TAI(Tracking Area Identifier)、TAI列表和ngKSI(Next Generation Core Network Key Identifier)。
#3 (Illegal UE); or
#6 (Illegal ME).
The UE shall set the 5GS update status to 5U3 ROAMING NOT ALLOWED (and shall store it according to subclause 5.1.3.2.2) and shall delete any 5G-GUTI, last visited registered TAI, TAI list and ngKSI.
In case of PLMN, the UE shall consider the USIM as invalid for 5GS services until switching off or the UICC containing the USIM is removed;
DC校验位的计算原理及空口传输特性
在实际观察无线接口信令时,人们会发现终端显示的IMEI与空口传输的IMEI在最后一位存在明显差异——空口传输的IMEI最后一位始终为0。下面将详细解释这一现象背后的原因(参见图5所示)。
图5:无线接口信令中的IMEI信息展示
首先,关于DC校验位的计算原理需要追溯到上世纪60年代,由IBM科学家Luhn提出的Luhn算法(也称10算法)。这一算法被广泛应用于信用卡号、IMEI、部分国家身份证号和社会保障号码等领域。其核心目的在于防止人工输入数字时因人为错误导致数据不准确,通过特定计算方法确保最终结果模10等于0,表示数据有效;若不等于0,则表示数据存在错误。
DC的计算过程主要分为三个步骤:(1)从右往左对除去最后一位CD的14位IMEI进行编号(D1至D14),对奇数位位置的数字乘以2;(2)如果奇数位乘以2后的结果超过10,则减去9处理,例如乘以2得到18时,减去9变为9;然后将D14至D1位的数字进行累加;(3)如果第二步累加后的结果能被10整除,则CD位为0;否则,CD位应为比该结果大的最接近且能被10整除的数减去该结果的值,例如,如果累加结果为53,能被10整除的最小数是60,因此CD位为60-53=7。
图6:DC计算流程图
最后需要解答的问题是:IMEI的最后一位CD位是否需要在OTA(Over-the-Air,空中下载)过程中传输?根据协议23003的明确规定,当IMEI通过无线接口传输时,CD位不会被实际发送,而是用0代替。这完美解释了为何在OTA日志中观察到的IMEI在空口传输时最后一位始终为0的现象
The IMEI (14 digits) is complemented by a Check Digit (CD). The Check Digit is not part of the digits transmitted when the IMEI is checked, as described below. The Check Digit is intended to avoid manual transmission errors, e.g. when customers register stolen MEs at the operator’s customer care desk. The Check Digit is defined according to the Luhn formula, as defined in annex B. Ensure that the last digit of the IMEI is set to zero.
