Go to file
M66B 8b641422b5 Native properly compare sequence numbers 2016-02-05 16:30:18 +01:00
app Native properly compare sequence numbers 2016-02-05 16:30:18 +01:00
gradle/wrapper Upgrade to Gradle 2.9 / experimental 0.6.0-alpha1 2016-01-06 12:19:11 +01:00
.gitignore Added address to line script 2016-01-22 21:07:39 +01:00
FAQ.md Append IP version to protocol 2016-01-26 09:09:00 +01:00
LICENSE Initial commit 2015-10-24 19:59:20 +02:00
NetGuard.iml Initial commit 2015-10-24 20:01:55 +02:00
PLAY-ro.md Updated description 2016-01-04 17:42:18 +01:00
PLAY-zh-rCN.md Wifi is Wi-Fi, right? 2015-11-15 21:18:48 +02:00
PLAY.md Updated description 2016-01-04 17:42:18 +01:00
README.md Updated permissions section 2016-02-01 21:14:50 +01:00
TCP_state_diagram.jpg Added TCP state diagram 2016-01-15 08:24:24 +01:00
addr2line.sh Added missing file 2016-01-22 22:37:39 +01:00
build.gradle Upgrade to Gradle 2.9 / experimental 0.6.0-alpha1 2016-01-06 12:19:11 +01:00
checkprefs.sh Hosts file download option 2016-02-03 11:54:17 +01:00
gradle.properties Initial commit 2015-10-24 20:01:55 +02:00
gradlew Initial commit 2015-10-24 20:01:55 +02:00
gradlew.bat Initial commit 2015-10-24 20:01:55 +02:00
notification.png Added screenshots pro features 2016-01-21 15:04:30 +01:00
notification_large.png Added screenshots pro features 2016-01-21 15:04:30 +01:00
play.png Update Play store function image 2015-11-09 09:50:15 +01:00
play.xcf Update Play store function image 2015-11-09 09:50:15 +01:00
screenshot1.png Simplifications 2015-11-09 19:28:09 +01:00
screenshot1_full.png Simplifications 2015-11-09 19:28:09 +01:00
screenshot2.png Updated screenshots 2015-11-15 10:48:44 +01:00
screenshot2_full.png Updated screenshots 2015-11-15 10:48:44 +01:00
settings.gradle Initial commit 2015-10-24 20:01:55 +02:00
strings.sh Removed donate, refactored IAB 2015-12-30 09:00:34 +01:00
trafficlog.png Added screenshots pro features 2016-01-21 15:04:30 +01:00
trafficlog_large.png Added screenshots pro features 2016-01-21 15:04:30 +01:00

README.md

NetGuard

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

Blocking access to the internet can help:

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

NetGuard is the first free and open source no-root firewall for Android.

Features:

  • No root required
  • Simple to use
  • Open source
  • No extra battery usage
  • No bandwidth reduction
  • No calling home
  • No tracking or analytics
  • No ads
  • No internet permission required
  • IPv4/IPv6 TCP/UDP supported
  • Optionally allow when screen on
  • Optionally block when roaming
  • Optionally block system applications
  • Graphical network speed display
  • Material design

There is no other no-root firewall offering all these features. Most other firewall solutions will use extra battery and reduce the overall network speed.

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 unfortunately cannot be supported.

Since NetGuard has no internet permission, you know your internet traffic is not being sent anywhere.

Requirements:

Downloads:

Usage:

  • Enable the firewall using the switch in the action bar
  • Allow/deny Wi-Fi/mobile internet access using the icons along the right side of the application list

You can use the settings menu to change from black list to white list mode.

  • Orange = denied internet access
  • Green = allowed internet access

Compatibility

Devices / ROMs with a broken VPN implementation:

  • Allwinner™ bt1077 / Android ? (reported in the Google Play™ store app) (all traffic blocked)
  • Asus™ ZenFone 2 / Android 5.0.2, reported on XDA (all traffic blocked)
  • Asus™ ZenFone 4 / Android 5.0 (reported in the Google Play™ store app) (all traffic blocked)
  • Asus™ ZenFone 5 / Android 5.0 (reported through Google Play™ store app feedback) (VPN prepare fails)
  • Asus™ ZenPad S 8.0 / Android 5.0, reported on Github (all traffic blocked)
  • BQ™ Aquaris E5/M5 / Android 5.0.2/5.0 (reported in the Google Play™ store app) (all traffic blocked)
  • Lenovo™ Yoga Tablet Pro-1380L / 2 Pro / Android 5.0.1, reported on XDA (all traffic blocked)
  • LGE G Vista / Android 5.0 (reported through Google Play™ store app feedback) (VPN establish fails)
  • Marshall London / Android 5.02, reported on XDA (all traffic blocked)
  • Samsung™ Galaxy A3 / Android 5.0.2, reported on XDA (all traffic blocked)
  • Samsung™ Galaxy A5 / Android 5.0.2, reported on Github (all traffic blocked)
  • Samsung™ Galaxy Note3 / Android 5.0 (reported through Google Play™ store app feedback) (VPN prepare fails)
  • Samsung™ Galaxy Note4 / Android 5.1.1 (reported through Google Play™ store app feedback and on XDA) (telephone unresponsive)
  • Samsung™ Galaxy Note5 / Android ? (reported through Google Play™ store app feedback and on XDA) (?)
  • Samsung™ Galaxy S5 / Android ? reported on Github (VPN start fails on boot)
  • Samsung™ Galaxy Tab S4 / Android ? (reported in the Google Play™ store app) (VPN start fails on boot)
  • Sony™ Xperia™ M4 Aqua Dual / Android 5.0 (reported in the Google Play™ store app) (all traffic blocked)
  • Symphony Teleca™ / Micromax™ Canvas Knight 2 E471 / Android 5.0.2 (reported by e-mail) (VPN establish fails)
  • TCT Mobile Limited™ (Alcatel) 6039Y / Android / Android 5.0 (reported in the Google Play™ store app) (all traffic blocked)
  • TCT Mobile Limited™ (Alcatel) OneTouch Idol 3 / Android 5.0.2 (reported in the Google Play™ store app) (all traffic blocked)

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

Wi-Fi/USB tethering and Wi-Fi will not work when NetGuard is enabled due to a bug in Android (issue).

Unfortunately it is not possible to workaround any of these Android problems.

Frequently Asked Questions (FAQ)

(0) How do I use NetGuard?

(1) Can NetGuard completely protect my privacy?

(2) Can I use another VPN application while using NetGuard?

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

(4) Will NetGuard use extra battery power?

(5) Can you add usage statistics?
(5) Can you add popups to allow/block applications?
(5) Can you add selective allowing/blocking applications/IP addresses?

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

(7) Why are applications without internet permission shown?

(8) What do I need to enable for the Google Play™ store app to work?

(9) Why is the VPN service being restarted?

(10) Will you provide a Tasker plug-in?

(12) Can you add on demand asking to block/allow access?

(13) How can I remove the ongoing NetGuard entry in the notification screen?

(14) Why can't I select OK to approve the VPN connection request?

(15) Why won't you support the F-Droid builds?

(16) Why are some applications shown dimmed?

(17) Why is NetGuard using so much memory?

(18) Why can't I find NetGuard in the Google Play™ store app?

(19) Why does aplication XYZ still have internet access?

(20) Can I Greenify/hibernate NetGuard?

(21) Does doze mode affect NetGuard?

(22) Can I tether / use Wi-Fi calling while using NetGuard?

(24) Can you remove the notification from the status bar?

(25) Can you add a 'select all'?

(27) How do I read the blocked traffic log?

(28) Why is Google connectivity services allowed internet access by default?

(29) Why do I get 'The item you requested is not available for purchase'?

Permissions

  • INTERNET: to forward allowed traffic to the internet
  • ACCESS_NETWORK_STATE: to check if the device is connected to the internet through Wi-Fi
  • READ_PHONE_STATE ('make and manage phone calls'): to detect mobile network changes, see here for more details
  • ACCESS_WIFI_STATE: to detect Wi-Fi network changes
  • RECEIVE_BOOT_COMPLETED: to start the firewall when booting the device
  • WAKE_LOCK: to reliably reload rules in the background on connectivity changes
  • WRITE_EXTERNAL_STORAGE: to export settings on Android versions before 5.0 (Lollipop) (there is no need to grant this permission on later Android versions)
  • com.android.vending.BILLING: to accept donations via in-app billing

Support

Please do not use GitHub for questions.

Contributing

Translations:

  • Translations to other languages are welcomed
  • You can translate online here
  • If your language is not listed, please send a message to marcel(plus)netguard(at)faircode(dot)eu

Current translations:

  1. Arabic
  2. Simplified Chinese
  3. Czech
  4. Danish
  5. Dutch
  6. English
  7. French
  8. German
  9. Greek
  10. Hungarian
  11. Italian
  12. Japanese
  13. Korean
  14. Polish
  15. Portuguese/Brazilian
  16. Romanian
  17. Russian
  18. Slovak
  19. Spanish
  20. Turkish
  21. Ukrainian

You can see the actual status of all translations here.

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/.

Android is a trademark of Google Inc. Google Play is a trademark of Google Inc