diff -u -r ../openssh-8.1p1/sshd.c ./sshd.c
--- ../openssh-8.1p1/sshd.c	2019-10-09 00:31:03.000000000 +0000
+++ ./sshd.c	2019-10-13 09:16:33.447856567 +0000
@@ -464,6 +464,7 @@
 		if (chdir("/") == -1)
 			fatal("chdir(\"/\"): %s", strerror(errno));
 
+#ifndef __ANDROID__
 		/* Drop our privileges */
 		debug3("privsep user:group %u:%u", (u_int)privsep_pw->pw_uid,
 		    (u_int)privsep_pw->pw_gid);
@@ -471,6 +472,7 @@
 		if (setgroups(1, gidset) == -1)
 			fatal("setgroups: %.100s", strerror(errno));
 		permanently_set_uid(privsep_pw);
+#endif
 	}
 }
 
@@ -1442,7 +1444,8 @@
 	saved_argc = ac;
 	rexec_argc = ac;
 	saved_argv = xcalloc(ac + 1, sizeof(*saved_argv));
-	for (i = 0; (int)i < ac; i++)
+	saved_argv[0] = "@TERMUX_PREFIX@/bin/sshd";
+	for (i = 1; (int)i < ac; i++)
 		saved_argv[i] = xstrdup(av[i]);
 	saved_argv[i] = NULL;
 
@@ -1452,8 +1455,10 @@
 	av = saved_argv;
 #endif
 
+#ifndef __ANDROID__
 	if (geteuid() == 0 && setgroups(0, NULL) == -1)
 		debug("setgroups(): %.200s", strerror(errno));
+#endif
 
 	/* Ensure that fds 0, 1 and 2 are open or directed to /dev/null */
 	sanitise_stdfd();
@@ -1574,8 +1579,10 @@
 	}
 	if (rexeced_flag || inetd_flag)
 		rexec_flag = 0;
+#ifndef __ANDROID__
 	if (!test_flag && rexec_flag && !path_absolute(av[0]))
 		fatal("sshd re-exec requires execution with an absolute path");
+#endif
 	if (rexeced_flag)
 		closefrom(REEXEC_MIN_FREE_FD);
 	else
@@ -1694,7 +1701,9 @@
 		freezero(privsep_pw->pw_passwd, strlen(privsep_pw->pw_passwd));
 		privsep_pw->pw_passwd = xstrdup("*");
 	}
+#ifndef __ANDROID__
 	endpwent();
+#endif
 
 	/* load host keys */
 	sensitive_data.host_keys = xcalloc(options.num_host_key_files,
@@ -1863,8 +1872,10 @@
 	 * to create a file, and we can't control the code in every
 	 * module which might be used).
 	 */
+#ifndef __ANDROID__
 	if (setgroups(0, NULL) < 0)
 		debug("setgroups() failed: %.200s", strerror(errno));
+#endif
 
 	if (rexec_flag) {
 		if (rexec_argc < 0)
