aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/app/src/main/java/com/wireguard/android/backends/VpnService.java
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main/java/com/wireguard/android/backends/VpnService.java')
-rw-r--r--app/src/main/java/com/wireguard/android/backends/VpnService.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/app/src/main/java/com/wireguard/android/backends/VpnService.java b/app/src/main/java/com/wireguard/android/backends/VpnService.java
index e255c245..3a8f6597 100644
--- a/app/src/main/java/com/wireguard/android/backends/VpnService.java
+++ b/app/src/main/java/com/wireguard/android/backends/VpnService.java
@@ -283,9 +283,14 @@ public class VpnService extends Service
return -0xfff0001;
if (!existsInPath("wg") || !existsInPath("wg-quick"))
return -0xfff0002;
+ if (!existsInPath("su"))
+ return -0xfff0003;
Log.i(TAG, "Running wg-quick up for " + config.getName());
final File configFile = new File(getFilesDir(), config.getName() + ".conf");
- return rootShell.run(null, "wg-quick up '" + configFile.getPath() + "'");
+ final int ret = rootShell.run(null, "wg-quick up '" + configFile.getPath() + "'");
+ if (ret == 13 /* EPERM */)
+ return -0xfff0003;
+ return ret;
}
private boolean existsInPath(final String file) {
@@ -304,6 +309,9 @@ public class VpnService extends Service
} else if (ret == -0xfff0002) {
Toast.makeText(getApplicationContext(), getString(R.string.error_missing),
Toast.LENGTH_LONG).show();
+ } else if (ret == -0xfff0003) {
+ Toast.makeText(getApplicationContext(), getString(R.string.error_su),
+ Toast.LENGTH_LONG).show();
} else {
Toast.makeText(getApplicationContext(), getString(R.string.error_up),
Toast.LENGTH_SHORT).show();