IMEI

来源:互联网 发布:东德歧视知乎 编辑:程序博客网 时间:2024/04/30 08:44

MEI(International Mobile Equipment Identity)是国际移动设备身份码的缩写,国际移动装备辨识码,是由15位数字组成的"电子串号",它与每台手机一一对应,而且该码是全世界唯一的。每一只手机在组装完成后都将被赋予一个全球唯一的一组号码,这个号码从生产到交付使用都将被制造生产的厂商所记录。

 

MEI分配

  IMEI码由GSM(全球移动通信协会)统一分配,授权BABT(英国通信认证管理委员会)审受.

IMEI组成

   IMEI由15位数字组成,其组成为:

 

  1、前6位数(TAC)是"型号核准号码",一般代表机型。


 

      2、接着的2位数(FAC)是"最后装配号",一般代表产地。   

      3、之后的6位数(SNR)是"串号",一般代表生产顺序号。   

      4、最后1位数(SP)通常是"0",为检验码,目前暂备用。  

      IMEI码具有唯一性,贴在手机背面的标志上,并且读写于手机内存中。它也是该手机在厂家的"档案"和"身份证号"。

 

TAC

  TAC(设备型号核准号码)由欧洲型号认证中心分配。TAC码前三位在不同的时期会发生变化,过去的TAC码前三位在现在的手机上不会出现。过去的一些老型号的手机基本上都是446/448开头,如moto v328 nokia 7110,而且即使同一部手机在不同的时期也会有不同的TAC码如大家最熟悉的8210升级8250,如果前三位是448902就不能升级,因为CPU不同。因此过去所说的只要是同一型号的手机TAC码一定一样的说法是不够准确的,再如爱立信的同一型号手机T39MC在不同地区的地方亦会有不同的号码大陆行货为520406香港则为520407。我们知道这些区别后就可以通过TAC码来进行“设备识别”了,而不必去费心的去牢记IMEI的7.8位数字代表的产地。

 

 

FAC

  FAC(工厂装配码)由厂家编码,通常表示生产厂家及其装配地。有时FAC也不能完全证明手机是否是行货,T68上市后热买一度造成缺货,因此爱立信代理商调集了一部分马来西亚生产(FAC码71)紧急救援,因此这部分有入网许可证T68同样是“行货”。(前面我们我们说过了IMEI和取得入网许可证之间的联系)不过,需要指出的是这部分T68仅限于前期一部分软件版本为R1B的T68。 FAC

 

IMEI

码也不是一成不变的即使是同一产地的产品,如西门子3508I和MOTO C300因为其产量巨大已经从开始的37升级到40,而C300的行货FAC也有80/81/82。尤其重要的是欧洲型号认证中心今年重新分配了IMEI,FAC被和TAC合并在一起,FAC码的数字统一从00开始,因此无论什么型号什么品牌其7,8位均是00、01、02或03这样向后编排。如最新的C289,三星V200 、西门子A55、 索尼爱立信T618都在手机上出现了351***00这样的IMEI。幸好我们有前面介绍过的TAC码鉴别办法,如T618的IMEI虽然过去的FAC现在统一为00但港行和大陆行货TAC后三位上还是有差异的.

 

 

SNR码

  SNR码即序号码,也由厂家分配。识别每个TAC和FAC中的某个设备的。每一部手机的SNR都不会一样.简单的说该号码可以说明手机出产日期的先后,通常数值越大说明该机型出厂时间越晚,所以如果一部刚上市不久的手机的IMEI上出现了6位的数字你就得小心了,因为刚上市不久的手机其SNR最多不会超过四位,大家可以在购机时留意一下。也许这可以作为鉴别手机是否被JS修改IMEI的好办法之一

 

 

SP备用码

  SP备用码,现在的SP基本上没有象过去文章所说那样“一般为0”了,其号码由厂家做设置,可忽略   当然,有些手机在IMEI 上做了自己的定义.爱立信手机在待机时输入*#06#就会出现17位的IMEI,其最后两位的主要作用是用来识别软件版本。这里需要说明的是三星V200也开始使用17位的IMEI了,最后两位的主要作用是用来识别软件版本,一般来说数值越低版本也越低,比如T618的R1A版本为02而R1F版本则为03,最新的R1L版本是05。

 

 

 

 

 

关于Android中的IMEI号码的问题:

 

 

标准IEMI获取方式:

 

package com.rocky.d0318;

import android.app.Activity;
import android.os.Bundle;
import android.telephony.TelephonyManager;
import android.widget.TextView;

public class IMEIActivity extends Activity {
   
    TelephonyManager tm;
   
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        tm=(TelephonyManager)this.getSystemService(TELEPHONY_SERVICE);
        ((TextView)this.findViewById(R.id.TextView01)).setText(tm.getDeviceId());
       
    }
}

 

 

注意添加<uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission>权限。

 

 

 

MID类似的设备如何处理?

 

MID类似设备是没有RIF的。所以这里首先要确保

ro.simulated.phone=true

 

 

然后在SimulatedCommands.java (base/telephony/java/com/android/internal/telephony/test)

中重写 public void getIMEI(Message result)

 

这个里面我们可以用其他的唯一标示来实现这个IMEI值就可以。例如利用MAC地址等等。

 

这样就可以模拟一个IEMI了。这样YouTube,Google Market就可以使用了。

 

 

 

 

原创粉丝点击