Sign up ×
Android Enthusiasts Stack Exchange is a question and answer site for enthusiasts and power users of the Android operating system. It's 100% free, no registration required.

In Android, is it possible to block apps from accessing the Internet? Many apps will often connect to remote servers in the background, including Google's own apps or system services. Over time this can eat away at a user's data limit set by a mobile carrier. Does Android allow an app to act as a firewall whereby the user can select which apps have access to the Internet? Or does the device have to be rooted to have that ability?

share|improve this question

migrated from Mar 6 '13 at 13:40

This question came from our site for professional and enthusiast programmers.

possible duplicate of How can I prevent my phone from using any kind of internet? – Al E. Mar 6 '13 at 14:30
The closest duplicate we have is Preventing mobile data use for select apps on non-rooted phone?. But this explicitly asks for a non-root solution. Here we do not have this constraint. – Flow Mar 6 '13 at 16:25

11 Answers 11


The app Droidwall will do this, but it requires a rooted android device. It works very well, though, giving you the option of allowing either cellular or wifi internet access to each app (or both or neither), as well as disabling the rules entirely while keeping the settings so you can easily give everything full normal access when desired, then go back to the rules easily without clicking a lot of options.

showing droid wall interface with one app per line and two checkboxes, one for wifi and one for 3G, next to each app


Afwall+ is another very similar app with some compelling additional features. It also lets you choose, on a per-app basis, access to wifi, 3G/4G, and additionally roaming which could be very useful for those who have roaming data charges.

It also allows profiles to be set up so you can easily change configurations without spending time setting all the app permissions if you want, for instance, different configuration for home vs work use.

Like all the other comprehensive solutions it also requires root access.

enter image description here

share|improve this answer
droidwall is old. Use AFWall+ – samsung Apr 29 at 17:15
Droidwall was bought by Avast. Avast now offers it in its app here on Play Store. As obvious, it needs root access. – Firelord Apr 30 at 5:46
@samsung: Could you please write a similar answer about AFWall+? Thanks! – Nicolas Raoul Apr 30 at 9:09
@samsung thanks for the info, I've updated my answer with your suggestion. – Adam Davis Apr 30 at 10:45

Following are some apps that claims to be a firewall, mostly using IP-tables or VPN to restrict internet access to apps:

Root access not required:

Root access required:

Access not mentioned:

Note: These are those apps which were not covered in answers mentioned at the time of writing this answer. There can be many more in Play Store or on the web.

share|improve this answer

You can try the Greenify app.

It saves your battery as well as you data. You can suspend the app and the app only runs when you open it.

share|improve this answer
This would only prevent the app accessing the network when it's not running in foreground; as soon as you want to use it, Greenify resumes ("un-hibernates") it, and it will access the network again. OP asked "to prevent some apps from accessing to internet when wi-fi or mobile data is on" – not "when the app is in background". To me, that includes "when the app is in foreground" (i.e. actively used) – where Greenify wouldn't prevent network access. Unless that's a new feature I've missed, that is :) – Izzy Apr 29 at 11:10
there is no such feature in greenify still :) ... I suggested this app because it will do what the user wants at some extent – Dalvik Apr 29 at 11:26
Yepp, I wasn't saying "it's not an answer" (see my answer, where I pointed that out with a few more details – and even linked yours) – just that it's "somehow incomplete". Don't get me wrong: Greenify is a great app – and yes, it's covering at least part of what the user wants. You've got that upvote for a reason :) – Izzy Apr 29 at 11:28

Without your device, you won't have much choice: you can either disable the network when the app runs in foreground, as LinX64 suggested – or "hibernate" (suspend) it when it goes to background (is not actively used), as suggested by Dalvik. Of course, you could combine the two – which should effectively prevent that app from accessing the network. But still on the cost of bringing your entire network connection down as soon as you want to use that app.

With , things look different: there are apps available dealing with other apps' permissions, allowing you to revoke some of them after you've installed that app. That way you could e.g. revoke the permission to access mobile data and/or WiFi just from that app: Your network connection would not be affected at all (so background-checks for mail and updates in WhatsApp/Viber/Skype/SE-App would keep working) – while the app-in-question would be told "there's no network available currently" (faking a "network down" just for that app).

share|improve this answer
Thanks, @IsmaelMiguel – glitch on the keyboard (typing too fast, caught two neighbor keys at once). Be welcome editing out such typos yourself (earning some rep ;) // Temporary root in this case would only work as long as it's active: removing the permission would make most apps crash, so the "preventer" needs to "permanently fake the network-down" to the app. Same applies to most other permissions: apps get fed fake data like "empty calendar/contact list", "IMEI=0123456789", etc. instead of a real permission-removal. Safer this way :) – Izzy Apr 29 at 15:26
I'm not worried about being safe or not. I cracked the screen of my tablet out of rage because it was too slow. And the ROM where it is installed is protected against re-flashing. I don't even have a recovery menu! (The one with the power button and the volume key). And I'm not worried about apps crashing, as long as nothing else accesses the internet besides VNC. – Ismael Miguel Apr 29 at 16:16
@IsmaelMiguel OK, that's a different situation. See e.g. Revoke App Permissions Without Root? and also check the questions "linked to it". And remember: Expect crashes – especially force-closes. – Izzy Apr 29 at 16:37
Thank you a lot! I would upvote you 100 times just for that! I would love to revoke the right for the bloody apps to start when I turn on the tablet, but it wouldn't have anything to do with this question and your answer. The link you provided would be a great plus on your question, in case the O.P. is as desperate as the other guy. But I will take a look at it. Once again, thank you a lot! – Ismael Miguel Apr 29 at 16:52

Try the app No-Root Firewall. It allows you to control what apps have Internet access over both wifi and cell data. It works by setting up a VPN on your phone.

share|improve this answer

Yes, with APK APP :

Net Blocker - Google Play

To block networks for specified apps:

1. Open "Net blocker"

2. Tap app that you would like to block it from accessing the Internet access

3. Check the network types that you'd like to block

4. "Net blocker" app will automatically disable the Internet connection when the blocked app is running in the foreground

5. A new notification icon will tell you which networks are blocked

6. Tap the notification icon to restore the Internet connection, tap again to disable the Internet

or, check the below link :

Block apps from accessing the Internet on Android device

share|improve this answer
It seems net blocker just turns off or on wi-fi and does nothing else. – user92613 Apr 29 at 10:53
That would mean bringing the entire network connection down as soon as that app is running – so no more update-checks (e.g. for new mails) or GCM notifications (WhatsApp etc.) in the background then. But yeah, without root, not much choice … – Izzy Apr 29 at 11:08

You can also control which apps may access Internet with LostNet Firewall:

While your requirements are pretty simple and many apps can satisfy your needs, with LostNet Firewall you can do a little research on the countries your apps connect to and, may be, you will completely block access to certain countries.

share|improve this answer
Please read the documentation regarding self-promotion in the Help Center. – onik Feb 10 '14 at 10:58

Easy battery saver, as stated above, is a good option. You can get it at google play store. No need to root your device.

share|improve this answer
Can you edit your answer to provide a link to the app? – Mr. Buster Sep 20 '13 at 1:18
You could just upvote the existing answer, instead of giving the same answer. :) – geffchang Sep 20 '13 at 1:59

I use Easy Battery Saver. Choose super power mode and configure the apps that allowed to accessing network.

share|improve this answer
A link to the app would be useful. Could you make it clear whether this app needs root? – Dan Hulme Aug 27 '13 at 17:33
up vote 13 down vote accepted

If you don't have root access on the device, then you can use mobiwol to control the access various apps have to the Internet. Mobiwol creates a 'virtual' VPN connection on the device which allows control of the individual app connections. However, although the app starts when the device starts it is possible that there may be a brief period prior to Mobiwol executing in which apps could get Internet access despite the Mobiwol configuration.

If you have root access, there are more alternatives:

  • Remove the 'internet' permission using an app like Permissions Denied
  • If your kernel supports IPTables, you can use an app such as AFWall+ to control which apps have access to the internet.
share|improve this answer
That's amazing. I spent time searching Google Play and could not find any apps, other than those that required rooting. Yet this app claims to be the only app that can do it without rooting. I'll give it a try. Is it possible in Android to arrange the order in which some apps boot up when the system starts? – AndroidDev Mar 6 '13 at 5:54
Unfortunately, you can't change the sequence in which apps start on phone start-up and since the device isn't rooted you can't actually block apps from loading on start-up. The safest bet is to simply disable your mobile data and wifi prior to restarting your device, and then re-enable it once the device has restarted. – SimeonJM Mar 6 '13 at 6:01

Well I would personally have a service running where I can get the currently running application like here

Also what you can do is that you can turn the mobile packet data off if the activity is the one which you want to block

like here in this example

How to disable Mobile Data on Android

except for this method I don't think there is a easy way you can deny internet to a application because it requested for it at the time of download itself.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.