Merge "Set HOME, LOGNAME, SHELL, and USER from adbd." am: 36d7af4cf6
am: 5b51ac7a59
* commit '5b51ac7a5931c2e9c491c61233a6bbaba5edb6fa':
Set HOME, LOGNAME, SHELL, and USER from adbd.
diff --git a/adb/shell_service.cpp b/adb/shell_service.cpp
index 544afce..be5921d 100644
--- a/adb/shell_service.cpp
+++ b/adb/shell_service.cpp
@@ -83,6 +83,7 @@
#include <errno.h>
#include <pty.h>
+#include <pwd.h>
#include <sys/select.h>
#include <termios.h>
@@ -281,6 +282,15 @@
parent_error_sfd.Reset();
close_on_exec(child_error_sfd.fd());
+ // TODO: $HOSTNAME? Normally bash automatically sets that, but mksh doesn't.
+ passwd* pw = getpwuid(getuid());
+ if (pw != nullptr) {
+ setenv("HOME", pw->pw_dir, 1);
+ setenv("LOGNAME", pw->pw_name, 1);
+ setenv("SHELL", pw->pw_shell, 1);
+ setenv("USER", pw->pw_name, 1);
+ }
+
if (is_interactive()) {
execl(_PATH_BSHELL, _PATH_BSHELL, "-", nullptr);
} else {