From 93a7525d9b8fe61c7f7373443e25c063a98d2b25 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Thu, 1 Jul 2021 00:29:26 +0500 Subject: [PATCH] Add comment about mkshrc validity when loading /system/bin/sh for failsafe session --- .../main/java/com/termux/shared/shell/TermuxSession.java | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/termux-shared/src/main/java/com/termux/shared/shell/TermuxSession.java b/termux-shared/src/main/java/com/termux/shared/shell/TermuxSession.java index b1a071d8..5d467330 100644 --- a/termux-shared/src/main/java/com/termux/shared/shell/TermuxSession.java +++ b/termux-shared/src/main/java/com/termux/shared/shell/TermuxSession.java @@ -91,7 +91,13 @@ public class TermuxSession { if (executionCommand.executable == null) { // Fall back to system shell as last resort: - // Do not start a login shell since $HOME/.profile, etc may cause startup failure if they are not valid + // Do not start a login shell since ~/.profile may cause startup failure if its invalid. + // /system/bin/sh is provided by mksh (not toybox) and does load .mkshrc but for android its set + // to /system/etc/mkshrc even though its default is ~/.mkshrc. + // So /system/etc/mkshrc must still be valid for failsafe session to start properly. + // https://cs.android.com/android/platform/superproject/+/android-11.0.0_r3:external/mksh/src/main.c;l=663 + // https://cs.android.com/android/platform/superproject/+/android-11.0.0_r3:external/mksh/src/main.c;l=41 + // https://cs.android.com/android/platform/superproject/+/android-11.0.0_r3:external/mksh/Android.bp;l=114 executionCommand.executable = "/system/bin/sh"; } else { isLoginShell = true;