termux-packages/packages/wireguard-tools/android.c.patch

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