How do I forbid the phone from using ANY mobile data ?

If I use a single byte of mobile data, my plan charges me.

Turns out, the phone used data by itself some days ago.

And NO, before you ask: it did NOT turn on the mobile data function.

Yet, I was charged.

The standard network usage graph is useless to spot what app used the data, and certainly won't tell how it used data without enabling the mobile data function.

Guess all I can do is forbid the phone altogether to access mobile data

Is there a way to do that ?

A prompt, with password, would be great

Thank you all for the solutions so far

  • Rarely, it DOES turn on mobile data itself, but it stays that way, so I can see and revert. (Happens in some reboots, or when I unplug the SIM, while handling the SD card, etc)

  • The carrier said it's the phone's fault, obviously

  • I can't remember the last time I HAD to use mobile data. So, if the solution makes it hard to enable it, won't be a problem.

I'm gonna try and sabotage my APNs

  • 2
    The main problem is VoLTE which means that voice calls are transmitted via data. Therefore als long as VoLTE is activated there will always be a data connection and thus data traffic as the MNOs are tooo dumb to correctly distinguish between VoLTE data and user created data. But without VoLTE for voice the phone would have to switch back to 3G or 2G if they still exist in your country. The other way would be to use VoLTE and if your MNO tries to charge you "fight" against it. That may mean to contradict the invoice every month if they charge you for data.
    – Robert
    Commented Jun 10, 2021 at 18:50

2 Answers 2


It can be done by:

  • Setting "data limit" to "0 MB" (Settings-> Network and Internet -> Mobile network -> "YOUR_MOBILE_NETWORK" -> Data warning and limit)
  • Setting 2G as preferred Network (Settings-> Network and Internet -> Mobile network -> "YOUR_MOBILE_NETWORK" -> Advanced -> Preferred network type)
  • Using ADB:
adb shell settings set global mobile_data 0
adb shell settings set global mobile_data_always_on 0
  • Found those settings. Varies from phone to phone, apparently. But found it. Problem is: now I have a constant warning saying "data limit reached" (translated by me)
    – user113550
    Commented Jun 12, 2021 at 15:20
  • Update: that doesn't work, unfortunately. Right now I received a message warning that I "used" mobile data, even with this option of 0 MB there
    – user113550
    Commented Jun 20, 2021 at 21:59

If the SIM is plugged in, data will be used. The Android OS does lots of things in the background that use data, even if you disable data. Some things that will use dara: Synchronise (turn it off) App Background Data (all apps off, OS will still xfer) Location (will instantly try many methods to get accurate location data) Bluetooth (Nearby devices names/mac addresses get recorded and transmitted over internet) Maybe Aeroplane Mode would cut down a lot.

It is very frustrating, but almost every setting you can "turn on/off" Android will quietly ignore your choice, and do it in the background anyway. Only a rooted device could put in place a root user level firewall to only allow traffic on device wifi, deny all others (3G, 4G, LTE)

  • Yes! Rooted and Xposed. Also, I do have AFWall installed
    – user113550
    Commented Jun 12, 2021 at 15:23
  • Oh excellent. I'm not sure how network devices interfaces are presented to the root user. If it is like Linux, you could shut-down the IP interfaces. They probably initialise during start-up via a script. Comment out anything starting data interfaces (leave yourself a comment about why you made the change). And use your firewall rules to DENY ALL data on those interfaces. As @St0m suggests, use Android tools to disable mobile data. There might be more Android specific 'features' to turn off, or that can help shut-down network traffic.
    – gleep23
    Commented Oct 24, 2021 at 7:50

You must log in to answer this question.