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); }