/system/bin/...
私は基本的にアプリケーションjava
コマンドから常駐するプロセスを開始したいと考えています。あらゆる種類のRuntime.process.exec()
オプションを試しましたsu
とのouputStream
組み合わせも試しましたが、何もアプリケーションを起動できません。私はデバイスとエミュレーターでコードを使用していますが、両方ともうまくいきません。ADB Shell から同じコマンドを正常に実行できます (ルート権限があるため)。
デバイスはルート化されており、adb を使用してデバイスをデバッグすると # が表示され、adb 経由で su に入ることができます。私の検索に基づいて、(adbシェルからpsを実行した後)アプリケーションレイヤーから(ls->toolbox、ps->toolbox)などのlrwz--x--x権限で任意のコマンドを実行できることがわかりましたが、私はツールボックスにリンクされていない他のコマンドを実行できません。
これは実行されませんls
:
Process p = Runtime.getRuntime().exec("su");
DataOutputStream os=new DataOutputStream(p.getOutputStream());
os.writeBytes("ls \n");
os.flush();
しかし、これは実行されls
ます:
Process p = Runtime.getRuntime().exec("ls");
ここでこれについて何か助けを得ることができれば、本当に感謝しています! いろいろ調べた上で投稿しています。