まず、su を使用してのみシェル コマンドを実行できることに注意してください (= Java コードではなく、root としてのみシェル コマンドを使用できます)。
2番目:これがすべてのsuアプリに当てはまるかどうかはわかりませんが、これはsu
私の電話のヘルプメッセージです:
Usage: su [options] [--] [-] [LOGIN] [--] [args...]
Options:
--daemon start the su daemon agent
-c, --command COMMAND pass COMMAND to the invoked shell
-h, --help display this help message and exit
-, -l, --login pretend the shell to be a login shell
-m, -p,
--preserve-environment do not change environment variables
-s, --shell SHELL use SHELL instead of the default /system/bin/sh
-u display the multiuser mode and exit
-v, --version display version number and exit
-V display version code and exit,
this is used almost exclusively by Superuser.apk
これは、実行する必要があることを意味しますsu -c something
(またはsu -c something - root
、root
とにかくデフォルトです)。通常の Linux システムでは su 呼び出しを処理するデーモンが存在しないため、daemon-thing を除いて、基本的にこれはほとんどの Linux システムで su と同じです。
他の su コマンドの動作が異なる場合 (これは可能です)、ストリームをシェルに開き、 execute を実行しsu
、その戻りコードを評価してから、他のコマンドの実行に進み、最後に execute を実行する方が安全exit
です。