三、从stk切入手机处理sim卡逻辑异常 把“sim卡应用:没错,我就是m-zone人”去掉的屏蔽sim卡补丁,实际上是干扰了手机处理stk的逻辑。stk(sim application toolkit)固化在sim卡,主要用于提供各种增值服务。而操作过程,详细见@智能卡技术 的文章《关于sim卡的stk应用》: 既 然手机在处理stk的逻辑上确实存在异常,那具体症结在哪呢 本来最正确的做法是调试nokia上面的塞班系统,但塞班资料难寻;后来想到,既然中兴 u880 android 2.3也存在对话框无法关闭问题,不如从它入手来相互印证猜测。为此,使用“adb logcat -b radio”获取中兴u880 android 2.3的相关日志后,搜索display_text进行上下文查找(display_text含义见《stk(三):stk开机启动后流程解析》),发现display_text的上下文都和sim卡操作存在显著相关,比如在读取sim卡上的快速拨号列表时(at+crsm=178,28474)突然要求display_text;还有一处,更是提示卡存在问题,那就是手机无法读取sim卡上的短信: d/gsm ( 1549): [simsmsinterfacemanager] getallmessagesfromef …… v/ril ( 1219): onrequest: send command:at+crsm=xxx,xxxxx,x,x,xx,,xxxxxxxx …… v/marvell_tel_atcmd( 1379): atrespstr: athandle = 327781, resultcode = 3, errcode = 13, respstring = (null) …… d/ril ( 1219): <<====[recv at cmd] +cme error: 13 …… d/rilj ( 1549): [0074]< sim_io error: com.android.internal.telephony.commandexception: generic_failure ...... d/gsm ( 1549): [simsmsinterfacemanager] cannot load sms records d/stk ( 1549): stkappservice: display_text (左边是正常sim卡的读取日志,右边为损坏sim卡的读取日志。) 从 功能机(即非智能机)过来的玩家,大多会对手机可存储联系人和短信的条数有着深刻的印象。功能机上这个数目通常并不多,经常要为难删哪条,还要分配存储在 sim卡和手机上的比例。到了智能机时代,许多原本sim卡承担的功能已经弱化,但从这个错误日志可以看到,由于兼容性的需求,这部分会仍有保留。而两部 手机在处理这个sim卡短信这个地方,确实都存在异常: |