韩版机泛泰A850改mms.apk去除收到短信的国家代码

适用于泛泰A850K,系统版本S0837210

 

改mms.apk去除这些国家代码:"+86"(大陆),"+886"(台湾),"+852"(香港),"+853"(澳门),"+84"(越南) ,"+60"(马来西亚)

需要注意的是台湾的手机号码比较特殊,保留前缀0

举例:

大陆:+86 12345678910 处理后12345678910

香港:+852 12345678910 处理后12345678910

澳门:+853 12345678910 处理后12345678910

越南:+84 12345678910 处理后12345678910

马来西亚:+60 12345678910 处理后 12345678910

台湾:+886 12345678910 处理后012345678910

 

Java、samli、baksmali、dex2jar、jd-gui、apktool这些工具和环境请自备,使用方法请自行摸索。

 

Dex或odex反编译成smali汇编代码用于修改。

Dex转为jar,用于修改时对照java代码。

 

以下+号代表增加行,-号代表删除行。


一、com\pantech\app\mms\config\SystemHelpers.java

目标代码分析:

  public static String getPhoneNumber()
  {
    String str = ((TelephonyManager)sContext.getSystemService("phone")).getLine1Number();
    if (str != null)
      return str.replace("+82", "0");
    return "";
  }

要改为

  public static String getPhoneNumber()
  {
    String str = ((TelephonyManager)sContext.getSystemService("phone")).getLine1Number();
    if (str != null)
      return str.replace("+82", "0").replace("+86", "").replace("+886", "0").replace("+852", "").replace("+853", "").replace("+84", "").replace("+60", "");
    return "";
  }


接下来修改smali汇编

com\pantech\app\mms\config\SystemHelpers.smali

const-string v2, "+82"

    const-string v3, "0"
 
     invoke-virtual {v0, v2, v3}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
 
     move-result-object v0
 
+    const-string v2, "+86"
+
+    const-string v3, ""
+
+    invoke-virtual {v0, v2, v3}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v0
+
+    const-string v2, "+886"
+
+    const-string v3, "0"
+
+    invoke-virtual {v0, v2, v3}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v0
+    
+    const-string v2, "+852"
+
+    const-string v3, ""
+
+    invoke-virtual {v0, v2, v3}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v0
+    
+    const-string v2, "+853"
+
+    const-string v3, ""
+
+    invoke-virtual {v0, v2, v3}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v0
+    
+    const-string v2, "+84"
+
+    const-string v3, ""
+
+    invoke-virtual {v0, v2, v3}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v0
+    
+    const-string v2, "+60"
+
+    const-string v3, ""
+
+    invoke-virtual {v0, v2, v3}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v0
+    
     .line 100
     :goto_0
     return-object v0
 
     .line 97
     :cond_0

二、com\pantech\app\mms\data\SmsPersister.java

目标代码分析:

if ((!FeatureConfig.isSKTVendor()) || (!str1.startsWith("+82")))
        break label200;
      str1 = str1.replace("+82", "0");
      break label200;

改为

      if (str1.startsWith("+82"))
      {
        str1 = str1.replace("+82", "0");
        break label200;
      }
      if (str1.startsWith("+86"))
      {
        str1 = str1.replace("+86", "");
        break label200;
      }
      if (str1.startsWith("+886"))
      {
        str1 = str1.replace("+886", "0");
        break label200;
      }
      if (str1.startsWith("+852"))
      {
        str1 = str1.replace("+852", "");
        break label200;
      }
      if (str1.startsWith("+853"))
      {
        str1 = str1.replace("+853", "");
        break label200;
      }
      if (str1.startsWith("+84"))
      {
        str1 = str1.replace("+84", "");
        break label200;
      }
      if (!str1.startsWith("+60"))
        break label200;
      str1 = str1.replace("+60", "");
      break label200;

接下来修改smali汇编

com\pantech\app\mms\data\SmsPersister.smali

     if-eqz v20, :cond_10
 
     .line 763
     const-string v6, ""
 
     .line 770
-    :cond_1
+    :cond_36
     :goto_2
     const-string v20, "address"
 
     move-object/from16 v0, v17
 
     move-object/from16 v1, v20
@@ -2647,18 +2647,12 @@
     goto/16 :goto_1
 
     .line 764
     .end local v3           #destPort:I
     .restart local v6       #mAddress:Ljava/lang/String;
     :cond_10
-    invoke-static {}, Lcom/pantech/app/mms/config/FeatureConfig;->isSKTVendor()Z
-
-    move-result v20
-
-    if-eqz v20, :cond_1
-
     .line 765
     const-string v20, "+82"
 
     move-object/from16 v0, v20
 
     invoke-virtual {v6, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
@@ -2667,12 +2661,180 @@
 
     if-eqz v20, :cond_1
 
     .line 766
     const-string v20, "+82"
 
+    const-string v21, "0"
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v6, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v6
+
+    goto/16 :goto_2
+    
+    :cond_1
+
+    const-string v20, "+86"
+
+    move-object/from16 v0, v20
+
+    invoke-virtual {v6, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v20
+
+    if-eqz v20, :cond_31
+
+    const-string v20, "+86"
+
+    const-string v21, ""
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v6, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v6
+
+    goto/16 :goto_2
+    
+    :cond_31
+
+    const-string v20, "+886"
+
+    move-object/from16 v0, v20
+
+    invoke-virtual {v6, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v20
+
+    if-eqz v20, :cond_32
+
+    const-string v20, "+886"
+
+    const-string v21, "0"
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v6, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v6
+
+    goto/16 :goto_2
+    
+    :cond_32
+    
+    const-string v20, "+852"
+
+    move-object/from16 v0, v20
+
+    invoke-virtual {v6, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v20
+
+    if-eqz v20, :cond_33
+
+    const-string v20, "+852"
+
+    const-string v21, ""
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v6, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v6
+
+    goto/16 :goto_2
+    
+    :cond_33
+
+    const-string v20, "+853"
+
+    move-object/from16 v0, v20
+
+    invoke-virtual {v6, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v20
+
+    if-eqz v20, :cond_34
+
+    const-string v20, "+853"
+
+    const-string v21, ""
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v6, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v6
+
+    goto/16 :goto_2
+    
+    :cond_34
+  
+    const-string v20, "+84"
+
+    move-object/from16 v0, v20
+
+    invoke-virtual {v6, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v20
+
+    if-eqz v20, :cond_35
+
+    const-string v20, "+84"
+
+    const-string v21, ""
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v6, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v6
+
+    goto/16 :goto_2
+    
+    :cond_35
+    
+    const-string v20, "+60"
+
+    move-object/from16 v0, v20
+
+    invoke-virtual {v6, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v20
+
+    if-eqz v20, :cond_36
+
+    const-string v20, "+60"
+
+    const-string v21, ""
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v6, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v6
+
+    goto/16 :goto_2
+    
     const-string v21, "0"
 
     move-object/from16 v0, v20
 
     move-object/from16 v1, v21

三、com\pantech\app\mms\ui\ComposeMessageActivity.java

目标代码分析:

          if ((FeatureConfig.isLGVendor()) && (str1.startsWith("+")))
          {
            if (str1.startsWith("+82"))
            {
              String str3 = str1.replace("+82", "0");
              str1 = str3.substring(0, str3.length());
              i3++;
            }
          }

改为

          if (str1.startsWith("+"))
          {
            if (str1.startsWith("+82"))
            {
              String str9 = str1.replace("+82", "0");
              str1 = str9.substring(0, str9.length());
              i3++;
            }
            if (str1.startsWith("+86"))
            {
              String str8 = str1.replace("+86", "");
              str1 = str8.substring(0, str8.length());
              i3++;
            }
            if (str1.startsWith("+886"))
            {
              String str7 = str1.replace("+886", "0");
              str1 = str7.substring(0, str7.length());
              i3++;
            }
            if (str1.startsWith("+852"))
            {
              String str6 = str1.replace("+852", "");
              str1 = str6.substring(0, str6.length());
              i3++;
            }
            if (str1.startsWith("+853"))
            {
              String str5 = str1.replace("+853", "");
              str1 = str5.substring(0, str5.length());
              i3++;
            }
            if (str1.startsWith("+84"))
            {
              String str4 = str1.replace("+84", "");
              str1 = str4.substring(0, str4.length());
              i3++;
            }
            if (str1.startsWith("+60"))
            {
              String str3 = str1.replace("+60", "");
              str1 = str3.substring(0, str3.length());
              i3++;
            }
          }

接下来修改smali汇编

com\pantech\app\mms\ui\ComposeMessageActivity.smali

     .line 2733
     invoke-virtual {v13}, Ljava/lang/String;->length()I
 
     move-result v6
 
-    .line 2735
-    invoke-static {}, Lcom/pantech/app/mms/config/FeatureConfig;->isLGVendor()Z
-
-    move-result v20
-
-    if-eqz v20, :cond_5
 
     .line 2736
     const-string v20, "+"
 
     move-object/from16 v0, v20
 
@@ -1422,13 +1416,253 @@
     invoke-virtual {v13, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
 
     move-result-object v13
 
     .line 2740
     add-int/lit8 v14, v14, 0x1
+    
+    :cond_6
 
+    const-string v20, "+86"
+
+    move-object/from16 v0, v20
+
+    invoke-virtual {v13, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v20
+
+    if-eqz v20, :cond_31
+
+    const-string v20, "+86"
+
+    const-string v21, ""
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v13, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v13
+
+    const/16 v20, 0x0
+
+    invoke-virtual {v13}, Ljava/lang/String;->length()I
+
+    move-result v21
+
+    move/from16 v0, v20
+
+    move/from16 v1, v21
+
+    invoke-virtual {v13, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
+
+    move-result-object v13
+    
+    add-int/lit8 v14, v14, 0x1
+
+    :cond_31
+
+    const-string v20, "+886"
+
+    move-object/from16 v0, v20
+
+    invoke-virtual {v13, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v20
+
+    if-eqz v20, :cond_32
+
+    const-string v20, "+886"
+
+    const-string v21, "0"
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v13, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v13
+
+    const/16 v20, 0x0
+
+    invoke-virtual {v13}, Ljava/lang/String;->length()I
+
+    move-result v21
+
+    move/from16 v0, v20
+
+    move/from16 v1, v21
+
+    invoke-virtual {v13, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
+
+    move-result-object v13
+
+    add-int/lit8 v14, v14, 0x1
+
+    :cond_32
+
+    const-string v20, "+852"
+
+    move-object/from16 v0, v20
+
+    invoke-virtual {v13, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v20
+
+    if-eqz v20, :cond_33
+
+    const-string v20, "+852"
+
+    const-string v21, ""
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v13, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v13
+
+    const/16 v20, 0x0
+
+    invoke-virtual {v13}, Ljava/lang/String;->length()I
+
+    move-result v21
+
+    move/from16 v0, v20
+
+    move/from16 v1, v21
+
+    invoke-virtual {v13, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
+
+    move-result-object v13
+
+    add-int/lit8 v14, v14, 0x1
+
+    :cond_33
+
+    const-string v20, "+853"
+
+    move-object/from16 v0, v20
+
+    invoke-virtual {v13, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v20
+
+    if-eqz v20, :cond_34
+
+    const-string v20, "+853"
+
+    const-string v21, ""
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v13, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v13
+
+    const/16 v20, 0x0
+
+    invoke-virtual {v13}, Ljava/lang/String;->length()I
+
+    move-result v21
+
+    move/from16 v0, v20
+
+    move/from16 v1, v21
+
+    invoke-virtual {v13, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
+
+    move-result-object v13
+
+    add-int/lit8 v14, v14, 0x1    
+    
+    :cond_34
+
+    const-string v20, "+84"
+
+    move-object/from16 v0, v20
+
+    invoke-virtual {v13, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v20
+
+    if-eqz v20, :cond_35
+
+    const-string v20, "+84"
+
+    const-string v21, ""
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v13, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v13
+
+    const/16 v20, 0x0
+
+    invoke-virtual {v13}, Ljava/lang/String;->length()I
+
+    move-result v21
+
+    move/from16 v0, v20
+
+    move/from16 v1, v21
+
+    invoke-virtual {v13, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
+
+    move-result-object v13
+
+    add-int/lit8 v14, v14, 0x1    
+    
+    :cond_35
+
+    const-string v20, "+60"
+
+    move-object/from16 v0, v20
+
+    invoke-virtual {v13, v0}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v20
+
+    if-eqz v20, :cond_36
+
+    const-string v20, "+60"
+
+    const-string v21, ""
+
+    move-object/from16 v0, v20
+
+    move-object/from16 v1, v21
+
+    invoke-virtual {v13, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v13
+
+    const/16 v20, 0x0
+
+    invoke-virtual {v13}, Ljava/lang/String;->length()I
+
+    move-result v21
+
+    move/from16 v0, v20
+
+    move/from16 v1, v21
+
+    invoke-virtual {v13, v0, v1}, Ljava/lang/String;->substring(II)Ljava/lang/String;
+
+    move-result-object v13
+
+    add-int/lit8 v14, v14, 0x1       
+    
     .line 2748
     :cond_5
     invoke-static {v13}, Landroid/text/TextUtils;->isEmpty(Ljava/lang/CharSequence;)Z
 
     move-result v20
 
@@ -1445,13 +1679,13 @@
     add-int/lit8 v18, v18, 0x1
 
     .line 2754
     goto :goto_2
 
     .line 2742
-    :cond_6
+    :cond_36
     add-int/lit8 v14, v14, 0x1
 
     .line 2743
     goto :goto_2
 
     .line 2757

四、com\pantech\app\mms\ui\MessageUtils.java

目标代码分析:

  public static String getFromNumber()
  {
    String str = getLocalNumber();
    if ((SystemHelpers.isCurrentInbound()) && (str.startsWith("+82")))
      str = str.replace("+82", "0");
    return str;
  }

改为

  public static String getFromNumber()
  {
    String str = getLocalNumber();
    if ((SystemHelpers.isCurrentInbound()) && (str.startsWith("+82")))
      str = str.replace("+82", "0");
    if ((SystemHelpers.isCurrentInbound()) && (str.startsWith("+86")))
      str = str.replace("+86", "");
    if ((SystemHelpers.isCurrentInbound()) && (str.startsWith("+886")))
      str = str.replace("+886", "0");
    if ((SystemHelpers.isCurrentInbound()) && (str.startsWith("+852")))
      str = str.replace("+852", "");
    if ((SystemHelpers.isCurrentInbound()) && (str.startsWith("+853")))
      str = str.replace("+853", "");
    if ((SystemHelpers.isCurrentInbound()) && (str.startsWith("+84")))
      str = str.replace("+84", "");
    if ((SystemHelpers.isCurrentInbound()) && (str.startsWith("+60")))
      str = str.replace("+60", "");
    return str;
  }

接下来修改smali汇编

com\pantech\app\mms\ui\MessageUtils.smali

    const-string v1, "+82"

    const-string v2, "0"

    invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;

    move-result-object v0

    .line 540
:cond_0
    
+    invoke-static {}, Lcom/pantech/app/mms/config/SystemHelpers;->isCurrentInbound()Z
+
+    move-result v1
+
+    if-eqz v1, :cond_1
+
+    const-string v1, "+86"
+
+    invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v1
+
+    if-eqz v1, :cond_1
+
+    const-string v1, "+86"
+
+    const-string v2, ""
+
+    invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v0
+
+    :cond_1
+    
+    invoke-static {}, Lcom/pantech/app/mms/config/SystemHelpers;->isCurrentInbound()Z
+
+    move-result v1
+
+    if-eqz v1, :cond_2
+
+    const-string v1, "+886"
+
+    invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v1
+
+    if-eqz v1, :cond_2
+
+    const-string v1, "+886"
+
+    const-string v2, "0"
+
+    invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v0
+
+    :cond_2
+    
+    invoke-static {}, Lcom/pantech/app/mms/config/SystemHelpers;->isCurrentInbound()Z
+
+    move-result v1
+
+    if-eqz v1, :cond_3
+
+    const-string v1, "+852"
+
+    invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v1
+
+    if-eqz v1, :cond_3
+
+    const-string v1, "+852"
+
+    const-string v2, ""
+
+    invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v0
+
+    :cond_3
+    
+    invoke-static {}, Lcom/pantech/app/mms/config/SystemHelpers;->isCurrentInbound()Z
+
+    move-result v1
+
+    if-eqz v1, :cond_4
+
+    const-string v1, "+853"
+
+    invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v1
+
+    if-eqz v1, :cond_4
+
+    const-string v1, "+853"
+
+    const-string v2, ""
+
+    invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v0
+
+    :cond_4
+    
+    invoke-static {}, Lcom/pantech/app/mms/config/SystemHelpers;->isCurrentInbound()Z
+
+    move-result v1
+
+    if-eqz v1, :cond_5
+
+    const-string v1, "+84"
+
+    invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v1
+
+    if-eqz v1, :cond_5
+
+    const-string v1, "+84"
+
+    const-string v2, ""
+
+    invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v0
+
+    :cond_5
+    
+    invoke-static {}, Lcom/pantech/app/mms/config/SystemHelpers;->isCurrentInbound()Z
+
+    move-result v1
+
+    if-eqz v1, :cond_6
+
+    const-string v1, "+60"
+
+    invoke-virtual {v0, v1}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v1
+
+    if-eqz v1, :cond_6
+
+    const-string v1, "+60"
+
+    const-string v2, ""
+
+    invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object v0
+
+    :cond_6
+    
     return-object v0
 .end method
 
 .method public static getLocalNumber()Ljava/lang/String;
     .locals 1

五、com\pantech\app\mms\ui\RecipientsEditor.java

目标代码分析:

      if ((FeatureConfig.isLGVendor()) && (paramString.startsWith("+")))
      {
        if (paramString.startsWith("+82"))
        {
          String str4 = paramString.replace("+82", "0");
          String str5 = str4.substring(0, str4.length());
          Toast.makeText(this.hComposer, 2131558467, 0).show();
          addImageBtn(str5, true);
          return false;
        }

改为

      if (paramString.startsWith("+"))
      {
        if (paramString.startsWith("+82"))
        {
          String str16 = paramString.replace("+82", "0");
          String str17 = str16.substring(0, str16.length());
          Toast.makeText(this.hComposer, 2131558467, 0).show();
          addImageBtn(str17, true);
          return false;
        }
        if (paramString.startsWith("+86"))
        {
          String str14 = paramString.replace("+86", "");
          String str15 = str14.substring(0, str14.length());
          Toast.makeText(this.hComposer, 2131558467, 0).show();
          addImageBtn(str15, true);
          return false;
        }
        if (paramString.startsWith("+886"))
        {
          String str12 = paramString.replace("+886", "0");
          String str13 = str12.substring(0, str12.length());
          Toast.makeText(this.hComposer, 2131558467, 0).show();
          addImageBtn(str13, true);
          return false;
        }
        if (paramString.startsWith("+852"))
        {
          String str10 = paramString.replace("+852", "");
          String str11 = str10.substring(0, str10.length());
          Toast.makeText(this.hComposer, 2131558467, 0).show();
          addImageBtn(str11, true);
          return false;
        }
        if (paramString.startsWith("+853"))
        {
          String str8 = paramString.replace("+853", "");
          String str9 = str8.substring(0, str8.length());
          Toast.makeText(this.hComposer, 2131558467, 0).show();
          addImageBtn(str9, true);
          return false;
        }
        if (paramString.startsWith("+84"))
        {
          String str6 = paramString.replace("+84", "");
          String str7 = str6.substring(0, str6.length());
          Toast.makeText(this.hComposer, 2131558467, 0).show();
          addImageBtn(str7, true);
          return false;
        }
        if (paramString.startsWith("+60"))
        {
          String str4 = paramString.replace("+60", "");
          String str5 = str4.substring(0, str4.length());
          Toast.makeText(this.hComposer, 2131558467, 0).show();
          addImageBtn(str5, true);
          return false;
        }

接下来修改smali汇编

com\pantech\app\mms\ui\RecipientsEditor.smali

     invoke-direct {p0, p1}, Lcom/pantech/app/mms/ui/RecipientsEditor;->isMaxDigitLength(Ljava/lang/String;)I
 
     move-result v0
 
     .line 2308
     .local v0, isOverMaxLen:I
-    invoke-static {}, Lcom/pantech/app/mms/config/FeatureConfig;->isLGVendor()Z
-
-    move-result v4
-
-    if-eqz v4, :cond_5
 
     .line 2309
     const-string v4, "+"
 
     invoke-virtual {p1, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
 
@@ -1303,12 +1298,241 @@
     invoke-virtual {p0, p1, v3}, Lcom/pantech/app/mms/ui/RecipientsEditor;->addImageBtn(Ljava/lang/String;Z)V
 
     goto :goto_0
 
     .line 2318
     :cond_4
+    
+    const-string v4, "+86"
+
+    invoke-virtual {p1, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v4
+
+    if-eqz v4, :cond_31
+
+    const-string v4, "+86"
+
+    const-string v5, ""
+
+    invoke-virtual {p1, v4, v5}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object p1
+
+    invoke-virtual {p1}, Ljava/lang/String;->length()I
+
+    move-result v4
+
+    invoke-virtual {p1, v2, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
+
+    move-result-object p1
+
+    iget-object v4, p0, Lcom/pantech/app/mms/ui/RecipientsEditor;->hComposer:Lcom/pantech/app/mms/ui/ComposeMessageActivity;
+
+    invoke-static {v4, v7, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast;
+
+    move-result-object v4
+
+    invoke-virtual {v4}, Landroid/widget/Toast;->show()V
+
+    invoke-virtual {p0, p1, v3}, Lcom/pantech/app/mms/ui/RecipientsEditor;->addImageBtn(Ljava/lang/String;Z)V
+
+    goto :goto_0
+
+    :cond_31
+
+    const-string v4, "+886"
+
+    invoke-virtual {p1, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v4
+
+    if-eqz v4, :cond_32
+
+    const-string v4, "+886"
+
+    const-string v5, "0"
+
+    invoke-virtual {p1, v4, v5}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object p1
+
+    invoke-virtual {p1}, Ljava/lang/String;->length()I
+
+    move-result v4
+
+    invoke-virtual {p1, v2, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
+
+    move-result-object p1
+
+    iget-object v4, p0, Lcom/pantech/app/mms/ui/RecipientsEditor;->hComposer:Lcom/pantech/app/mms/ui/ComposeMessageActivity;
+
+    invoke-static {v4, v7, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast;
+
+    move-result-object v4
+
+    invoke-virtual {v4}, Landroid/widget/Toast;->show()V
+
+    invoke-virtual {p0, p1, v3}, Lcom/pantech/app/mms/ui/RecipientsEditor;->addImageBtn(Ljava/lang/String;Z)V
+
+    goto :goto_0
+
+    :cond_32
+    
+    const-string v4, "+852"
+
+    invoke-virtual {p1, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v4
+
+    if-eqz v4, :cond_33
+
+    const-string v4, "+852"
+
+    const-string v5, ""
+
+    invoke-virtual {p1, v4, v5}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object p1
+
+    invoke-virtual {p1}, Ljava/lang/String;->length()I
+
+    move-result v4
+
+    invoke-virtual {p1, v2, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
+
+    move-result-object p1
+
+    iget-object v4, p0, Lcom/pantech/app/mms/ui/RecipientsEditor;->hComposer:Lcom/pantech/app/mms/ui/ComposeMessageActivity;
+
+    invoke-static {v4, v7, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast;
+
+    move-result-object v4
+
+    invoke-virtual {v4}, Landroid/widget/Toast;->show()V
+
+    invoke-virtual {p0, p1, v3}, Lcom/pantech/app/mms/ui/RecipientsEditor;->addImageBtn(Ljava/lang/String;Z)V
+
+    goto :goto_0
+
+    :cond_33
+    
+    const-string v4, "+853"
+
+    invoke-virtual {p1, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v4
+
+    if-eqz v4, :cond_34
+
+    const-string v4, "+853"
+
+    const-string v5, ""
+
+    invoke-virtual {p1, v4, v5}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object p1
+
+    invoke-virtual {p1}, Ljava/lang/String;->length()I
+
+    move-result v4
+
+    invoke-virtual {p1, v2, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
+
+    move-result-object p1
+
+    iget-object v4, p0, Lcom/pantech/app/mms/ui/RecipientsEditor;->hComposer:Lcom/pantech/app/mms/ui/ComposeMessageActivity;
+
+    invoke-static {v4, v7, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast;
+
+    move-result-object v4
+
+    invoke-virtual {v4}, Landroid/widget/Toast;->show()V
+
+    invoke-virtual {p0, p1, v3}, Lcom/pantech/app/mms/ui/RecipientsEditor;->addImageBtn(Ljava/lang/String;Z)V
+
+    goto :goto_0
+
+    :cond_34
+    
+    const-string v4, "+84"
+
+    invoke-virtual {p1, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v4
+
+    if-eqz v4, :cond_35
+
+    const-string v4, "+84"
+
+    const-string v5, ""
+
+    invoke-virtual {p1, v4, v5}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object p1
+
+    invoke-virtual {p1}, Ljava/lang/String;->length()I
+
+    move-result v4
+
+    invoke-virtual {p1, v2, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
+
+    move-result-object p1
+
+    iget-object v4, p0, Lcom/pantech/app/mms/ui/RecipientsEditor;->hComposer:Lcom/pantech/app/mms/ui/ComposeMessageActivity;
+
+    invoke-static {v4, v7, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast;
+
+    move-result-object v4
+
+    invoke-virtual {v4}, Landroid/widget/Toast;->show()V
+
+    invoke-virtual {p0, p1, v3}, Lcom/pantech/app/mms/ui/RecipientsEditor;->addImageBtn(Ljava/lang/String;Z)V
+
+    goto :goto_0
+
+    :cond_35
+    
+    const-string v4, "+60"
+
+    invoke-virtual {p1, v4}, Ljava/lang/String;->startsWith(Ljava/lang/String;)Z
+
+    move-result v4
+
+    if-eqz v4, :cond_36
+
+    const-string v4, "+60"
+
+    const-string v5, ""
+
+    invoke-virtual {p1, v4, v5}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object p1
+
+    invoke-virtual {p1}, Ljava/lang/String;->length()I
+
+    move-result v4
+
+    invoke-virtual {p1, v2, v4}, Ljava/lang/String;->substring(II)Ljava/lang/String;
+
+    move-result-object p1
+
+    iget-object v4, p0, Lcom/pantech/app/mms/ui/RecipientsEditor;->hComposer:Lcom/pantech/app/mms/ui/ComposeMessageActivity;
+
+    invoke-static {v4, v7, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast;
+
+    move-result-object v4
+
+    invoke-virtual {v4}, Landroid/widget/Toast;->show()V
+
+    invoke-virtual {p0, p1, v3}, Lcom/pantech/app/mms/ui/RecipientsEditor;->addImageBtn(Ljava/lang/String;Z)V
+
+    goto :goto_0
+
+    :cond_36
+    
     iget-object v3, p0, Lcom/pantech/app/mms/ui/RecipientsEditor;->hComposer:Lcom/pantech/app/mms/ui/ComposeMessageActivity;
 
     invoke-static {v3, v7, v2}, Landroid/widget/Toast;->makeText(Landroid/content/Context;II)Landroid/widget/Toast;
 
     move-result-object v3

六、com\pantech\app\mms\util\StringUtils.java

目标代码分析:

public static String replaceInternationalCode(String paramString)
  {
    if (!TextUtils.isEmpty(paramString))
      paramString = paramString.replace("+82", "0").replace("+", "");
    return paramString;
  }

改为

  public static String replaceInternationalCode(String paramString)
  {
    if (!TextUtils.isEmpty(paramString))
      paramString = paramString.replace("+82", "0").replace("+86", "").replace("+886", "0").replace("+852", "").replace("+853", "").replace("+60", "").replace("+84", "").replace("+", "");
    return paramString;
  }

接下来修改smali汇编

com\pantech\app\mms\util\StringUtils.smali

 

     const-string v0, "+82"
 
     const-string v1, "0"
 
     invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
 
+    move-result-object p0
+	
+    const-string v0, "+86"
 
+    const-string v1, ""
 
+    invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object p0
+
+    const-string v0, "+886"
+
+    const-string v1, "0"
+
+    invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object p0
+
+    const-string v0, "+852"
+
+    const-string v1, ""
 
-    invoke-virtual {v0, v1, v2}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+    invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object p0
+
+    const-string v0, "+853"
+
+    const-string v1, ""
+
+    invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object p0
+
+    const-string v0, "+60"
+
+    const-string v1, ""
+
+    invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object p0
+
+    const-string v0, "+84"
+
+    const-string v1, ""
+
+    invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
+
+    move-result-object p0
+
+    const-string v0, "+"
+
+    const-string v1, ""
+
+    invoke-virtual {p0, v0, v1}, Ljava/lang/String;->replace(Ljava/lang/CharSequence;Ljava/lang/CharSequence;)Ljava/lang/String;
 
     move-result-object p0
 
     .line 726
     :cond_0
     return-object p0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值