定制android ROM禁止SIM卡状态改变系统弹出提示框

按上一篇文章,搭建可修改android 系统的环境

http://blog.csdn.net/karts/article/details/64124098


SIM卡状态改变系统弹出提示框,是在 Keyguard 这个apk里面进行的。

1、copy设备的 /system 目录到本机。

2、使用 apktool,对所有apk进行 反编译,主要获取 strings.xml。

3、然后在xml查找 “SIM card is unplugged”。

4、发现<string name="lockscreen_missing_sim_dialog_message">SIM card is unplugged. Please make sure your SIM card is properly plugged in.</string>

在Keyguard apk里面, 那初步判断,这个功能是在 该apk实现。

5、接着在 smali 文件里查找 lockscreen_missing_sim_dialog_message

.field public static final lockscreen_missing_sim_dialog_message:I = 0x7f05002f

6、接着看看 0x7f05002f (2131034159十进制,在class文件查看java源码的时候,会是10进制)在 smali 哪里使用, 

如果smali 看得比较麻烦,用dex2jar,得到class,然后用jd-gui 查看java源码,对照着smali 看。

7、发现是在 KeyguardDialogManager 里面的  private void handleSIMCardChanged() 弹出提示框的。

private void handleSIMCardChanged()
  {

...........
    if ((SIM_DETECT_REMOVE.equals(str)) && (i == 0))
    {
      localBuilder.setCancelable(false);
      localBuilder.setTitle(17039380);
      localBuilder.setIcon(17301543);
      localBuilder.setMessage(2131034159);
      localObject = this.mContext.getResources().getString(2131034159);
      localBuilder.setMessage(this.mIOperatorSIMString.getOperatorSIMString((String)localObject, -1, IOperatorSIMString.SIMChangedTag.UIMSIM, this.mContext));
      localBuilder.setPositiveButton(17039370, null);
      this.mPromptView = null;
    }

里面的 2131034159,就是提示框的文本了。

8、修改 smali 文件,让函数直接返回,那就不会弹提示框了。

.method private handleSIMCardChanged()V
........

    const/4 v9, 0x0

    return-void


然后重新编译,签名apk,放进设备,大功告成!


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值