경우 adb shell
실행되고, 안드로이드 측면은 발사 된 후 실행한다을 ADB /system/bin/sh -
. 이 경로는 다음과 같이 하드 코딩되어 있습니다 system/core/adb/services.c
.
347 #if ADB_HOST
348 #define SHELL_COMMAND "/bin/sh"
349 #define ALTERNATE_SHELL_COMMAND ""
350 #else
351 #define SHELL_COMMAND "/system/bin/sh"
352 #define ALTERNATE_SHELL_COMMAND "/sbin/sh"
353 #endif
이것을 bash로 변경하려면 다시 컴파일해야합니다.
대화식 쉘을 실행할 때 파일에서 일부 명령을 실행할 수 있습니다. 에 기록 된 바와 같이 system/core/sh/main.c
, sh -
(음 -
대화 형 모드)를 (이 순서대로) 다음 파일에서 읽습니다
/etc/profile
.profile
(현재 디렉토리를 기준으로,이은 /.profile
을 위해adb shell
$ENV
(환경 변수 ENV
는 파일을 가리켜 야합니다)
로 /etc/
와 /
읽기 전용,로드 뭔가를 얻을 수있는 유일한 방법은 설정에 의해했다 ENV
. 당신은 아마에서 심볼릭 링크를 만들 수 있습니다 /etc/profile
에 /data/profile
장착하여 /
읽기 - 쓰기 (독자를위한 운동).
sh
아닌에 떨어집니다bash
. 어떤 빌드를 사용하고 있습니까?