43 lines
1011 B
Diff
43 lines
1011 B
Diff
diff -u -r ../WireGuard-0.0.20180802/src/tools/wg-quick/android.c ./src/tools/wg-quick/android.c
|
|
--- ../WireGuard-0.0.20180802/src/tools/wg-quick/android.c 2018-08-03 03:19:55.000000000 +0000
|
|
+++ ./src/tools/wg-quick/android.c 2018-08-05 23:42:23.137024693 +0000
|
|
@@ -38,6 +38,16 @@
|
|
|
|
static bool is_exiting = false;
|
|
|
|
+#if defined(__ANDROID_API__) && __ANDROID_API__ < 24
|
|
+static char *strchrnul(const char *s, int c)
|
|
+{
|
|
+ char *x = strchr(s, c);
|
|
+ if (!x)
|
|
+ return (char *)s + strlen(s);
|
|
+ return x;
|
|
+}
|
|
+#endif
|
|
+
|
|
static void *xmalloc(size_t size)
|
|
{
|
|
void *ret = malloc(size);
|
|
@@ -242,17 +252,17 @@
|
|
if (!getuid())
|
|
return;
|
|
|
|
- args[0] = "su";
|
|
- args[1] = "-p";
|
|
+ args[0] = "tsu";
|
|
+ args[1] = "-a";
|
|
args[2] = "-c";
|
|
memcpy(&args[3], argv, argc * sizeof(*args));
|
|
args[argc + 3] = NULL;
|
|
|
|
- printf("[$] su -p -c ");
|
|
+ printf("[$] tsu -a -c ");
|
|
for (int i = 0; i < argc; ++i)
|
|
printf("%s%c", argv[i], i == argc - 1 ? '\n' : ' ');
|
|
|
|
- execvp("su", args);
|
|
+ execvp("tsu", args);
|
|
exit(errno);
|
|
}
|
|
|