andorid10中的shell使用的是mksh( The MirBSD Korn Shell)。他的代码目录在:
$ ls external/mksh/
Android.bp Android.patch.txt mkshrc mkshrc_vendor MODULE_LICENSE_BSD_LIKE NOTICE OWNERS src
在该shell启动的时候会执行mkshrc中的命令:
# Copyright (c) 2010, 2012, 2013, 2014
# Thorsten Glaser <tg@mirbsd.org>
# This file is provided under the same terms as mksh.
#-
# Minimal /system/etc/mkshrc for Android
#
# Support: https://launchpad.net/mksh
set +o nohup
if (( USER_ID )); then PS1='$'; else PS1='#'; fi
PS4='[$EPOCHREALTIME] '; PS1='${|
local e=$?
(( e )) && REPLY+="$e|"
return $e
}$HOSTNAME:${PWD:-?} '"$PS1 "
adb shell service
- hostname设置
static std::string GetHostName() {
char buf[HOST_NAME_MAX];
if (gethostname(buf, sizeof(buf)) != -1 && strcmp(buf, "localhost") != 0) return buf;
return android::base::GetProperty("ro.product.device", "android");
}
if (pw != nullptr) {
env["HOME"] = pw->pw_dir;
env["HOSTNAME"] = GetHostName();
env["LOGNAME"] = pw->pw_name;
env["SHELL"] = pw->pw_shell;
env["TMPDIR"] = "/data/local/tmp";
env["USER"] = pw->pw_name;
}