2012年8月14日星期二

CMCC On Licensed EVDO Version iPhone 4S

因为某些不可抗因素,我终于还是用上了iPhone 4S,国行C网版。不过在为了网速老老实实换号之前,我尝试了另外一个法子。

双模卡解锁

CDMA是一种很悲催的制式,因为高通死要钱,导致现在CDMA终端很少,网络覆盖也很不全面。为了解决全球漫游的问题,于是就出现了三频机和双模卡这类东西。所谓双模卡,指的是一张卡上有两个号码,C网号和G网号各一个。有C网覆盖的地方用C网,没有则尝试用G网。

电信的龙卡就是一种双模卡,其内有一个IMSI以46003开头的C网号和和一个IMSI以20404开头的G网号(该编号属于荷兰沃达丰)。在大陆以内使用前者,出国之后使用后者。

经过前辈们的试验发现,IMSI以46003和20404开头的卡均可激活C网版国行4S。如果想要在国C上使用移动或联通号,可以制作一张特别的双模卡,写入一个20404开头的C网号和一个移动或联通的G网号,以达到解锁激活的目的。

制作双模卡首先需要破解G网号。召唤某胖纸帮忙逛淘宝选货,凤凰读卡器11.5人刀,电信标双模卡17.5人刀。卡比设备还贵,有点小意外。据传不好的空白双模卡有被烧的风险,不过我买的这种倒是没看见什么负面反馈。至于“4S解锁专用”的大鹏4S和谐卡,比我买的这种贵不少,听了某人的,没选。

(电信标双模卡SIM卡应用中有一项“UIM卡信息”,点击显示“散采客户专用卡”。散采对应的或许是集中采购?这么说该卡未必真跟电信有关系。)

我手上的移动SIM卡是08年办的雅斯拓,不过ICCID内含的制卡年份是84年,很奇葩。用悟空F9解卡,过了半个来小时感觉不太对劲,于是拔下来用橡皮擦了一下金手指重新开始,不到8分钟就解出来了。总数12535,时速113564,似乎是运气很不错的样子。

(烧写SIM卡我不熟,不过我觉得还是有不少安全隐患。首先是写入卡中的数据能不能被直接读出来?我搜了一下,一卡多号的魔术卡可以用SimEasy读取出写入的KI,至于单号卡和双模卡是否可以尚未确认。其次,PIN可以在手机上修改,但PIN被锁可以用PUK解锁,而空白卡的PUK都是很容易被查到的默认值。目前我能确定双模卡的G网号PUK是可以改的,但C网号可不可改,同样尚未确认。基本上,用烧写的手机卡就要注意安全,最好不要掉…

按照网上的说法是先写C网号,却没有解释原因。其实双模卡中虽然有两个号码,但却只有一个ICCID,后写的那个会覆盖掉之前写入的那个。听说C网定制版的4S不但锁网而且锁号,如果锁的是ICCID,或许用这个法子也可以解锁的说。

写C网号的软件是卖家附盘里的UIM Card Personalize(091026 CDMA EVDO)。因为可执行文件特意改名为9600.exe,所以我也老老实实把读卡器的串口速率改了。先Read UIM,将IMSI前几位改为20404就可以写卡了,如果少填了什么必备的数据程序会提示的。

写G网号我用的也是卖家给的程序,文件名叫“双模牛牛版本.exe”,窗口标题“SIM卡写号工具 专业版 V1.0”,可以改PUK。如果是手工输入数据,记得该软件SMSP字段需要+号。

写完的卡我放进中兴U880试过,发现无法接入网络,即使手工选择运营商也不行。再试Nokia N78,可以正常使用。继续试C网的华为C2829,居然还有信号,虽然电话显然不可能打得通。

全部搞定之后剪卡插入4S第一次开机进入并向导,激活正常。不过这毕竟是非常规手段,电话短信是没问题,想要用好还有得折腾。

(去官网查询保修服务和支持期限,发现苹果似乎是从第一次激活的日期开始保修一年,至少我手上这一台是。)

升级、越狱

本机自带系统是5.1(9B179),爬了很久的文我也没找到完美越狱的工具,貌似5.1的完美越狱从来就没出现过?最后还是先升级为5.1.1(9B206),才完成了越狱过程。

越狱工具我用的是绿毒家的Absinthe v2.0.4,redsn0w名气虽然大,可readme里啥有价值的信息都没写,所以。而且用Absinthe来JB那叫一个简单,一次Click就搞定了。

软件源随便吧,威锋网、维维网、178,之类的。

OpenSSH、SBSettings、Insomnia、iFile、Nano,还没开始干正事儿呢,就装了一堆东西了Linux…

问题

使用双模卡解锁的4S国C主要存在三个问题:APN等运营商相关参数不正确;通话记录、短信、来电不显示姓名;本机号码未知。前两个问题都有办法解决,后一个则暂时无解。

运营商参数

4S的运营商设置文件都保持在/System/Library/Carrier Bundles/iPhone/目录下。首先,4S读取SIM卡IMSI前五位,然后与Unknown.bundle/carrier.plist中MandatoryVerif/SIMs数组的内容进行比对。若存在对应元素,则直接从同名子目录下读取运营商设置文件。以我的机器为例,激活卡IMSI前五位是20404,而20404子目录实际上是一个软链接,指向的是Vodafone_nl.bundle。

虽然直接修改修改Vodafone_nl.bundle下的文件也可以达到目的,不过还有个更好的法子。

(据说修改运营商相关文件,需要先装补丁。维维网的源里有,“CDMA iPhone4S 5.1.1 CC破解”。不装会怎样,我没试过。)

打开Unknown.bundle/carrier.plist,MandatoryVerif/SIMs数组中插入一条“20404_ID-898600”的数据。ID-898600表示ICCID以898600开头,这个编码属于移动。

cd "/System/Library/Carrier Bundles/iPhone/"
mkdir 20404_ID-898600
cp 46000/*.* 20404_ID-898600/

在20404ID-898600子目录中,打开version.plist,BuildVersion、CFBundleShortVersionString和CFBundleVersion都改成一个比较大的数,防止运营商数据更新。Info.plist中的CFBundleShortVersionString和CFBundleVersion也一样。然后打开carrier.plist,SupportedSIMs中增加一条“20404ID-898600”。

修改运营商数据可以做不少事,这里能查到一部分资料。不过忙活这么半天,无非就是避免换卡之后APN设置被覆盖。如果不会频繁换卡,也不在乎关于本机中显示一些沃达丰的内容,如此折腾其实没有多大意义,填一下APN就好了。

通话记录、短信、来电不显示姓名

/System/Library/Frameworks/UIKit.framework/PhoneFormats/下有一个UIMobileCountryCodes.plist文件,该文件的内容决定了电话号码的相关格式。

文件中的三位数字Key值,应该就是MCC,也就是ICCID的前三位。以我的机器为例,用于激活的ICCID是204开头,将该文件中的204由默认的nl改为cn即可。

本机号码未知

网上我看到过的解决方案全都试过,均以失败告终。因为本机号码未知,导致对方联系人不能用手机号码,只能用email地址发起iMessage对话

用旧C网手机写入本机号码的法子,我试过华为的C2829和联想的i909。

经查询,我的号码有向00447786205094、00447537410247、00447537410257、00447537410207等号码发送过短信,但并没有收到回信。

2 条评论 :

DaNei 说...

APN那个,国行的ip4 gsm也是要手填的,cmnet什么的。
本机号码送不出去略有悲催,不过也就是影响imsg和facetime,反正你也不太用,而且变相保护隐私……

oCameLo 说...

WCDMA版也需要手工填写是因为CMCC的carrier.plist里原本就没有这些数据。

我忘记改了而已,这篇其实早就写了的…