Android does a number of things to keep you protected. A lot of the user-facing security features for applications and games has recently been rebranded to Google Play Protect, but most (if not all) has already been included in Android for years. Still, there are a number of limitations that Android puts on the user in order to keep us safe and to look out for us in general. With SMS messages costing a lot of money in various places around the world, the software has a couple of built-in restrictions in place to prevent abusive apps from costing you money.

Specifically, there are two limitations that Google has added to Android which we can actually change with a couple of simple ADB shell commands. The first we're going to show you today deals with the warning message you receive that tells you the smartphone has sent a lot of messages. The second command involves the time frame in which a recent batch of SMS messages is being checked against.

So by default, Android will check to make sure you haven't sent more than 30 SMS messages to anyone within a span of 30 minutes. However, we can manually change both of these values (the number of messages and the time frame) so that we aren't bothered by Android's default SMS limit restrictions. Just a word of warning though, this can end up costing you (if you're charged for each SMS message) and/or you could end up being contacted by your wireless carrier if you abuse the system.


How to Change Android's SMS Limit

  1. Set up ADB as outlined in this previous tutorial.
  2. Enter an ADB shell by sending the following command in the command prompt or terminal window: adb shell
  3. Then run the following command in the ADB shell to change the max SMS limit option: settings put global sms_outgoing_check_max_count 5
  4. So in this example, I am actually reducing the number so Android warns me if I have sent more than 5 SMS messages within 30 minutes. Change "5" to whatever number you want.
  5. Next, you can run the following command to also change the time frame: settings put global sms_outgoing_check_interval_ms 9000000
    android sms limit
  6. And with this command I am reducing the time frame for this check from 30 minutes, to 15 minutes (this value is in milliseconds). You can choose any integer value here for the time frame, just make sure it's something sensible.

Explanation

So just like our other ADB shell tutorials, this is yet another configurable feature that is built into the Android OS. There just isn't a user-facing setting option that we can use to change these values. LineageOS, for example, actually gives you the option to change this value in settings. Google has likely hidden this to prevent apps from abusing it, but it could also have been requested by wireless carriers as well. Either way, we just need ADB access to our smartphone in order to change the values (as you can see from the guide above).

The default SMS limit values of 30 messages within a span of 30 minutes is something that OEMs or carriers themselves can change before they sell the device to you. By default though, Google has set it to 30 messages in a 30 minute period but it's very easy for us to change. In the example above, I decreased the two numbers and that's something you may want to do if you have a child who sends too many text messages (or you just want to limit yourself for whatever reason).

You can also increase these numbers (either or both of them) so that you can essentially bypass the SMS limit entirely. We're unaware of a value you can set to remove the restriction entirely, but you could increase the numbers high enough so that you will likely never see that warning from the Android OS. Just remember, the time value (from step 5 of the guide) is done in milliseconds. The default is set to 1,800,000 milliseconds which is 30 minutes. I cut this in half to 900,000 in the guide above to reduce the time frame down to 15 minutes.