基本概念
国内买的行货手机都是没有锁网锁卡的,所以大多数国人都不知道这是个什么功能。但是如果是关心水货苹果手机的果粉,一般都会知道美国很多运营商定制的苹果手机卖的合约机很便宜,但是多数都加了网络锁。这就意味着,你从一家运营商买的加锁手机,就只能插这家运营商的SIM卡使用了,如果插了其他运营商的卡是用不了的。这就是锁网锁卡的基本概念了。
运营商定制机经常以低于成本价销售,这就决定了它必须在后面2到3年的合约期内,通过用户的电话费来收回成本。如果用户买了手机,回头就插了别家的SIM卡用了,那卖手机的运营商岂不是哭死?最简单的办法就是限制手机不允许使用别家的SIM卡。
换个思路,也说明了只有运营商定制机才会需要添加锁网锁卡的功能,在公开市场上销售的手机是不锁网的。
一个特例是,如果某个国家法律规定不允许销售锁网手机,那即使是定制机,也是不可以加锁的。这个特例就是中国工信部发布的移动电话机定制管理规定,第十一条规定,定制话机不得锁定网络,应允许消费者选择其他电信运营企业提供的同制式网络服务,并能实现基本的通信功能。所以国内的定制机也是不会锁网锁卡的,移动联通们只能从网络侧做检查,要求客户每个月至少插指定的SIM卡用一次。
锁网类型
前面提到了最基本的锁网类型,专业一点称为网络锁,锁的内容是MCC+MNC。但是锁网锁卡并不是只有这一种,通信协议”etsi ts 101.624”规定了5种锁网类型,如下图所示
这5种锁网类型分别是
• Network Lock,网络锁。锁MCC+MNC。
• Network Subset,子网络锁。锁MCC+MNC+子网号(IMSI的6-7位)
• SP(service provider),业务提供商锁。锁MCC+MNC+GID1
• Corporate,公司锁。锁MCC+MNC+GID1+GID2。
• SIM,SIM卡锁,锁指定SIM卡。
根据笔者多年从业经验,大多数运营商只锁Network锁,锁Network Subset和SP的不多,锁Corporate的几乎没有。锁SIM卡锁的很少见,而且没见过手机出厂的时候就锁定的,只见过要求锁插入的第一张SIM卡。网络锁一般也不是只能用一组MCC+MNC,也可以是多组。
上面提到的MCC、MNC、Subset、SIM都从IMSI获取,SP从EF-GID1获取,Corporate从EF-GID2获取。
加锁方法
最常用的加锁方法为出厂时由生产线加锁,这种加锁一般分成两步。
第一步,软件开发人员根据运营商的需求按指定规范生成锁网锁卡配置文件。配置文件中需要包含锁网类型,锁网参数,是否允许解锁,最大解锁次数等参数。
第二步,手机产线上,生产人员在生产工具中导入配置文件,对手机进行加锁。生产工具需要随机生成一个解锁码,然后将锁网参数和解锁码一起烧写进手机的NV(Non-Volatile,非易变区)中。NV一般保存了手机的校准信息、IMEI号等不可擦除的信息,即使重新烧写版本一般也不会擦除这一块区域的信息,否则很容易让手机变砖,或者至少会让手机信号变差。同时,生产工具需要将每一台手机的IMEI号和对应的解锁码保存下来,发货时一起交给运营商。当然,解锁码也可以不是随机生成,而是根据算法生成的,但是现在一般不采用这种方法了,因为太容易被泄漏。
所以对应的,除了手机系统中需要有对应的功能外,生产线的生产工具也需要支持这个功能才行。
另外,有些运营商会使用OTA方法加锁,还有营业厅卖手机的时候加锁,不过都很少见。
解锁方法
解锁一般有2种方法:网络解锁(OTA方式,over the air)和解锁码解锁(非法破解不算)。
• 网络解锁
网络解锁有两种方法,都是用短消息,但是具体实现有所不同
○ 普通短消息解锁。
流程简单的说就是运营商发送一条普通短消息给手机,里面有IMEI号和解锁码。如果IMEI号和解锁码都正确了,那么手机就进行解锁。当然,这个普通短消息也不是那么普通,因为短消息头中有一个字段(TP-PID)必须配置成解锁短消息类型才行,也就意味着普通用户发不了这种类型的短消息。
○ SMS SIM Data Download解锁。
SMS SIM Data Download是STK的一个功能,指的是网络将短消息发送给SIM卡。这种解锁方式的流程是:
i. 运营商发送短消息给SIM卡,短消息中含有解锁码(注意这里没有IMEI号)。
ii. SIM卡将解锁码保存进SIM卡文件EF-DCK,并触发一个SMS确认消息给网络,即通知网络短消息收到了。
iii. SIM卡发refresh命令给手机,要求手机重新初始化SIM卡。
iv. 手机初始化SIM卡过程中,读取EF-DCK文件,如果里面的解锁码是正确的话,就进行解锁。如果不正确或者为空,则保持锁定状态。
根据笔者多年工作经验,没有遇到过哪家运营商使用这种解锁方式。
• 解锁码解锁
这个理解起来就简单了,当插入其他运营商的SIM卡开机时,手机会弹出不允许使用的提示框,同时要求输入解锁码。如果用户手上有解锁码的话,直接输入,然后手机解锁成功,不再对SIM卡有限制,开机后就可以正常使用了。
SIM卡状态检测
SIM卡初始化过程中,安全方面需要确认PIN码和锁网两种密码,如下图所示。其中PIN码的保护由SIM卡实现,锁网由手机的modem芯片实现。