Need help to increase the SMS limit !

Search This thread

beastlittle

New member
Apr 15, 2010
3
0
GOOD NEWS! and bad news :(

I FOUND GSERVICES!

it is in /data/data/com.google.android.gsf/databases/gservices.db

bad news...the sms thing doesn't seem to be in there...or at least i didn't see it...any ideas people?
 

DancinDirk

Senior Member
Mar 15, 2009
55
2
I FOUND GSERVICES!

it is in /data/data/com.google.android.gsf/databases/gservices.db

bad news...the sms thing doesn't seem to be in there...or at least i didn't see it...any ideas people?

I found that too, tried entering the setting from the previous fix into this db in many different ways, no luck...

anyone know where we can look at the actual code that checks to see if the limit is reached? It might tell us where to put replacement settings.
 

DancinDirk

Senior Member
Mar 15, 2009
55
2
I do find sms_outgoing_check_max_count referenced in settings.java

any thoughts to tweak here? I'm running 2.1 still on my phone since I need the limit removed... Who want's to play?
 

aliendude5300

Senior Member
Jul 4, 2010
60
2
I found that too, tried entering the setting from the previous fix into this db in many different ways, no luck...

anyone know where we can look at the actual code that checks to see if the limit is reached? It might tell us where to put replacement settings.

I've been trying it in the gservices database in the override and main tables with no success. Not sure where the settings would be located...
 

DancinDirk

Senior Member
Mar 15, 2009
55
2
I've been trying it in the gservices database in the override and main tables with no success. Not sure where the settings would be located...

Is there a way to track which database/table the data is pulled from when it's called? I tried pulling some logs when sending texts but didn't find any sms max checks...

Or is there a way to do a search for the setting?
 

DancinDirk

Senior Member
Mar 15, 2009
55
2
I do find sms_outgoing_check_max_count referenced in settings.java

any thoughts to tweak here? I'm running 2.1 still on my phone since I need the limit removed... Who want's to play?

Hey AlienDude I may have found something but don't have a live 2.2 phone to test on, check this:

Code:
http://www.kiwidoc.com/java/l/p/android/android/8/p/android.provider/c/Settings.Secure

Class: android.provider.Settings.Secure

public static final class Settings.Secure
extends Settings.NameValueTable
Secure system settings, containing system preferences that applications can read but are not allowed to write. These are for preferences that the user must explicitly modify through the system UI or specialized APIs for those values, not modified directly by applications.

When you scroll down to sms_outgoing... it looks like this is the new location!

Can you try this for me?

Code:
Open Command Terminal and enter the following:
adb shell
sqlite3 /data/data/com.android.providers.settings/databases/settings.db

Then you'll see: sqlite>

Then enter the following to alter the limit

INSERT INTO secure (name, value) VALUES('sms_outgoing_check_max_count', 1001);

(change 1001 to your new limit)

To turn off the limit enter:
INSERT INTO secure (name, value) VALUES('sms_outgoing_check_interval_ms', 0);

Please let me know if this is it!

thanks!

--Dirk
 
Sep 14, 2010
18
0
negative

i tried this

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

and i get
#sqlite3 /data/data/com.android.providers.settings/databases/settings.db
sqlite3 /data/data/com.android.providers.settings/databases/settings.db
sqlite3: not found
#


so i exited from shell and from "C:/android-sdk-windows/tools>" i entered the
sqlite3 /data/data/com.android.providers.settings/databases/settings.db command and got

SQlite version 3.6.22
Enter ".help" for instructions
Enter SQL statements terminated with a ";"
sqlite>

so i got into it that way but when i try the "INSERT INTO secure (name, value) VALUES('sms_outgoing_check_interval_ms', 0);" command i get the unable to open database thing that was mentioned earlier......
 
Sep 14, 2010
18
0
yep

Yep fully rooted, runnin the motoboy super clean rom

*edit: ok it might make somewhat of a difference that i have a droid 2, not a G1..... but the sqlite should still accept the same commands on both right?
 
Last edited:

aliendude5300

Senior Member
Jul 4, 2010
60
2
Hey AlienDude I may have found something but don't have a live 2.2 phone to test on, check this:

Code:
http://www.kiwidoc.com/java/l/p/android/android/8/p/android.provider/c/Settings.Secure

Class: android.provider.Settings.Secure

public static final class Settings.Secure
extends Settings.NameValueTable
Secure system settings, containing system preferences that applications can read but are not allowed to write. These are for preferences that the user must explicitly modify through the system UI or specialized APIs for those values, not modified directly by applications.

When you scroll down to sms_outgoing... it looks like this is the new location!

Can you try this for me?

Code:
Open Command Terminal and enter the following:
adb shell
sqlite3 /data/data/com.android.providers.settings/databases/settings.db

Then you'll see: sqlite>

Then enter the following to alter the limit

INSERT INTO secure (name, value) VALUES('sms_outgoing_check_max_count', 1001);

(change 1001 to your new limit)

To turn off the limit enter:
INSERT INTO secure (name, value) VALUES('sms_outgoing_check_interval_ms', 0);

Please let me know if this is it!

thanks!

--Dirk

Dirk, I've been trying this before you mentioned it, since I went through the source code of the SMSDispatcher class. I maintain an application that removes the SMS limit for you called InfiniteSMS, as well as a text bombing application called EliteBomb. I've had tried inserting that code into secure, but I still get reports of the sms limit removal not working. But, based on my analysis of SMSDispatcher, the settings are still there. Here's some code that proves that (this code sets the limit for the SMS counter):
Code:
        int check_period = Settings.Secure.getInt(mResolver,
                Settings.Secure.SMS_OUTGOING_CHECK_INTERVAL_MS,
                DEFAULT_SMS_CHECK_PERIOD);
        int max_count = Settings.Secure.getInt(mResolver,
                Settings.Secure.SMS_OUTGOING_CHECK_MAX_COUNT,
                DEFAULT_SMS_MAX_COUNT);
        mCounter = new SmsCounter(max_count, check_period);
 

DancinDirk

Senior Member
Mar 15, 2009
55
2
Dirk, I've been trying this before you mentioned it, since I went through the source code of the SMSDispatcher class. I maintain an application that removes the SMS limit for you called InfiniteSMS, as well as a text bombing application called EliteBomb. I've had tried inserting that code into secure, but I still get reports of the sms limit removal not working. But, based on my analysis of SMSDispatcher, the settings are still there. Here's some code that proves that (this code sets the limit for the SMS counter):
Code:
        int check_period = Settings.Secure.getInt(mResolver,
                Settings.Secure.SMS_OUTGOING_CHECK_INTERVAL_MS,
                DEFAULT_SMS_CHECK_PERIOD);
        int max_count = Settings.Secure.getInt(mResolver,
                Settings.Secure.SMS_OUTGOING_CHECK_MAX_COUNT,
                DEFAULT_SMS_MAX_COUNT);
        mCounter = new SmsCounter(max_count, check_period);

Great little app, wish it worked in 2.2!

Could you think of a way to trace this back to where the setting is stored?

Or maybe a way to change the default values?

How do you make changes to a .java file and use it?
 

aliendude5300

Senior Member
Jul 4, 2010
60
2
Great little app, wish it worked in 2.2!

Could you think of a way to trace this back to where the setting is stored?

Or maybe a way to change the default values?

How do you make changes to a .java file and use it?

It would be possible to make the changes to the java file, but, I think you'd need to use a custom ROM to do that. What you'd need to do is change these lines:
Code:
    /** Default checking period for SMS sent without user permit */
    private static final int DEFAULT_SMS_CHECK_PERIOD = 3600000;

    /** Default number of SMS sent in checking period without user permit */
    private static final int DEFAULT_SMS_MAX_COUNT = 100;
to something like this:
Code:
    /** Default checking period for SMS sent without user permit */
    private static final int DEFAULT_SMS_CHECK_PERIOD = 0;

    /** Default number of SMS sent in checking period without user permit */
    private static final int DEFAULT_SMS_MAX_COUNT = 999999999;
then you'd have to recompile the file. However this is a pain, it can't be done completely on the device, and you'd have to check out most if not all of the android source code from their git repository. Finding the setting and changing it using some simple sqlite manipulation is incredibly simpler.
 

aliendude5300

Senior Member
Jul 4, 2010
60
2
Dirk, I've been trying this before you mentioned it, since I went through the source code of the SMSDispatcher class. I maintain an application that removes the SMS limit for you called InfiniteSMS, as well as a text bombing application called EliteBomb. I've had tried inserting that code into secure, but I still get reports of the sms limit removal not working. But, based on my analysis of SMSDispatcher, the settings are still there. Here's some code that proves that (this code sets the limit for the SMS counter):
Code:
        int check_period = Settings.Secure.getInt(mResolver,
                Settings.Secure.SMS_OUTGOING_CHECK_INTERVAL_MS,
                DEFAULT_SMS_CHECK_PERIOD);
        int max_count = Settings.Secure.getInt(mResolver,
                Settings.Secure.SMS_OUTGOING_CHECK_MAX_COUNT,
                DEFAULT_SMS_MAX_COUNT);
        mCounter = new SmsCounter(max_count, check_period);

Basically, the way this code works, is it first checks for secure settings (not modifiable by applications unless rooted), with an identifiers of "SMS_OUTGOING_CHECK_INTERVAL_MS" and "SMS_OUTGOING_CHECK_MAX_COUNT". If it finds them, it uses the values set in those records, if not, it uses the default values hard coded into the SMSDispatcher source code, which is 100 messages every 3600000 milliseconds (exactly 1 hour). Therefore, if the values are placed in the right table, it will override the default hard-coded values. This source code is from Android 2.2 (Froyo) which proves that these values are still in use, but I think they are now stored in a different location, which would explain why this is not working in 2.2 (Froyo).
 

Top Liked Posts

  • There are no posts matching your filters.
  • 3
    I got it to work! Heres how(taken from link above):

    Open Command Terminal and enter the following:
    adb shell
    sqlite3 /data/data/com.android.providers.settings/databases/settings.db

    Then you'll see: sqlite>

    Then enter the following to alter the limit

    INSERT INTO gservices (name, value) VALUES('sms_outgoing_check_max_count', 101);

    (change 101 to your new limit)

    I didnt try altering the limit so I hope it works for you guys.. but I can confirm this next one works. It completely turns off the limit altogether.

    To turn off the limit enter:
    INSERT INTO gservices (name, value) VALUES('sms_outgoing_check_interval_ms', 0);

    It worked right away for me.. (SMS Bomber >)) Id reboot to be safe.
    1
    Just tried to do this on my newly updated 2.2 evo (OMJ build) and I got

    SQL Error: no such table: gservices

    Has this hack/fix changed in 2.2 or did they remove the limit?