ときに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を使用して接続すると、ではなくにドロップします。どのビルドを使用していますか?