diff -uNr xorg-server-1.20.1/os/utils.c xorg-server-1.20.1.mod/os/utils.c --- xorg-server-1.20.1/os/utils.c 2018-08-07 19:31:05.000000000 +0300 +++ xorg-server-1.20.1.mod/os/utils.c 2018-10-02 15:18:51.990102574 +0300 @@ -228,7 +228,7 @@ * server at a time. This keeps the servers from stomping on each other * if the user forgets to give them different display numbers. */ -#define LOCK_DIR "/tmp" +#define LOCK_DIR "/data/data/com.termux/files/usr/tmp" #define LOCK_TMP_PREFIX "/.tX" #define LOCK_PREFIX "/.X" #define LOCK_SUFFIX "-lock" @@ -320,7 +320,7 @@ i = 0; haslock = 0; while ((!haslock) && (i++ < 3)) { - haslock = (link(tmp, LockFile) == 0); + haslock = (rename(tmp, LockFile) == 0); if (haslock) { /* * We're done. @@ -1387,7 +1387,7 @@ _exit(127); if (setuid(getuid()) == -1) _exit(127); - execl("/bin/sh", "sh", "-c", command, (char *) NULL); + execl("/data/data/com.termux/files/usr/bin/sh", "sh", "-c", command, (char *) NULL); _exit(127); default: /* parent */ do { @@ -1473,7 +1473,7 @@ } close(pdes[1]); } - execl("/bin/sh", "sh", "-c", command, (char *) NULL); + execl("/data/data/com.termux/files/usr/bin/sh", "sh", "-c", command, (char *) NULL); _exit(127); } @@ -1670,7 +1670,7 @@ else if (getenv("TMP") != NULL) return getenv("TMP"); else - return "/tmp"; + return "/data/data/com.termux/files/usr/tmp"; } int