Hi, A lot of "aftermarket" Android developers add busybox to their builds. I have found out that the hardcoded default login shell is not valid in Android and it causes issues with scrips that do not have shebangs. I have sent this to one of the AOSP-based projects and it got accepted, and I thought it would benefit if it existed upstream as well. I know that you do not have Android code as part of your normal source, but this change is controlled by #ifdefs and thus should not affect the resulting code at all if not defined as Android. Thanks, David Kohen
commit f4c57f6e494fd628dcad4e684fdb14cd980fdb0c Author: David Kohen <[email protected]> Date: Thu Mar 3 16:20:28 2011 +0200 Made it so scripts without shebangs will work on Android Basically, busybox has a default shell setting that I changed when ANDROID is defined Change-Id: Ie6dcee76d6169d50144f7bb79a4fcb2458cb0fe5 diff --git a/include/libbb.h b/include/libbb.h index 8b86390..2b86463 100644 --- a/include/libbb.h +++ b/include/libbb.h @@ -1555,12 +1555,22 @@ extern struct globals *const ptr_to_globals; * use bb_default_login_shell and following defines. * If you change LIBBB_DEFAULT_LOGIN_SHELL, * don't forget to change increment constant. */ -#define LIBBB_DEFAULT_LOGIN_SHELL "-/bin/sh" extern const char bb_default_login_shell[]; +/* Since android does not have the /bin path, unlike most unix systems, + * it needs an exception in the default shell path. */ +#ifdef ANDROID +#define LIBBB_DEFAULT_LOGIN_SHELL "-/system/xbin/sh" +/* "/system/xbin/sh" */ +#define DEFAULT_SHELL (bb_default_login_shell+1) +/* "sh" */ +#define DEFAULT_SHELL_SHORT_NAME (bb_default_login_shell+14) +#else +#define LIBBB_DEFAULT_LOGIN_SHELL "-/bin/sh" /* "/bin/sh" */ #define DEFAULT_SHELL (bb_default_login_shell+1) /* "sh" */ #define DEFAULT_SHELL_SHORT_NAME (bb_default_login_shell+6) +#endif #if ENABLE_FEATURE_DEVFS # define CURRENT_VC "/dev/vc/0" _______________________________________________ busybox mailing list [email protected] http://lists.busybox.net/mailman/listinfo/busybox
