#去掉“No SIM Card Installed”提示

来源:互联网 发布:stc8 串口发送数据 编辑:程序博客网 时间:2024/05/07 03:27
  • 测试环境

    越狱了的iphone4s,iOS系统版本8.1.3

  • 问题来源

    在测试机上由于没有SIM卡,每次开机或者SpringBoard重启都会提示“No SIM Card Installed”,如下图所示,然后要去点击确定,个人感觉很烦,所以想有没有办法去掉这个提示。

    图1

    • ##去掉提示思路
      把SpringBoard拖到Hopper里面,然后搜索“NO SIM”,搜到的第一个结果如下图所示
      图2

    从图中红色划线处我们看到有一个类SBTelephonyManager,从名字来看,好像是一个用来管理电话相关操作的单例类。用class-dump导出SpringBoard的头文件,找到SBTelephonyManager.h,在这个文件中我们发现了一个-(id)SIMStatus的方法,貌似是获取sim卡状态的,可以看看当前返回的是什么值。用cycript勾住SpringBoard打印该值试试
    图3

    得到的返回值是“kCTSIMSupportSIMStatusNotInserted”,如果我们让这个方法返回“kCTSIMSupportSIMStatusInserted”是不是就可以去掉这个提示呢,下面验证一下

  • 编码验证

    通过THEOS创建一个tweak,修改tweak.xm中的内容如下

    %hook SBTelephonyManager- (id)SIMStatus{    NSLog(@"iOSRESIMTEST");    return @"kCTSIMSupportSIMStatusInserted";}%end;

    打包安装验证,结果如下图所示

    图4

    提示没有了!!!

    细心的读者还会发现,图片左上角的”No SIM”变成了“No Service”,应该还有其他的地方也用到了SIMStatus方法,所以当我们改变这个方法的返回值时,也改变了左上 角的显示文字,至于是什么地方,读者请自行去探索。如果你有更好的办法去掉这个提示我们也可以交流交流。

  • 代码地址

    removenosimalert

  • 写在后面

    这是自己的第一篇博客,为了提高自己的表达和写作能力,开始写博客了,也是一个记录和分享自己所学知识的过程,欢迎大家多多交流。

0 0
原创粉丝点击