Compare commits

...

54 Commits

Author SHA1 Message Date
M66B 9030325487 Fixed default roaming option 2024-06-08 17:00:40 +02:00
M66B 836c95e49d Merge branch 'master' of github.com:M66B/NetGuard 2024-06-04 12:34:02 +02:00
M66B 8fa72e48ee Reload on network changed 2024-06-04 12:33:45 +02:00
Marcel Bokhorst feef4c7b3b
Updated FAQ 2024-05-04 08:47:40 +02:00
M66B f050f90e2c RLAH: not La Réunion
https://en.wikipedia.org/wiki/European_Union_roaming_regulations#Areas_not_covered
2024-04-24 08:17:36 +02:00
M66B 1f56b996f5 Improved logging 2024-02-22 18:34:39 +01:00
M66B 69e2a37200 2.328 release 2024-02-22 17:25:26 +01:00
M66B c5e9414bb4 Rebuild VPN on active network change 2024-02-22 17:24:44 +01:00
M66B 589b4828b1 Allow Samsung find my phone by default 2024-02-18 23:21:52 +01:00
M66B 37ff174b1f COpy search domain from active network 2024-02-17 16:03:37 +01:00
M66B a3375e11c8 2.327 release 2023-12-03 17:54:36 +01:00
M66B d786249594 Revert "Simplification"
This reverts commit 2861b11661.
2023-12-03 17:53:59 +01:00
M66B b3dd446dd3 2.326 release 2023-12-01 07:35:18 +01:00
M66B 8bf7894cd1 Crowdin sync 2023-11-30 14:43:40 +01:00
M66B f3dfa30f1b Prevent NPE 2023-11-30 14:39:31 +01:00
M66B 68dd66decd Merge branch 'master' of github.com:M66B/NetGuard 2023-11-19 08:18:12 +01:00
M66B e0774471d4 Revert "List self"
This reverts commit 4a9b16ee1e.
2023-11-19 08:17:27 +01:00
Marcel Bokhorst e1133bc9dd
Update README.md 2023-11-14 23:38:08 +01:00
M66B 77845e02f2 Updated compatibility section 2023-11-14 22:50:33 +01:00
M66B fb4c311ac2 Disabled debug info 2023-11-11 17:32:08 +01:00
M66B 9bc65a16fd 2.325 release 2023-11-06 17:46:45 +01:00
M66B 4a9b16ee1e List self
It's fake, but it will prevent 1-star ratings
2023-11-05 18:31:16 +01:00
M66B 8ef3e87cb1 Log level fix 2023-11-02 14:38:47 +01:00
M66B 336c5d67d9 Skip new app notifications without names 2023-11-02 14:18:34 +01:00
M66B 1b344292f3 2.324 release 2023-11-02 08:38:24 +01:00
M66B d80ae38ac2 Refactoring 2023-11-02 08:36:38 +01:00
M66B 2861b11661 Simplification 2023-11-02 08:36:26 +01:00
M66B 2a60b69a3f Cleanup 2023-11-02 08:19:39 +01:00
M66B 43f2f62c4e Revert "Reload on service state changes"
This reverts commit 913eb460c7.
2023-11-02 08:18:36 +01:00
M66B 2ed792332c Optimization 2023-11-02 08:18:19 +01:00
M66B 913eb460c7 Reload on service state changes 2023-11-01 15:42:51 +01:00
M66B eadfe1f397 2.323 release 2023-11-01 07:35:29 +01:00
M66B 132e4c8d4e Merge branch 'master' of github.com:M66B/NetGuard 2023-11-01 07:34:49 +01:00
M66B 31249b815b Always show app titles in notifications 2023-11-01 07:34:02 +01:00
M66B 2faf361591 Already activated 2023-11-01 07:33:29 +01:00
M66B 6ad2e037ee Revert "Explicitly reload on active network changes"
This reverts commit eaea05832e.
2023-10-29 10:52:40 +01:00
M66B 775be3ecd5 Updated FAQ 2023-10-19 11:18:02 +02:00
M66B b068900a3e Specify NDK version 2023-10-09 09:43:51 +02:00
M66B 86ba6346ce Empty 2023-10-07 20:56:50 +02:00
M66B 0ac87d0756 2.322 release 2023-10-04 07:56:48 +02:00
M66B eaea05832e Explicitly reload on active network changes 2023-10-04 07:54:40 +02:00
M66B 1bbecfd223 2.321 release 2023-10-03 07:45:16 +02:00
M66B 0a9f790180 Crowdin sync 2023-10-03 07:44:28 +02:00
M66B 37c4805965 Increase package visibility 2023-10-03 07:42:10 +02:00
M66B 685d76dd50 2.320 release 2023-09-30 17:48:44 +02:00
M66B 5a1d2e5a0b Disable Play Store warning 2023-09-30 17:48:27 +02:00
M66B 913b28ccbb 2.319 release 2023-09-30 10:57:33 +02:00
M66B d0543eb128 Crowdin sync 2023-09-30 07:15:30 +02:00
M66B 035196e7cc Refactoring 2023-09-30 07:14:31 +02:00
M66B 5f89592126 2.318 release 2023-09-29 12:15:46 +02:00
M66B 9aa38ebcbf Crowdin sync 2023-09-29 12:13:13 +02:00
M66B f806ea2162 Sinkhole not allowed apps in non-filtering mode 2023-09-29 12:10:01 +02:00
M66B 439a39004a Malware protection is for later 2023-09-29 08:19:00 +02:00
M66B 3326013f74 Added QUERY_ALL_PACKAGES notice 2023-09-29 08:15:59 +02:00
27 changed files with 312 additions and 91 deletions

2
FAQ.md
View File

@ -37,6 +37,8 @@ However, this does not work properly on all Android versions/variants causing Ne
On Android N and later NetGuard can be configured as [Always-On VPN](https://developer.android.com/guide/topics/connectivity/vpn#always-on).
On Android O **do not** enable the sub option '*Block connections without VPN*', see [question 51](#user-content-faq51)) for more information on this.
The app obviously can't protect you from bugs in Android, such a documented [here](https://mullvad.net/en/blog/dns-traffic-can-leak-outside-the-vpn-tunnel-on-android).
To protect yourself more, remember to disable Wi-Fi and mobile data before rebooting,
and only enable them on reboot, after the firewall service has started (and the key icon is visible in the status bar).

View File

@ -100,6 +100,9 @@ NetGuard will try to workaround this and remove the error message when it succee
Some LineageOS versions have a broken Android VPN implementation, causing all traffic to be blocked,
please see [this FAQ](https://github.com/M66B/NetGuard/blob/master/FAQ.md#user-content-faq51) for more information.
On GrapheneOS, the Android *Always-On VPN* function and the sub option '*Block connections without VPN*' are enabled by default.
However, this sub option will result in blocking all traffic, please see [this FAQ](https://github.com/M66B/NetGuard/blob/master/FAQ.md#user-content-faq51).
NetGuard is not supported for apps installed in a [work profile](https://developer.android.com/work/managed-profiles),
or in a [Secure Folder](https://www.samsung.com/uk/support/mobile-devices/what-is-the-secure-folder-and-how-do-i-use-it/) (Samsung),
or as second instance (MIUI), or as Parallel app (OnePlus), or as Xiaomi dual app

View File

@ -9,10 +9,10 @@ android {
defaultConfig {
applicationId = "eu.faircode.netguard"
versionName = "2.317"
versionName = "2.328"
minSdkVersion 22
targetSdkVersion 34
versionCode = 2023092801
versionCode = 2024022201
archivesBaseName = "NetGuard-v$versionName"
externalNativeBuild {
@ -23,7 +23,7 @@ android {
}
}
//ndkVersion "21.4.7075529"
ndkVersion "25.2.9519653"
ndk {
// https://developer.android.com/ndk/guides/abis.html#sa
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86', 'x86_64'

View File

@ -527,6 +527,23 @@ public class ActivityMain extends AppCompatActivity implements SharedPreferences
tvNotifications.setVisibility(canNotify ? View.GONE : View.VISIBLE);
super.onResume();
if (Build.VERSION.SDK_INT > Build.VERSION_CODES.R && false) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (!prefs.getBoolean("qap", false))
if (Util.isPlayStoreInstall(this)) {
new AlertDialog.Builder(this)
.setMessage(R.string.app_qap)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
prefs.edit().putBoolean("qap", true).apply();
}
})
.show();
} else
prefs.edit().putBoolean("qap", true).apply();
}
}
@Override

View File

@ -279,13 +279,18 @@ public class ActivityPro extends AppCompatActivity {
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (IAB.isPurchased(SKU_DONATION, this) || Util.isPlayStoreInstall(this))
if (Util.isPlayStoreInstall(this))
menu.removeItem(R.id.menu_challenge);
return super.onPrepareOptionsMenu(menu);
}
private void menu_challenge() {
if (IAB.isPurchased(SKU_DONATION, this)) {
Toast.makeText(this, getString(R.string.title_pro_already), Toast.LENGTH_LONG).show();
return;
}
LayoutInflater inflater = LayoutInflater.from(this);
View view = inflater.inflate(R.layout.challenge, null, false);

View File

@ -104,6 +104,7 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.TreeMap;
import java.util.concurrent.ExecutorService;
@ -1094,7 +1095,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
remoteViews.setTextViewText(R.id.tvMax, getString(R.string.msg_mbsec, max / 2 / 1000 / 1000));
// Show session/file count
if (filter && loglevel <= Log.WARN) {
if (BuildConfig.DEBUG) {
int[] count = jni_get_stats(jni_context);
remoteViews.setTextViewText(R.id.tvSessions, count[0] + "/" + count[1] + "/" + count[2]);
remoteViews.setTextViewText(R.id.tvFiles, count[3] + "/" + count[4]);
@ -1242,7 +1243,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
ConnectivityManager cm = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
Network active = (cm == null ? null : cm.getActiveNetwork());
if (active != null) {
Log.i(TAG, "Setting underlying network=" + cm.getNetworkInfo(active));
Log.i(TAG, "Setting underlying network=" + active + " " + cm.getNetworkInfo(active));
setUnderlyingNetworks(new Network[]{active});
}
}
@ -1291,6 +1292,20 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
try {
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
Network active = (cm == null ? null : cm.getActiveNetwork());
LinkProperties props = (active == null ? null : cm.getLinkProperties(active));
String domain = (props == null ? null : props.getDomains());
if (domain != null) {
Log.i(TAG, "Using search domain=" + domain);
builder.addSearchDomain(domain);
}
} catch (Throwable ex) {
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
}
// Subnet routing
if (subnet) {
// Exclude IP ranges
@ -1430,19 +1445,31 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
// Add list of allowed applications
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
try {
builder.addDisallowedApplication(getPackageName());
} catch (PackageManager.NameNotFoundException ex) {
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
}
if (last_connected && !filter)
if (last_connected && !filter) {
Map<String, Rule> mapDisallowed = new HashMap<>();
for (Rule rule : listRule)
mapDisallowed.put(rule.packageName, rule);
for (Rule rule : listAllowed)
mapDisallowed.remove(rule.packageName);
for (String packageName : mapDisallowed.keySet())
try {
builder.addDisallowedApplication(rule.packageName);
builder.addAllowedApplication(packageName);
Log.i(TAG, "Sinkhole " + packageName);
} catch (PackageManager.NameNotFoundException ex) {
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
}
else if (filter)
if (mapDisallowed.size() == 0)
try {
builder.addAllowedApplication(getPackageName());
} catch (PackageManager.NameNotFoundException ex) {
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
}
} else if (filter) {
try {
builder.addDisallowedApplication(getPackageName());
} catch (PackageManager.NameNotFoundException ex) {
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
}
for (Rule rule : listRule)
if (!rule.apply || (!system && rule.system))
try {
@ -1451,6 +1478,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
} catch (PackageManager.NameNotFoundException ex) {
Log.e(TAG, ex.toString() + "\n" + Log.getStackTraceString(ex));
}
}
}
// Build configure intent
@ -2378,11 +2406,16 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
public void notifyNewApplication(int uid, boolean malware) {
if (uid < 0)
return;
if (uid == Process.myUid())
return;
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
try {
// Get application name
String name = TextUtils.join(", ", Util.getApplicationNames(uid, this));
List<String> names = Util.getApplicationNames(uid, this);
if (names.size() == 0)
return;
String name = TextUtils.join(", ", names);
// Get application info
PackageManager pm = getPackageManager();
@ -2586,8 +2619,9 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
builder.addCapability(NetworkCapabilities.NET_CAPABILITY_VALIDATED);
ConnectivityManager.NetworkCallback nc = new ConnectivityManager.NetworkCallback() {
private Network last_network = null;
private Boolean last_connected = null;
private Boolean last_unmetered = null;
private Boolean last_metered = null;
private String last_generation = null;
private List<InetAddress> last_dns = null;
@ -2595,6 +2629,7 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
public void onAvailable(Network network) {
Log.i(TAG, "Available network=" + network);
last_connected = Util.isConnected(ServiceSinkhole.this);
last_metered = Util.isMeteredNetwork(ServiceSinkhole.this);
reload("network available", ServiceSinkhole.this, false);
}
@ -2621,28 +2656,37 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
Log.i(TAG, "Changed capabilities=" + network + " caps=" + networkCapabilities);
boolean connected = Util.isConnected(ServiceSinkhole.this);
boolean unmetered = networkCapabilities.hasCapability(NetworkCapabilities.NET_CAPABILITY_NOT_METERED);
boolean metered = Util.isMeteredNetwork(ServiceSinkhole.this);
String generation = Util.getNetworkGeneration(ServiceSinkhole.this);
Log.i(TAG, "Connected=" + connected + "/" + last_connected +
" unmetered=" + unmetered + "/" + last_unmetered +
" unmetered=" + metered + "/" + last_metered +
" generation=" + generation + "/" + last_generation);
if (last_connected != null && !last_connected.equals(connected))
reload("Connected state changed", ServiceSinkhole.this, false);
String reason = null;
if (last_unmetered != null && !last_unmetered.equals(unmetered))
reload("Unmetered state changed", ServiceSinkhole.this, false);
if (reason == null && !Objects.equals(network, last_network))
reason = "Network changed";
if (last_generation != null && !last_generation.equals(generation)) {
if (reason == null && last_connected != null && !last_connected.equals(connected))
reason = "Connected state changed";
if (reason == null && last_metered != null && !last_metered.equals(metered))
reason = "Unmetered state changed";
if (reason == null && last_generation != null && !last_generation.equals(generation)) {
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(ServiceSinkhole.this);
if (prefs.getBoolean("unmetered_2g", false) ||
prefs.getBoolean("unmetered_3g", false) ||
prefs.getBoolean("unmetered_4g", false))
reload("Generation changed", ServiceSinkhole.this, false);
reason = "Generation changed";
}
if (reason != null)
reload(reason, ServiceSinkhole.this, false);
last_network = network;
last_connected = connected;
last_unmetered = unmetered;
last_metered = metered;
last_generation = generation;
}
@ -3207,16 +3251,19 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
}
private class Builder extends VpnService.Builder {
private Network activeNetwork;
private NetworkInfo networkInfo;
private int mtu;
private List<String> listAddress = new ArrayList<>();
private List<String> listRoute = new ArrayList<>();
private List<InetAddress> listDns = new ArrayList<>();
private List<String> listAllowed = new ArrayList<>();
private List<String> listDisallowed = new ArrayList<>();
private Builder() {
super();
ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
activeNetwork = (Build.VERSION.SDK_INT < Build.VERSION_CODES.M ? null : cm.getActiveNetwork());
networkInfo = cm.getActiveNetworkInfo();
}
@ -3255,6 +3302,12 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
return this;
}
@Override
public VpnService.Builder addAllowedApplication(String packageName) throws PackageManager.NameNotFoundException {
listAllowed.add(packageName);
return super.addAllowedApplication(packageName);
}
@Override
public Builder addDisallowedApplication(String packageName) throws PackageManager.NameNotFoundException {
listDisallowed.add(packageName);
@ -3269,6 +3322,9 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
if (other == null)
return false;
if (!Objects.equals(this.activeNetwork, other.activeNetwork))
return false;
if (this.networkInfo == null || other.networkInfo == null ||
this.networkInfo.getType() != other.networkInfo.getType())
return false;
@ -3285,6 +3341,9 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
if (this.listDns.size() != other.listDns.size())
return false;
if (this.listAllowed.size() != other.listAllowed.size())
return false;
if (this.listDisallowed.size() != other.listDisallowed.size())
return false;
@ -3300,6 +3359,10 @@ public class ServiceSinkhole extends VpnService implements SharedPreferences.OnS
if (!other.listDns.contains(dns))
return false;
for (String pkg : this.listAllowed)
if (!other.listAllowed.contains(pkg))
return false;
for (String pkg : this.listDisallowed)
if (!other.listDisallowed.contains(pkg))
return false;

View File

@ -111,7 +111,6 @@ public class Util {
"NO", // Norway
"PL", // Poland
"PT", // Portugal
"RE", // La Réunion
"RO", // Romania
"SK", // Slovakia
"SI", // Slovenia
@ -410,7 +409,9 @@ public class Util {
for (String pkg : pkgs)
try {
ApplicationInfo info = pm.getApplicationInfo(pkg, 0);
listResult.add(pm.getApplicationLabel(info).toString());
String name = pm.getApplicationLabel(info).toString();
if (!TextUtils.isEmpty(name))
listResult.add(name);
} catch (PackageManager.NameNotFoundException ignored) {
}
Collections.sort(listResult);

View File

@ -275,10 +275,11 @@ void *handle_events(void *a) {
log_android(ANDROID_LOG_ERROR,
"epoll close error %d: %s", errno, strerror(errno));
log_android(ANDROID_LOG_WARN, "Stopped events tun=%d", args->tun);
// Cleanup
ng_free(args, __FILE__, __LINE__);
log_android(ANDROID_LOG_WARN, "Stopped events tun=%d", args->tun);
return NULL;
}

View File

@ -8,6 +8,14 @@
<string name="app_agree">Razıyam</string>
<string name="app_disagree">Razı deyiləm</string>
<string name="app_support">NetGuard-ın köməyinizə ehtiyacı var. Pro özəllikləri satın alaraq layihəni davam etdirmək üçün toxunun.</string>
<string name="app_qap"> Google, bütün tətbiqləri sorğulamaq məqsədilə icazə istədiyi üçün tətbiqi Play Store-dan siləcəkdi.
Bu icazənin nə üçün lazım olduğuna dair yaxşı bir əsaslandırma təqdim edən beş etiraz rədd edildi.
Tətbiqin bu versiyası artıq bu icazəni tələb etmir, buna baxmayaraq
Android tətbiq siyahısından əllə başladıla bilməyən bəzi (sistem) tətbiqlər istisna olmaqla
demək olar ki, bütün tətbiqlər sadalanmağa davam edəcək.
Cihazınızın düzgün işləməyə davam etməsini təmin etmək üçün bu tətbiqlərin internet trafikinə həmişə icazə veriləcək.
Bunun bir problem olduğunu fikirləşirsinizsə, tətbiqi GitHub versiyasına güncəlləyə və bütün (sistem) tətbiqlərini yenidən idarə edə bilərsiniz.
</string>
<string name="channel_foreground">İşləyən xidmətlər</string>
<string name="channel_notify">Ümumi bildirişlər</string>
<string name="channel_access">Bildirişlərə müraciət</string>

View File

@ -8,6 +8,7 @@
<string name="app_agree">Съгласявам се</string>
<string name="app_disagree">Не съм съгласен</string>
<string name="app_support">FairEmail се нуждае от вашата подкрепа. Докоснете, за да закупите допълнителните възможности така проектът ще продължи да се развива.</string>
<string name="app_qap">Google щеше да премахне приложението от Play Store, тъй като искало разрешение да прави справки за всички приложения. Пет обжалвания и предоставяне на добра обосновка защо е необходимо това разрешение бяха отхвърлени. Това издание на приложението вече не иска това разрешение, и въпреки това почти всички приложения все още ще бъдат включени в списъка, с изключение на някои (системни) приложения, които не могат да бъдат стартирани ръчно от списъка с приложения за Андроид. Интернет трафикът на тези приложения винаги ще бъде разрешен, за да се гарантира, че устройството ви продължава да работи правилно. Ако смятате, че това е проблем, можете да използвате версията на приложението в GitHub и отново да управлявате всички (системни) приложения.</string>
<string name="channel_foreground">Работещи услуги</string>
<string name="channel_notify">Общи известия</string>
<string name="channel_access">Известия за достъп</string>

View File

@ -8,6 +8,14 @@
<string name="app_agree">Jeg accepterer</string>
<string name="app_disagree">Jeg accepterer ikke</string>
<string name="app_support">NetGuard behøver din hjælp. Tryk for at købe pro funktioner for at holde projektet igang.</string>
<string name="app_qap"> Google agtede at fjerne appen fra Play Butik, fordi den anmodede om tilladelse til at forespørge alle apps.
Fem appeller og en god begrundelse for, hvorfor denne tilladelse er nødvendig, blev afvist.
Denne version af appen anmoder ikke længere om denne tilladelse,
og trods det vil næsten alle apps stadig være på listen,
undtagen visse (system-)apps, som ikke kan startes manuelt fra Android-app-listen.
Internettrafik i disse apps vil altid være tilladt for at sikre, at enheden fortsat fungerer korrekt.
Anses dette som et problem, kan man opdatere til GitHub-versionen af appen for igen at kunne håndtere alle (system-)apps.
</string>
<string name="channel_foreground">Aktive tjenester</string>
<string name="channel_notify">Generelle notifikationer</string>
<string name="channel_access">Adgangsnotifikationer</string>

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_description">NetGuard bietet einfache und erweiterte Möglichkeiten, um Zugriffe auf das Internet zu blockieren - keine Root-Rechte erforderlich! Anwendungen und Adressen kann der Zugriff auf die WLAN- und/oder mobile Datenverbindung einzeln erlaubt oder verweigert werden.</string>
<string name="app_description">NetGuard bietet einfache und erweiterte Möglichkeiten, um Zugriffe auf das Internet zu blockieren keine Root-Rechte erforderlich! Der Zugriff auf die WLAN- und/oder mobile Datenverbindung kann einzeln pro App und Internetadresse erlaubt oder blockiert werden.</string>
<string name="app_android">NetGuard erfordert Android 5.1 oder höher</string>
<string name="app_xposed">Xposed verursacht sehr viele Abstürze, was dazu führen kann, dass NetGuard aus dem Google Play Store entfernt werden könnte. Deshalb wird NetGuard nicht unterstützt, solange Xposed installiert ist</string>
<string name="app_privacy"><a href="https://www.netguard.me/privacy/">Datenschutzerklärung</a></string>
@ -8,16 +8,25 @@
<string name="app_agree">Zustimmen</string>
<string name="app_disagree">Ablehnen</string>
<string name="app_support">NetGuard braucht Ihre Hilfe. Tippen Sie auf Pro-Funktion kaufen, um das Projekt weiterentwickeln zu können.</string>
<string name="app_qap"> Google hat die App aus dem Play Store entfernt, da es die Berechtigung zum Abfragen aller Apps angefordert hat.
Fünf Appelle und eine gute Rechtfertigung dafür, warum diese Genehmigung benötigt wird, wurden abgelehnt.
Diese Version der App fordert diese Berechtigung nicht mehr an
und trotzdem werden fast alle Apps noch aufgelistet,
außer einigen (System-)Apps, die nicht von der Android-App-Liste manuell gestartet werden können.
Der Internetverkehr dieser Apps wird immer erlaubt sein, um sicherzustellen, dass Ihr Gerät korrekt funktioniert.
Wenn Sie denken, dass dies ein Problem ist, dann können Sie auf die GitHub-Version der App umsteigen und alle
(System-)Apps weiter verwalten.
</string>
<string name="channel_foreground">Aktive Dienste</string>
<string name="channel_notify">Allgemeine Benachrichtigungen</string>
<string name="channel_access">Auf Benachrichtigungen zugreifen</string>
<string name="menu_search">Nach App suchen</string>
<string name="menu_filter">Anwendungen filtern</string>
<string name="menu_app_user">Benutzeranwendungen anzeigen</string>
<string name="menu_app_system">Systemanwendungen anzeigen</string>
<string name="menu_app_nointernet">Anwendungen ohne Internet anzeigen</string>
<string name="menu_app_disabled">Deaktivierte Anwendungen anzeigen</string>
<string name="menu_sort">Anwendungen sortieren</string>
<string name="menu_filter">Apps filtern</string>
<string name="menu_app_user">Benutzer-Apps anzeigen</string>
<string name="menu_app_system">System-Apps anzeigen</string>
<string name="menu_app_nointernet">Apps ohne Internet anzeigen</string>
<string name="menu_app_disabled">Deaktivierte Apps anzeigen</string>
<string name="menu_sort">Apps sortieren</string>
<string name="menu_sort_name">Nach Namen sortieren</string>
<string name="menu_sort_uid">Nach UID sortieren</string>
<string name="menu_sort_data">Nach Datennutzung sortieren</string>
@ -47,21 +56,21 @@
<string name="title_dport">Quellport</string>
<string name="title_raddr">Zieladresse</string>
<string name="title_rport">Zielport</string>
<string name="title_ruid">Zielanwendung</string>
<string name="title_external">Für einen externen Server wählen Sie \'Keiner\' aus</string>
<string name="title_ruid">Ziel-App</string>
<string name="title_external">Für einen externen Server wählen Sie »Keiner« aus</string>
<string name="setting_defaults">Standardeinstellungen</string>
<string name="setting_whitelist_wifi">WLAN blockieren</string>
<string name="setting_whitelist_other">Mobilfunk blockieren</string>
<string name="setting_whitelist_other">Mobile Daten blockieren</string>
<string name="setting_screen_wifi">WLAN erlauben, wenn Bildschirm eingeschaltet ist</string>
<string name="setting_screen_other">Mobilfunk erlauben, wenn Bildschirm eingeschaltet ist</string>
<string name="setting_screen_other">Mobile Daten erlauben, wenn Bildschirm eingeschaltet ist</string>
<string name="setting_whitelist_roaming">Roaming blockieren</string>
<string name="setting_options">Optionen</string>
<string name="setting_theme">Design: %1$s</string>
<string name="setting_dark">Dunkles Design verwenden</string>
<string name="setting_install">Benachrichtigung bei neuer Installation</string>
<string name="setting_screen_on">\'Wenn Bildschirm an\' Regeln anwenden</string>
<string name="setting_auto">Automatisch nach %1$s-Minuten aktivieren</string>
<string name="setting_delay">Bildschirmabschaltung um %1$s Minuten verzögern</string>
<string name="setting_screen_on">»Wenn Bildschirm eingeschaltet«-Regeln anwenden</string>
<string name="setting_auto">Automatisch nach %1$s Minuten aktivieren</string>
<string name="setting_delay">Ausschalten um %1$s Minuten verzögern</string>
<string name="setting_update">Nach Aktualisierungen suchen</string>
<string name="setting_network_options">Netzwerkoptionen</string>
<string name="setting_subnet">Subnet-Routing</string>
@ -80,7 +89,7 @@
<string name="setting_lockdown_other">Mobile Daten-Zugriffsbeschränkung</string>
<string name="setting_reload_onconnectivity">Erneut laden bei jeder Verbindungsänderung</string>
<string name="setting_advanced_options">Erweiterte Optionen</string>
<string name="setting_system">System-Apps anzeigen</string>
<string name="setting_system">System-Apps verwalten</string>
<string name="setting_log_app">Internetzugriff protokollieren</string>
<string name="setting_access">Bei Internetzugriff benachrichtigen</string>
<string name="setting_filter">Datenverkehr filtern</string>
@ -105,11 +114,11 @@
<string name="setting_socks5_username">SOCKS5-Benutzername: %s</string>
<string name="setting_socks5_password">SOCKS5-Passwort: %s</string>
<string name="setting_pcap_record_size">PCAP-Datensatzgröße: %s B</string>
<string name="setting_pcap_file_size">PCAP-Dateigröße (max): %s MB</string>
<string name="setting_pcap_file_size">Maximale PCAP-Dateigröße: %s MB</string>
<string name="setting_watchdog">Watchdog: alle %s Minuten</string>
<string name="setting_stats_category">Geschwindigkeitsbenachrichtigung</string>
<string name="setting_stats">Netzwerkgeschwindigkeit anzeigen</string>
<string name="setting_stats_top">Top-Anwendungen anzeigen</string>
<string name="setting_stats_top">Top-Apps anzeigen</string>
<string name="setting_stats_frequency">Abtastfrequenz: %s ms</string>
<string name="setting_stats_samples">Abtastanzahl: %s s</string>
<string name="setting_backup">Sicherung</string>
@ -123,14 +132,14 @@
<string name="setting_technical_general">Allgemein</string>
<string name="setting_technical_networks">Netzwerke</string>
<string name="setting_technical_subscription">Abos</string>
<string name="summary_install">Statusleisten-Benachrichtigung anzeigen, um neu installierte Anwendungen direkt zu konfigurieren (Pro-Funktion)</string>
<string name="summary_auto">Nach dem Deaktivieren über das Widget wird NetGuard nach einer festgelegten Anzahl von Minuten automatisch wieder aktiviert (Null eingeben zum Deaktivieren dieser Option)</string>
<string name="summary_delay">Nach Ausschalten des Bildschirms diesen während der festgelegten Minuten aktiviert lassen (Null eingeben zum Deaktivieren dieser Option)</string>
<string name="summary_install">Benachrichtigung in der Statusleiste anzeigen, um neu installierte Apps direkt zu konfigurieren (Pro-Funktion)</string>
<string name="summary_auto">Nach dem Deaktivieren über das Widget wird NetGuard nach der festgelegten Anzahl von Minuten automatisch wieder aktiviert (Null eingeben zum Deaktivieren dieser Option)</string>
<string name="summary_delay">Nach Ausschalten des Bildschirms diesen während der festgelegten Anzahl von Minuten aktiviert lassen (Null eingeben zum Deaktivieren dieser Option)</string>
<string name="summary_update">Es wird auf GitHub zweimal täglich nach neuen Versionen gesucht</string>
<string name="summary_tethering">Abhängig von der Android Version kann Tethering funktionieren. Dieser Verkehr kann nicht gefiltert werden.</string>
<string name="summary_subnet">Subnet-Routing aktivieren ermöglicht möglicherweise das Telefonieren über WLAN, triggert aber auch das Auftreten von Fehler in Android und lässt den Batterieverbrauch steigen</string>
<string name="summary_tethering">Abhängig von der Android-Version kann Tethering funktionieren. Dieser Datenverkehr kann nicht gefiltert werden.</string>
<string name="summary_subnet">Subnet-Routing aktivieren; kann WLAN-Anrufe aktivieren, aber auch Fehler in Android auslösen und den Akkuverbrauch erhöhen</string>
<string name="summary_lan">Apps den Zugriff auf lokale Netzwerkadressen wie 10.0.0.0/8, 172.16.0.0/12 und 192.168.0.0/16 erlauben.</string>
<string name="summary_ip6">IP6-Datenverkehr an NetGuard weiterleiten, so dass es selektiv zugelassen oder blockiert werden kann</string>
<string name="summary_ip6">IPv6-Datenverkehr an NetGuard weiterleiten, sodass er selektiv zugelassen oder blockiert werden kann</string>
<string name="summary_wifi_home">WLAN-Regeln nur für ausgewähltes Netzwerk anwenden (Mobilfunknetz-Regeln für andere WLAN-Netzwerke anwenden)</string>
<string name="summary_metered">Mobilfunk-Regeln auf volumenbeschränkte (kostenpflichtige, Tethering-) WLAN-Netzwerke anwenden</string>
<string name="summary_metered_2g">WLAN-Regeln für 2G-Datenverbindungen anwenden</string>
@ -140,12 +149,12 @@
<string name="summary_eu_roaming">Roaming-Regeln nicht anwenden, wenn sich die Nationalitäten für SIM und mobiles Netzwerk innerhalb der EU befinden (Roaming wie Zuhause)</string>
<string name="summary_call">NetGuard bei ein- oder ausgehenden Anrufen deaktivieren. Dadurch können Probleme bei IP-/WLAN-Telefonie gelöst werden.</string>
<string name="summary_system">Regeln für System-Apps definieren (für Experten)</string>
<string name="summary_log_app">Protokoll zeichnet den Internetzugriff von Anwendungen auf (Dadurch kann ein zusätzlicher Batterieverbrauch entstehen)</string>
<string name="summary_access">Benachrichtigungsleiste anzeigen, wenn eine Anwendung versucht, auf eine neue Internetadresse zuzugreifen (bei deaktivierter Filterung werden nur blockierte Internet-Zugriffsversuche angezeigt)</string>
<string name="summary_filter">IP-Pakete filtern, die den VPN-Tunnel verlassen. (Dadurch kann ein zusätzlicher Batterieverbrauch entstehen)</string>
<string name="summary_track_usage">Anzahl der gesendeten und empfangenen Bytes für jede Anwendung und Adresse verfolgen. (Dadurch kann ein zusätzlicher Batterieverbrauch entstehen)</string>
<string name="summary_log_app">Protokoll zeichnet den Internetzugriff von Apps auf. Das kann den Akkuverbrauch erhöhen!</string>
<string name="summary_access">Benachrichtigung in der Statusleiste anzeigen, wenn eine App versucht, auf eine neue Internetadresse zuzugreifen (wenn das Filtern deaktiviert ist, werden nur blockierte Versuche auf den Internetzugriff angezeigt)</string>
<string name="summary_filter">IP-Pakete filtern, die den VPN-Tunnel verlassen. Das kann den Akkuverbrauch erhöhen!</string>
<string name="summary_track_usage">Anzahl der gesendeten und empfangenen Bytes für jede App und Adresse verfolgen. Das kann den Akkuverbrauch erhöhen!</string>
<string name="summary_block_domains">Mit dem festgelegten DNS-Rückantwortcode auf blockierte Domainnamen antworten. Diese Option ist deaktiviert, wenn keine Hosts-Datei zur Verfügung steht.</string>
<string name="summary_rcode">Der Standardwert ist 3 (NXDOMAIN) und bedeutet \'Nicht vorhandene Domain\'.</string>
<string name="summary_rcode">Der Standardwert ist 3 (NXDOMAIN) und bedeutet »Nicht existierende Domain«.</string>
<string name="summary_validate">Domainname, der verwendet wird, um die Internetverbindung unter Port 443 (HTTPS) zu validieren.</string>
<string name="summary_socks5_enabled">Nur TCP-Datenverkehr wird an den Proxyserver gesendet</string>
<string name="summary_watchdog">In regelmäßigen Abständen überprüfen, ob NetGuard noch läuft (Null, um diese Option zu deaktivieren). Das kann den Akkuverbrauch erhöhen!</string>
@ -156,8 +165,8 @@
<string name="msg_hosts">%1$d erlaubt, %2$d blockiert, %3$d Hosts</string>
<string name="msg_waiting">Auf Ereignis warten</string>
<string name="msg_disabled">NetGuard ist deaktiviert. Verwenden Sie den Schalter, um NetGuard zu aktivieren.</string>
<string name="msg_notifications">Tippen, um Benachrichtigungsberechtigungen zu erteilen (für Zugriffsversuchs-Benachrichtigungen, Fehlermeldungen, usw.)</string>
<string name="msg_revoked">NetGuard wurde deaktiviert. Wahrscheinlich durch Verwendung einer anderen VPN-Anwendung</string>
<string name="msg_notifications">Tippen, um Benachrichtigungsberechtigungen zu erteilen (für Zugriffsversuchs-Benachrichtigungen, Fehlermeldungen usw.)</string>
<string name="msg_revoked">NetGuard wurde deaktiviert. Wahrscheinlich durch das Verwenden einer anderen VPN-App</string>
<string name="msg_installed">\'%1$s\' installiert</string>
<string name="msg_installed_n">Wurde installiert</string>
<string name="msg_access">%1$s versucht Internetzugriff</string>
@ -169,17 +178,18 @@
<string name="msg_start_failed">Android verhinderte den Start des VPN-Dienstes. Der Grund ist wahrscheinlich ein Fehler in der aktuellen Android-Version.</string>
<string name="msg_try">NetGuard ausprobieren</string>
<string name="msg_terms">Durch eine Spende stimmen Sie den <a href="http://www.netguard.me/#terms">AGB</a> zu.</string>
<string name="msg_dimming">Falls Sie nicht auf OK im nächsten Fenster tippen können, manipuliert eine andere Anwendung Ihren Bildschirm.</string>
<string name="msg_dimming">Falls Sie im nächsten Fenster nicht auf OK tippen können, manipuliert eine andere App Ihren Bildschirm.</string>
<string name="msg_mbday">± %1$.3f▲ %2$.3f▼ MB/Tag</string>
<string name="msg_kb">%1$7.3f▲ %2$7.3f▼ KB</string>
<string name="msg_mb">%1$7.3f▲ %2$7.3f▼ MB</string>
<string name="msg_gb">%1$7.3f▲ %2$7.3f▼ GB</string>
<string name="msg_count">%dx</string>
<string name="msg_doze">Für konsistente Ergebnisse sollten für NetGuard die Android-Batterie-Optimierungen deaktiviert werden.\n\nIm nächsten Dialogfenster wählen Sie ganz oben \"Alle Apps\", tippen auf NetGuard in der Liste und wählen und bestätigen \"Nicht optimieren\".</string>
<string name="msg_datasaving">Für konsistente Ergebnisse sollten die Android-Datenspeicheroptionen für NetGuard deaktiviert werden.\n\nIm nächsten Fenster aktivieren Sie die Optionen \"Hintergrunddaten\" und \"Uneingeschränkte Datennutzung\".</string>
<string name="msg_filter">Bei Verwendung von Filtern werden Daten- und Energiewerte erfasst und Android nimmt an, dass Daten und Energie von NetGuard statt von den ursprünglichen Anwendungen verbraucht werden</string>
<string name="msg_filter4">Android 4 erfordert die Aktivierung der Filterung.</string>
<string name="msg_log_disabled">Datenverkehrprotokollierung ist deaktiviert. Zum Aktivieren den Schalter oben verwenden. Die Protokollierung kann zu höherem Batterieverbrauch führen.</string>
<string name="msg_doze">Für konsistente Ergebnisse sollten für NetGuard die Android-Akkuoptimierungen deaktiviert werden.
\n\nIm nächsten Dialog wählen Sie ganz oben »Alle Apps«, tippen auf NetGuard in der Liste und wählen »Nicht optimieren«. Anschließend bestätigen.</string>
<string name="msg_datasaving">Für konsistente Ergebnisse sollten die Android-Datenspeicheroptionen für NetGuard deaktiviert werden.\n\nIm nächsten Fenster aktivieren Sie die Optionen »Hintergrunddaten« und »Uneingeschränkte Datennutzung«.</string>
<string name="msg_filter">Das Verwenden von Filtern führt dazu, dass Android den Daten- und Akkuverbrauch NetGuard zuordnet. Android geht davon aus, dass die Daten und der Akku von NetGuard statt von den jeweiligen Apps verbraucht werden</string>
<string name="msg_filter4">Android 4 erfordert das Aktivieren der Filterung.</string>
<string name="msg_log_disabled">Der Datenverkehr wird nicht protokolliert. Zum Aktivieren den Schalter oben verwenden. Das Protokollieren kann den Akkuverbrauch erhöhen.</string>
<string name="msg_clear_rules">Dadurch werden die Regeln und Bedingungen auf ihre Standardwerte zurückgesetzt</string>
<string name="msg_reset_access">Dadurch werden die Zugriffsversuche im Protokoll ohne Erlaubt-/Blockier-Regeln gelöscht</string>
<string name="msg_import_last">Letzter Import: %s</string>
@ -187,23 +197,23 @@
<string name="msg_downloaded">Hosts-Datei heruntergeladen</string>
<string name="msg_download_last">Letztes Herunterladen: %s</string>
<string name="msg_start_forward">Weiterleitung von %2$d Port %1$s nach %3$s:%4$d von \'%5$s\' starten?</string>
<string name="msg_stop_forward">Weiterleitung von %1$s Port %2$d stoppen?</string>
<string name="msg_stop_forward">Weiterleitung von %1$s Port %2$d anhalten?</string>
<string name="msg_metered">Volumenbeschränktes Netzwerk</string>
<string name="msg_inactive">Keine aktive Internetverbindung</string>
<string name="msg_queue">NetGuard ist beschäftigt</string>
<string name="msg_update">Neue Version verfügbar, zum Herunterladen tippen</string>
<string name="msg_usage">Sie können den Wi-Fi- oder mobilen Internet-Zugang zulassen (grünlich) oder verweigern (rötlich), indem Sie auf die Symbole neben einer Anwendung tippen</string>
<string name="msg_fairemail">Falls Sie NetGuard installiert haben, um Ihre Privatsphäre zu schützen, könnten Sie auch an <a href="https://email.faircode.eu/">FairEmail</a>, einer Open-Source- und privatsphärenfreundlichen E-Mail-App, interessiert sein</string>
<string name="msg_whitelist">Internet-Zugang ist standardmäßig erlaubt. Das kann in den Einstellungen geändert werden</string>
<string name="msg_usage">Sie können den WLAN- oder mobilen Internetzugang erlauben (grünlich) oder blockieren (rötlich), indem Sie auf die Symbole neben einer App tippen</string>
<string name="msg_fairemail">Falls Sie NetGuard installiert haben, um Ihre Privatsphäre zu schützen, könnten Sie auch an <a href="https://email.faircode.eu/">FairEmail</a>, einer quelloffenen und datenschutzfreundlichen E-Mail-App, interessiert sein</string>
<string name="msg_whitelist">Internetzugang ist standardmäßig erlaubt. Das kann in den Einstellungen geändert werden</string>
<string name="msg_push">Push-Nachrichten werden normalerweise durch die Systemkomponente Play-Dienste gesteuert, dieser ist standardmäßig der Internetzugang erlaubt</string>
<string name="msg_system">Verwalten von Systemanwendungen kann in den erweiterten Optionen aktiviert werden</string>
<string name="msg_system">Verwalten von System-Apps kann in den erweiterten Optionen aktiviert werden</string>
<string name="msg_issue">Bitte beschreiben Sie Ihr Problem und geben Sie den Zeitpunkt an:</string>
<string name="msg_vpn_cancelled">VPN-Verbindung abgebrochen\nHaben Sie eine anderes VPN für die Funktion \'VPN immer eingeschaltet\' konfiguriert?</string>
<string name="msg_vpn_cancelled">VPN-Verbindung abgebrochen\nHaben Sie ein anderes VPN für die Funktion »Durchgehend aktives VPN« konfiguriert?</string>
<string name="msg_on">Wenn NetGuard beim Ausschalten aktiv war, dann startet NetGuard beim Einschalten automatisch wieder.</string>
<string name="msg_unavailable">Diese Funktion ist in dieser Android-Version nicht verfügbar</string>
<string name="msg_always_on">Ein anderes VPN ist als \'VPN immer eingeschaltet\' festgelegt</string>
<string name="msg_always_on_lockdown">Um NetGuard im Filtermodus benutzen zu können, deaktivieren Sie in den Android-VPN-Einstellungen \"Verbindungen ohne VPN blockieren\"</string>
<string name="msg_private_dns">\"Private DNS\" unter Android-Netzwerkeinstellungen deaktivieren, um NetGuard im Filtermodus zu verwenden</string>
<string name="msg_always_on">Ein anderes VPN ist als »Durchgehend aktives VPN« festgelegt</string>
<string name="msg_always_on_lockdown">Um NetGuard im Filtermodus verwenden zu können, deaktivieren Sie in den Android-VPN-Einstellungen »Verbindungen ohne VPN blockieren«</string>
<string name="msg_private_dns">»Privates DNS« in den Android-Netzwerkeinstellungen deaktivieren, um NetGuard im Filtermodus zu verwenden</string>
<string name="title_lockdown_enabled">Datenverkehr ist eingeschränkt</string>
<string name="title_unmetered_allowed">Netzwerkverkehr ohne Volumenbeschränkung ist erlaubt</string>
<string name="title_unmetered_blocked">Nicht volumenbeschränkter Verkehr ist blockiert</string>
@ -213,7 +223,7 @@
<string name="title_metered_disabled">Beschränkte Regeln wurden nicht angewendet</string>
<string name="title_host_allowed">Adresse ist erlaubt</string>
<string name="title_host_blocked">Adresse ist blockiert</string>
<string name="title_interactive_allowed">Erlauben, wenn Bildschirm an</string>
<string name="title_interactive_allowed">Erlauben, wenn Bildschirm eingeschaltet ist</string>
<string name="title_roaming_blocked">Bei Roaming blockieren</string>
<string name="title_metered">Standardmäßig wird eine WLAN-Verbindung als nicht volumenbeschränkt und eine mobile Verbindung als volumenbeschränkt betrachtet.</string>
<string name="title_internet">hat keine Internet-Berechtigung</string>
@ -223,27 +233,27 @@
<string name="title_apply">Regeln und Bedingungen anwenden</string>
<string name="title_conditions">Bedingungen</string>
<string name="title_screen_wifi">WLAN erlauben, wenn Bildschirm eingeschaltet ist</string>
<string name="title_screen_other">Mobilfunk erlauben, wenn Bildschirm eingeschaltet ist</string>
<string name="title_screen_other">Mobile Daten erlauben, wenn Bildschirm eingeschaltet ist</string>
<string name="title_roaming_symbol">R</string>
<string name="title_roaming">Bei Roaming blockieren</string>
<string name="title_lockdown">Im Zugriffsbeschränkungsmodus erlauben</string>
<string name="title_lockdown">Im zugriffsbeschränkten Modus erlauben</string>
<string name="title_related">Filterabhängig</string>
<string name="title_access">Zugriffsversuche</string>
<string name="title_precedence">Zugriffsregeln haben vor anderen Regeln Vorrang</string>
<string name="title_options">Optionen</string>
<string name="title_notify">Bei Internetzugriffsversuchen benachrichtigen</string>
<string name="title_logging_disabled">Protokollierung oder Filterung ist nicht aktiviert</string>
<string name="title_logging_enabled">Protokollierung und Filterung sind aktiviert</string>
<string name="title_logging_disabled">Protokollieren oder Filtern ist nicht aktiviert</string>
<string name="title_logging_enabled">Protokollieren und Filtern ist aktiviert</string>
<string name="title_logging_configure">Konfigurieren</string>
<string name="title_enable_logging">Nur die Protokollierung für blockierte Adressen aktivieren</string>
<string name="title_enable_filtering">Auch die Filterung für die Protokollierung erlaubter Adressen aktivieren</string>
<string name="title_enable_notify">Zugriffsbenachrichtigungen für kürzlich protokollierte Adressen aktivieren</string>
<string name="title_enable_logging">Das Protokollieren nur für blockierte Adressen aktivieren</string>
<string name="title_enable_filtering">Filtern aktivieren, um auch erlaubte Adressen zu protokollieren</string>
<string name="title_enable_notify">Zugriffsbenachrichtigungen für neu protokollierte Adressen aktivieren</string>
<string name="title_enable_help0">Diese Einstellungen sind globale Einstellungen, die für alle Apps gelten.</string>
<string name="title_enable_help1">Die Filterung ist auch für das Zulassen oder Blockieren einzelner Adressen erforderlich.</string>
<string name="title_enable_help2">Die Protokollierung (weniger) oder Filterung (mehr) kann den Batterieverbrauch erhöhen und die Netzwerkgeschwindigkeit beeinflussen.</string>
<string name="title_enable_help1">Das ist auch für das Zulassen oder Blockieren einzelner Adressen erforderlich</string>
<string name="title_enable_help2">Das Protokollieren (weniger) oder Filtern (mehr) kann den Akkuverbrauch erhöhen und die Netzwerkgeschwindigkeit beeinflussen</string>
<string name="title_rate">Bewerten</string>
<string name="title_allow">Erlauben</string>
<string name="title_block">Sperren</string>
<string name="title_block">Blockieren</string>
<string name="title_allow_wifi">WLAN erlauben</string>
<string name="title_block_wifi">WLAN blockieren</string>
<string name="title_allow_other">Mobile Daten erlauben</string>
@ -261,7 +271,7 @@
<string name="title_pro_filter">Netzwerkverkehr filtern</string>
<string name="title_pro_notify">Benachrichtigung über neue App</string>
<string name="title_pro_speed">Benachrichtigung mit Netzwerkgeschwindigkeitsgrafik</string>
<string name="title_pro_theme">Aussehen (Design, Farben)</string>
<string name="title_pro_theme">Erscheinungsbild (Design, Farben)</string>
<string name="title_pro_all">Alle oben stehenden Pro-Funktionen</string>
<string name="title_pro_dev">Entwicklung unterstützen</string>
<string name="title_pro_buy">Kaufen</string>

View File

@ -8,10 +8,12 @@
<string name="app_agree">I agree</string>
<string name="app_disagree">I disagree</string>
<string name="app_support">NetGuard needs your help. Tap to purchase pro features to keep the project going.</string>
<string name="app_qap">.</string>
<string name="channel_foreground">Running services</string>
<string name="channel_notify">General notifications</string>
<string name="channel_access">Access notifications</string>
<string name="menu_search">Search for app</string>
<string name="menu_filter">Menu_filtro</string>
<string name="menu_app_system">Show system apps</string>
<string name="menu_app_nointernet">Show apps without internet</string>
<string name="menu_app_disabled">Show disabled apps</string>

View File

@ -8,6 +8,14 @@
<string name="app_agree">J\'accepte</string>
<string name="app_disagree">Je refuse</string>
<string name="app_support">NetGuard a besoin de votre aide. Appuyez pour acheter des fonctionnalités Pro pour continuer à faire avancer le projet.</string>
<string name="app_qap"> Google avait l\'intention de retirer l\'application du Play Store parce qu\'elle nécessitait une autorisation pour lister toutes les applications.
Cinq requêtes assorties d\'une justification valable à propos du besoin de cette autorisation, ont été rejetées.
Cette version de l\'application n\'utilise plus cette autorisation,
et malgré cela, presque toutes les applications seront toujours listées,
à l\'exception de certaines applications (système) qui ne peuvent pas être démarrées manuellement depuis la liste des applications d\'Android.
Le trafic Internet de ces applications sera toujours autorisé afin de s\'assurer que votre appareil fonctionne correctement.
Si ceci vous pose problème, vous pouvez mettre à jour l\'application en utilisant la version sur GitHub et gérer de nouveau toutes les applications (système).
</string>
<string name="channel_foreground">Services en cours d\'exécution</string>
<string name="channel_notify">Notifications générales</string>
<string name="channel_access">Accéder aux notifications</string>

View File

@ -8,6 +8,12 @@
<string name="app_agree">Acconsento</string>
<string name="app_disagree">Nego il consenso</string>
<string name="app_support">NetGuard ha bisogno del tuo aiuto. Tocca per acquistare le funzionalità pro per sostenere il progetto.</string>
<string name="app_qap">Google aveva intenzione di rimuovere l\'app dal Play Store, perché richiedeva i permessi di investigare tutte le app.
Cinque appelli e aver fornito una buona giustificazione sul perché questo permesso è necessario sono stati respinti.
Questa versione dell\'app non richiede più questo permesso, e, nonostante ciò, quasi tutte le app sono ancora elencate,
ad eccezione di alcune app (di sitema) che non possono essere avviate manualmente dalla lista delle app di Android.
Il traffico internet di queste app sarà sempre permesso per assicurare che il tuo dispositivo continui a funzionare correttamente.
Se pensi che questo sia un problema, potrai fare l\'update alla versione GitHub dell\'app e gestire ancora tutte le app (di sistema). </string>
<string name="channel_foreground">Servizi in esecuzione</string>
<string name="channel_notify">Notifiche generali</string>
<string name="channel_access">Notifiche d\'accesso</string>

View File

@ -52,7 +52,7 @@
<string name="title_external">עבור שרת חיצוני בחר \'ללא\'</string>
<string name="setting_defaults">ברירות מחדל</string>
<string name="setting_whitelist_wifi">חסום Wi-Fi</string>
<string name="setting_whitelist_other">חסום נייד</string>
<string name="setting_whitelist_other">חסימת תקשורת סלולרית</string>
<string name="setting_screen_wifi">אפשר גישה לרשתות Wi-Fi כאשר המסך פועל</string>
<string name="setting_screen_other">אפשר גישה לרשתות סלולריות כאשר המסך פועל</string>
<string name="setting_whitelist_roaming">חסום נדידה</string>

View File

@ -8,6 +8,13 @@
<string name="app_agree">同意する</string>
<string name="app_disagree">同意しない</string>
<string name="app_support">NetGuard にはあなたの支援が必要です。プロジェクトを維持するため、タップしてプロ版を購入してください。</string>
<string name="app_qap"> Google は、このアプリがすべてのアプリのクエリを実行する権限を要求することを理由に Play ストアから削除しようとしています。
5 回の不服申し立てと、この権限を必要とする理由の弁明はすべて拒否されました。
対策のため、このバージョンでは問題となった権限を要求しません。
それでもほとんどのアプリは一覧に表示されますが、いくつかの (システム) アプリは Android アプリリストから操作できません。
これらのアプリのインターネットトラフィックは、端末を正常に動作させ続けるために常に許可されます。
この変更が問題となる場合には、Github 版を使用するとシステムアプリを含むすべてのアプリを管理できます。
</string>
<string name="channel_foreground">実行中のサービス</string>
<string name="channel_notify">全般通知</string>
<string name="channel_access">アクセス通知</string>

View File

@ -4,7 +4,7 @@
<string name="app_disagree">ମୁଁ ସହମତ ନୁହେଁ</string>
<string name="menu_settings">ସେଟିଂସମୂହ</string>
<string name="menu_support">ସମର୍ଥନ</string>
<string name="menu_about">ବିଷୟରେ</string>
<string name="menu_about">ସମ୍ବନ୍ଧରେ</string>
<string name="menu_protocol_other">ଅନ୍ୟ</string>
<string name="title_protocol">ପ୍ରୋଟୋକଲ୍</string>
<string name="setting_theme">ଥିମ୍‌: %1$s</string>

View File

@ -8,6 +8,13 @@
<string name="app_agree">Eu concordo</string>
<string name="app_disagree">Eu discordo</string>
<string name="app_support">NetGuard precisa da sua ajuda. Toque para comprar Recursos Pro para manter o projeto.</string>
<string name="app_qap">A Google tinha intenção de remover o app da Play Store porque ele requisita permissão para buscar a lista de todos os aplicativos.
Cinco apelos e uma boa justificativa do porquê essa permissão é necessária foram rejeitados.
Esta versão do aplicativo não requer mais esta permissão,
e apesar disso quase todos os apps ainda serão listados,
exceto alguns apps (de sistema) que não podem ser iniciados manualmente da lista de apps do Android.
O tráfego de internet para esses apps será sempre permitido a fim de garantir que seu dispositivo continue funcionando corretamente.
Se acredita que isso é um problema, você pode atualizar para a versão do app hospedada no GitHub e voltar a gerenciar todos os apps (de sistema). </string>
<string name="channel_foreground">Serviços em execução</string>
<string name="channel_notify">Notificações Gerais</string>
<string name="channel_access">Acessar notificações</string>

View File

@ -8,6 +8,14 @@
<string name="app_agree">Accept</string>
<string name="app_disagree">Nu accept</string>
<string name="app_support">NetGuard are nevoie de ajutorul dumneavoastră. Atingeți pentru a achiziționa funcții Pro și a susține proiectul.</string>
<string name="app_qap"> Google avea de gând să elimine aplicația din Play Store, deoarece aceasta solicita permisiunea de a interoga lista de aplicații.
Cinci apeluri și furnizarea unei justificări bune despre motivul pentru care este nevoie de această permisiune au fost respinse.
Această versiune a aplicației nu mai solicită această permisiune,
și, în ciuda acestui fapt, aproape toate aplicațiile vor fi în continuare listate,
cu excepția unor aplicații (de sistem) care nu pot fi lansate manual din lista de aplicații Android.
Traficul de internet al acestor aplicații va fi întotdeauna permis pentru a vă asigura că dispozitivul dvs. continuă să funcționeze corect.
Dacă credeți că aceasta este o problemă, puteți actualiza la versiunea GitHub a aplicației și puteți gestiona din nou toate aplicațiile (de sistem).
</string>
<string name="channel_foreground">Serviciile care rulează</string>
<string name="channel_notify">Notificări generale</string>
<string name="channel_access">Notificări acces</string>

View File

@ -8,6 +8,13 @@
<string name="app_agree">Погоджуюся</string>
<string name="app_disagree">Не погоджуюся</string>
<string name="app_support">NetGuard потребує вашої допомоги. Торкніться, щоб придбати професійні функції й підтримати подальше продовження проекту.</string>
<string name="app_qap"> Компанія Google мала намір видалити цей додаток із Play Store, оскільки він запитував дозвіл до всіх додатків.
П\'ять апеляцій з обґрунтуванням того, чому цей дозвіл потрібен, були відхилені.
Ця версія програми більше не запитує такого дозволу,
але, попри це, майже всі програми залишаться в списку,
за винятком деяких (системних) додатків, які не можна запустити вручну зі списку програм Android.
Інтернет-трафік цих програм завжди буде дозволений, щоб гарантувати належну роботу вашого пристрою.
Якщо вас це не влаштовує, ви можете оновити версію програми з GitHub і знову керувати всіма (системними) додатками. </string>
<string name="channel_foreground">Запущені служби</string>
<string name="channel_notify">Загальні сповіщення</string>
<string name="channel_access">Сповіщеня про доступ</string>

View File

@ -8,6 +8,14 @@
<string name="app_agree">我同意</string>
<string name="app_disagree">我不同意</string>
<string name="app_support">NetGuard 需要您的協助。請點選購買 Pro 版本,使這個專案能繼續開發下去。</string>
<string name="app_qap"> Google 本來要從 Play Store 上移除本應用程式,因為它要求能夠查詢所有應用程式的權限。
儘管我們已經提出了五次申訴,並清楚說明需要此權限的理由,但仍然遭到拒絕。
在目前這個版本中,我們將不再要求這項權限,
儘管如此,除了那些無法從 Android 應用程式清單中點選執行的(系統)應用程式以外,
其他應用程式都能夠正常列出。
這些(系統)應用程式的網路流量將一直維持通過,以確保您的裝置能正常運作。
如果您覺得這樣會造成困擾,可將此應用程式更新成 GitHub 版本,以重新獲得管理所有(系統)應用程式的權限。
</string>
<string name="channel_foreground">正在運行的服務</string>
<string name="channel_notify">一般通知</string>
<string name="channel_access">存取通知</string>

View File

@ -10,6 +10,15 @@
<string name="app_agree">I agree</string>
<string name="app_disagree">I disagree</string>
<string name="app_support">NetGuard needs your help. Tap to purchase pro features to keep the project going.</string>
<string name="app_qap">
Google was going to remove the app from the Play Store because it requested permission to query all apps.
Five appeals and providing a good justification about why this permission is needed were rejected.
This version of the app does not request this permission anymore,
and despite that, almost all apps will still be listed,
except some (system) apps which cannot be started manually from the Android app list.
The internet traffic of these apps will always be allowed to make sure your device keeps working correctly.
If you think this is a problem, you can update to the GitHub version of the app and manage all (system) apps again.
</string>
<string name="channel_foreground">Running services</string>
<string name="channel_notify">General notifications</string>
@ -102,7 +111,7 @@
<string name="setting_handover">Seamless VPN handover on reload</string>
<string name="setting_clear_onreload">Close connections on reload</string>
<string name="setting_lockdown">Lockdown traffic</string>
<string name="setting_malware">Malware protection</string>
<string name="setting_malware" translatable="false">Malware protection</string>
<string name="setting_track_usage">Track network usage</string>
<string name="setting_reset_usage">Reset network usage</string>
<string name="setting_show_resolved">Show resolved domain names</string>
@ -185,7 +194,7 @@
<string name="msg_revoked">NetGuard has been disabled, likely by using another VPN based app</string>
<string name="msg_installed">\'%1$s\' installed</string>
<string name="msg_installed_n">Has been installed</string>
<string name="msg_malware">Possible malware: \'%1$s\'</string>
<string name="msg_malware" translatable="false">Possible malware: \'%1$s\'</string>
<string name="msg_access">%1$s attempted internet access</string>
<string name="msg_access_n">Attempted internet access</string>
<string name="msg_completed">Action completed</string>
@ -316,6 +325,7 @@ Your internet traffic is not being sent to a remote VPN server.</string>
A monthly subscriptions of 1 or 2 euros (excluding local taxes) will activate all pro features.
You can cancel or manage a subscription via the subscriptions tab in the Play store app.
</string>
<string name="title_pro_already">The pro features are already activated</string>
<string-array name="themeNames">
<item>teal/orange</item>

View File

@ -29,7 +29,7 @@
android:key="screen_other"
android:title="@string/setting_screen_other" />
<CheckBoxPreference
android:defaultValue="false"
android:defaultValue="true"
android:key="whitelist_roaming"
android:title="@string/setting_whitelist_roaming" />
</PreferenceCategory>

View File

@ -29,7 +29,7 @@
android:key="screen_other"
android:title="@string/setting_screen_other" />
<eu.faircode.netguard.SwitchPreference
android:defaultValue="false"
android:defaultValue="true"
android:key="whitelist_roaming"
android:title="@string/setting_whitelist_roaming" />
</PreferenceCategory>

View File

@ -46,6 +46,13 @@
package="com.google.android.apps.gcs"
roaming="false" />
<wifi
blocked="false"
package="com.samsung.android.fmm" />
<other
blocked="false"
package="com.samsung.android.fmm" />
<relation
package="com.android.vending"
related="com.google.android.gms,com.android.providers.downloads" />

View File

@ -25,6 +25,38 @@
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent>
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
</intent>
<intent>
<action android:name="android.intent.action.PICK" />
<category android:name="android.intent.category.DEFAULT" />
</intent>
<intent>
<action android:name="android.intent.action.GET_CONTENT" />
<category android:name="android.intent.category.DEFAULT" />
</intent>
<intent>
<action android:name="android.intent.action.INSERT" />
<category android:name="android.intent.category.DEFAULT" />
</intent>
<intent>
<action android:name="android.intent.action.EDIT" />
<category android:name="android.intent.category.DEFAULT" />
</intent>
<intent>
<action android:name="android.intent.action.SEND" />
<category android:name="android.intent.category.DEFAULT" />
</intent>
<intent>
<action android:name="android.intent.action.SENDTO" />
<category android:name="android.intent.category.DEFAULT" />
</intent>
</queries>
<permission