merge in oc-release history after reset to oc-dev
diff --git a/Android.mk b/Android.mk
index 427aea9..01e53aa 100644
--- a/Android.mk
+++ b/Android.mk
@@ -24,32 +24,22 @@
 LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
 
 # mksh source files
-LOCAL_SRC_FILES := \
+MKSH_SRC_FILES := \
     src/lalloc.c src/edit.c src/eval.c src/exec.c \
     src/expr.c src/funcs.c src/histrap.c src/jobs.c \
     src/lex.c src/main.c src/misc.c src/shf.c \
     src/syn.c src/tree.c src/var.c
 
-LOCAL_SYSTEM_SHARED_LIBRARIES := libc
+MKSH_INCLUDES := $(LOCAL_PATH)/src
 
-LOCAL_C_INCLUDES := $(LOCAL_PATH)/src
-
-# Additional flags first...
-LOCAL_CFLAGS += \
-    -DMKSH_DEFAULT_PROFILEDIR=\"/system/etc\" \
-    -DMKSHRC_PATH=\"/system/etc/mkshrc\" \
-    -DMKSH_DEFAULT_EXECSHELL=\"/system/bin/sh\" \
-    -DMKSH_DEFAULT_TMPDIR=\"/data/local\" \
-
-# ...then from Makefrag.inc: CFLAGS...
-LOCAL_CFLAGS += \
+MKSH_CFLAGS += \
     -Wno-deprecated-declarations \
     -fno-asynchronous-unwind-tables \
     -fno-strict-aliasing \
     -fstack-protector -fwrapv \
 
 # ...and CPPFLAGS.
-LOCAL_CFLAGS += \
+MKSH_CFLAGS += \
     -DDEBUG_LEAKS -DMKSH_ASSUME_UTF8 \
     -DMKSH_DONT_EMIT_IDSTRING \
     -DMKSH_BUILDSH \
@@ -85,4 +75,63 @@
     -DHAVE_SYS_ERRLIST_DECL=0 -DHAVE_SYS_SIGLIST_DECL=1 \
     -DHAVE_PERSISTENT_HISTORY=0 -DMKSH_BUILD_R=541
 
+LOCAL_SRC_FILES := $(MKSH_SRC_FILES)
+
+LOCAL_SYSTEM_SHARED_LIBRARIES := libc
+
+LOCAL_C_INCLUDES := $(MKSH_INCLUDES)
+
+# Additional flags first...
+LOCAL_CFLAGS += \
+    -DMKSH_DEFAULT_PROFILEDIR=\"/system/etc\" \
+    -DMKSHRC_PATH=\"/system/etc/mkshrc\" \
+    -DMKSH_DEFAULT_EXECSHELL=\"/system/bin/sh\" \
+    -DMKSH_DEFAULT_TMPDIR=\"/data/local\" \
+
+LOCAL_CFLAGS += $(MKSH_CFLAGS)
+
 include $(BUILD_EXECUTABLE)
+
+ifeq ($(PRODUCT_FULL_TREBLE),true)
+# /vendor/etc/mkshrc
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := mkshrc_vendor
+LOCAL_MODULE_STEM := mkshrc
+LOCAL_MODULE_CLASS := ETC
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_ETC)
+LOCAL_SRC_FILES := $(LOCAL_MODULE)
+include $(BUILD_PREBUILT)
+
+# /vendor/bin/sh
+include $(CLEAR_VARS)
+
+LOCAL_MODULE := sh_vendor
+LOCAL_MODULE_STEM := sh
+LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
+LOCAL_MODULE_PATH := $(TARGET_OUT_VENDOR_EXECUTABLES)
+
+# mksh source files
+LOCAL_SRC_FILES := $(MKSH_SRC_FILES)
+
+LOCAL_STATIC_LIBRARIES := libc
+
+LOCAL_C_INCLUDES := $(MKSH_INCLUDES)
+
+# Additional flags first...
+LOCAL_CFLAGS += \
+    -DMKSH_DEFAULT_PROFILEDIR=\"/vendor/etc\" \
+    -DMKSHRC_PATH=\"/vendor/etc/mkshrc\" \
+    -DMKSH_DEFAULT_EXECSHELL=\"/vendor/bin/sh\" \
+    -DMKSH_DEFPATH_OVERRIDE=\"/vendor/bin:/vendor/xbin\" \
+
+LOCAL_CFLAGS += $(MKSH_CFLAGS)
+
+LOCAL_FORCE_STATIC_EXECUTABLE := true
+
+include $(BUILD_EXECUTABLE)
+endif
+
+MKSH_SRC_FILES:=
+MKSH_CFLAGS:=
+MKSH_INCLUDES:=
diff --git a/mkshrc_vendor b/mkshrc_vendor
new file mode 100644
index 0000000..27d3982
--- /dev/null
+++ b/mkshrc_vendor
@@ -0,0 +1,20 @@
+# 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
+
+: ${HOSTNAME:=$(getprop ro.product.device)}
+: ${HOSTNAME:=android}
+export HOSTNAME
+
+if (( USER_ID )); then PS1='$'; else PS1='#'; fi
+PS4='[$EPOCHREALTIME] '; PS1='${|
+	local e=$?
+
+	(( e )) && REPLY+="$e|"
+
+	return $e
+}$HOSTNAME:${PWD:-?} '"$PS1 "
diff --git a/src/main.c b/src/main.c
index ebbadd9..665459c 100644
--- a/src/main.c
+++ b/src/main.c
@@ -362,6 +362,12 @@
 		}
 	}
 
+	/* override default PATH regardless of environment */
+#ifdef MKSH_DEFPATH_OVERRIDE
+	 vp = global(TPATH);
+	 setstr(vp, MKSH_DEFPATH_OVERRIDE, KSH_RETURN_ERROR);
+#endif
+
 	/* for security */
 	typeset(initifs, 0, 0, 0, 0);