使用root访问权限删除KItKat上的SMS限制

时间:2015-02-09 15:32:10

标签: android

我正在使用KitKat,并希望尝试增加短信限制,以便我可以同时发送更多短信。

我尝试了一些适用于较旧Android版本的工具,但似乎他们在KitKat中改变了一些东西,所以没有任何作用。因此,我决定以编程方式自己完成。

Here我发现了这个:

public class SmsUsageMonitor {
  private static final String TAG = "SmsUsageMonitor";
  private static final boolean DBG = false;
  private static final boolean VDBG = false;
  private static final String SHORT_CODE_PATH = "/data/misc/sms/codes";

  // Default checking period for SMS sent without user permission.
  private static final int DEFAULT_SMS_CHECK_PERIOD = 60000;

  // Default number of SMS sent in checking period without user permission.
  private static final int DEFAULT_SMS_MAX_COUNT = 30;

  ....

}

现在我想知道如何将其更改为DEFAULT_SMS_MAX_COUNT到100或其他一些数字。有办法吗?谢谢。

2 个答案:

答案 0 :(得分:1)

寻找:

代码:     sput-boolean v1,Lcom / android / mms / MmsConfig; - > mEnablePickContactLimit:Z 将sput-boolean从v1更改为v0

第2步。

寻找:

代码: .method public static setRecipientLimit(I) 删除下面:

代码: sput p0,Lcom / android / mms / MmsConfig; - > mRecipientLimit:I 第3步。

寻找:

代码: .method public static getRecipientLimit()I 删除下面:

代码: sget v0,Lcom / android / mms / MmsConfig; - > mRecipientLimit:I 第4步。

寻找:

代码: .method public static getEnablePickContactLimit()Z 删除下面:

代码: sget-boolean v0,Lcom / android / mms / MmsConfig; - > mEnablePickContactLimit:Z 保存并关闭此文件。

第5步。

接下来,导航到并打开\ com \ android \ mms \ ui \ ComposeMessageFragment.smali

寻找:

代码: .method public static getPickContactLimit()I 这也可能是200限制的原因,因为0xc8 = 200.删除它对200限制没有任何作用。但是将其更改为更高的数字可能会进一步增加限制。我没有想过要找出来。报告任何调查结果。

删除以下内容:

代码:  const / 16 v0,0xc8 保存并关闭此文件。

第二部分 - 增加短信时限

第1步。 导航并打开\ com \ android \ mms \ util \ RateController.smali

寻找:

代码: .field private static final RATE_LIMIT:I = 0x64 此值为十六进制格式,因此我们看到0x64 = 100.因此,要将此值增加到1000,只需将0x64更改为0x3e8

保存并关闭此文件。

重新编译classes.dex并替换SecMms.apk中的那个。

致记:http://forum.xda-developers.com/showthread.php?t=2055947

答案 1 :(得分:1)

因为这些常量是在Framework类中声明的,所以它们更多是private static final(并且有充分理由旨在防止恶意应用程序向高级费率号码发送大量SMS),所以这个限制可以是通过更改源代码或使用安全设置Settings.Secure.SMS_OUTGOING_CHECK_MAX_COUNT来覆盖OEM(制造设备的公司)。

对于有根设备,您可能希望通过以下方式对其进行更改:

sqlite3 /data/data/com.android.providers.settings/databases/settings.db

sqlite> INSERT INTO gservices (name, value) VALUES
('sms_outgoing_check_max_count', 10000);

这应该将上限设置为10000。