ときにadb shell実行され、Androidの側も、次に実行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、adbを使用して接続すると、ではなくにドロップします。どのビルドを使用していますか?