我正在使用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或其他一些数字。有办法吗?谢谢。
答案 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中的那个。
答案 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。