OSDN Git Service

install copy of shell in vendor partition
authorSandeep Patil <sspatil@google.com>
Fri, 14 Apr 2017 21:01:07 +0000 (21:01 +0000)
committerandroid-build-merger <android-build-merger@google.com>
Fri, 14 Apr 2017 21:01:07 +0000 (21:01 +0000)
am: c203611510

Change-Id: I6a1da672c65522768647550df8768f9cd3285b23

1  2 
Android.mk
src/main.c

diff --cc Android.mk
@@@ -83,6 -73,65 +73,65 @@@ MKSH_CFLAGS += 
      -DHAVE_SETGROUPS=1 -DHAVE_STRERROR=1 -DHAVE_STRSIGNAL=0 \
      -DHAVE_STRLCPY=1 -DHAVE_FLOCK_DECL=1 -DHAVE_REVOKE_DECL=1 \
      -DHAVE_SYS_ERRLIST_DECL=0 -DHAVE_SYS_SIGLIST_DECL=1 \
 -    -DHAVE_PERSISTENT_HISTORY=0 -DMKSH_BUILD_R=541
 +    -DHAVE_PERSISTENT_HISTORY=0 -DMKSH_BUILD_R=551
  
+ 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 --cc src/main.c
@@@ -407,11 -362,16 +407,17 @@@ main_init(int argc, const char *argv[]
                }
        }
  
+       /* 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);
 +      typeset("IFS= \t\n", 0, 0, 0, 0);
  
        /* assign default shell variable values */
 +      typeset("PATHSEP=" MKSH_PATHSEPS, 0, 0, 0, 0);
        substitute(initsubs, 0);
  
        /* Figure out the current working directory and set $PWD */