0

アプリケーションで Android で Python アプリケーションを実行しようとしています。このスクリプトは、 Better Terminal Emulator Pro
で正しく動作します

su
busybox chroot /data/local/debian /bin/bash
/usr/bin/python /usr/src/script.py

次に、値を入力します

>>value1
result

しかし、アプリで試してみると、次のようになります。

String line;
Runtime.getRuntime().exec("su");
Runtime.getRuntime().exec("busybox chroot /data/local/debpsla /bin/bash");
Process proc = Runtime.getRuntime().exec("ls");
OutputStreamWriter osw = new OutputStreamWriter(proc.getOutputStream());

proc.waitFor();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(proc.getInputStream()));
while ((line = bufferedReader.readLine()) != null){ 
   publishProgress(line); 
}

コマンドlsが返すファイルのリストが正しくありません。これは、ルート ディレクトリが変更されていないことを意味します。
私は何を間違っていますか?
ありがとう!

4

1 に答える 1

0

各コマンドは、JVMのコンテキストのみを使用して新しいプロセスを開始するため、個別に実行しています。これは、実行中subusybox chroot /data/local/debpsla /bin/bashありls、並行して無関係なプロセスとして実行されていることを意味します。

一方を他方に従わせたい場合は、これをすべて1つのプロセスで実行します。実行するスクリプトを書く方が簡単だと思います。

于 2013-03-09T20:19:49.913 に答える