1
0
Fork 0
mirror of https://github.com/M66B/NetGuard.git synced 2024-12-26 09:48:46 +00:00
NetGuard/README.md
2015-11-06 22:02:16 +01:00

8.6 KiB

NetGuard

NetGuard is a simple way to block access to the internet - no root required. Applications can individually be allowed or denied access to your WiFi and/or mobile connection.

Blocking access to the internet can help:

  • reduce your data usage
  • save your battery
  • increase your privacy

Downloads:

Features

  • No root required
  • Simple to use
  • Free of charge
  • Open source
  • No extra battery usage
  • No bandwidth reduction
  • No calling home
  • No tracking or analytics
  • No ads
  • IPv4/IPv6 TCP/UDP supported
  • Block system and user applications

NetGuard does not even require the internet permission. NetGuard is possibly the first free and open source no-root firewall for Android.

Most of these features are the result of sending selected traffic to a sinkhole, instead of filtering all internet traffic. This means that advanced features, like address based filtering (needed for ad blocking), traffic logging, and on-demand configuration, are not possible. Routing selected traffic into a sinkhole relies on an API introduced in Android 5.0 (Lollipop), therefore older Android versions can unfortunately not be supported.

Usage

  • Enable the firewall using the switch in the action bar
  • Allow/deny WiFi/mobile internet access using the icons at the right side of the application list

Permissions

  • ACCESS_NETWORK_STATE: to check if the device is connected to the internet through WiFi
  • RECEIVE_BOOT_COMPLETED: to start the firewall when booting the device
  • com.android.vending.BILLING: to use in app billing for donations

Compatibility

Devices / ROMs with a broken VPN implementation:

NetGuard will crash when the package com.android.vpndialogs has been removed or otherwise is unavailable.

Tethering will not work when NetGuard is enabled due to a bug in Android (issue).

Greenifying NetGuard will result in rules not being applied when connectivity changes from WiFi/mobile, changing from passive to active use and changing from roaming/not roaming.

Frequently Asked Questions (FAQ)

(1) Can NetGuard completely protect my privacy?

No - nothing can completely protect your privacy. NetGuard will do its best, but it is limited by the fact it must use the VPN service. This is the trade-off required to make a firewall which does not require root access. The firewall can only start when Android "allows" it to start, so it will not offer protection during early boot-up (although your network may not be loaded at that time). It will, however, be much better than nothing, especially if you are not rebooting often.

If you want to protect yourself more, you can (at least in theory) disable WiFi and mobile data before rebooting, and only enable them on reboot, after the firewall service has started (and the small key icon is visible in the status bar).

Thanks @pulser

(2) Can I use VPN applications while using NetGuard?

If the VPN application is using the VPN service, then no, because NetGuard needs to use this service, and Android allows only one application at a time to use this service.

(3) Can I use NetGuard on any Android version?

No, because NetGuard uses the addDisallowedApplication method, the minimum required Android version is 5.0 (Lollipop).

(4) Will NetGuard use extra battery power?

No, unlike most of the similar closed source alternatives.

(5) Can you add selective allowing/blocking applications/IP addresses?

Unfortunately this is not possible without using significant battery power and adding complex code to do network translation from OSI layer 3 to layer 4 (and thus implementing a TCP/IP stack), which will inevitably introduce bugs as well. This is how most (all?) other no-root firewalls work. NetGuard is unique, because it doesn't implement a TCP/IP stack and is therefore both highly efficient and simple.

For more advanced use cases, rooting your device and using an iptables based firewall, like AFWall+ might be a better option, and will not sacrifice any battery power.

(6) Will NetGuard send my internet traffic to an external (VPN) server?

No. It cannot even do this, because NetGuard does not even have the internet permission.

(7) Why are applications without internet permission shown?

Internet permission can be granted with each application update without user consent. By showing all applications, NetGuard allows you to block internet access before such an update occurs.

(8) What do I need to enable for Google PlayStore to work?

You need 3 things enabled (use search in NetGuard to find them quickly):

  • com.android.vending
  • com.google.android.gms
  • com.android.providers.downloads

Since Google PlayStore has the tendency to check for updates or even download them all by itself (even if no account is associated) one can keep it in check by enabling "Allow when device in use" for all these 3 apps. Click on the down arrow on the left side of an app name and check the option but leave the network icons alone, leave them red (hence blocked). The little human icon will appear for that app, so you can still open PlayStore and update/install/uninstall apps since it will have internet access, but once you close it, it won't use any bandwidth.

Support

Please do not use GitHub for questions.

Contributing

Translations:

Current translations:

  1. Arabic (ar)
  2. Dutch (nl)
  3. Simplified Chinese (zh-rCN)
  4. English
  5. French (fr)
  6. German (de)
  7. Italian (it)
  8. Korean (ko)
  9. Romanian (ro)
  10. Slovak (sk)
  11. Spanish (es)

Please note that you agree to the license below by contributing, including the copyright.

Attribution

NetGuard uses:

License

GNU General Public License version 3

Copyright (c) 2015 Marcel Bokhorst (M66B)

All rights reserved

This file is part of NetGuard.

NetGuard is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your discretion) any later version.

NetGuard is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.

You should have received a copy of the GNU General Public License along with NetGuard. If not, see http://www.gnu.org/licenses/.