1

さて、タイトルはそれを言います、しかし問題はこれです:

動作するかどうかを確認するコマンドを含む.shファイルがありますsu touch /sdcard/test.txt。しかし、ユーザーがアプリをインストールするときにそれを含める方法がわかりません。どうすれば追加できますか?私は次のようなものを使用することを考えました:

su
touch /sdcard/folder/path/test.sh
vi /sdcard/folder/path/test.sh

escそこに.shファイルを作成しますが、ファイルの実行方法を知るためにキーを送信する方法がわかりません:wq。はい、私の電話はルート化されています。apkがインストールされたときにそれを含める方法や、コマンドescを完了するためにキーを送信する方法を知る必要がありviます。

ありがとう

編集:私はという.shファイルtest.shを作成し、rootユーザー向けのアプリを作成しました。このtest.shファイルtouch /sdcard/test.txtは、私のJavaコードが機能するかどうかを確認するだけです。ボタンが1つあるシンプルなアプリを作成し、そのボタンをクリックすると次のようになります。

test.setOnClickListener(new OnClickListener()
        {
            public void onClick(View v)
            {
                try
                {
                    Process proc = Runtime.getRuntime().exec(new String[] {"su","-c","sh ./path where .sh will be/test.sh"});
                    proc.waitFor();
                }
                catch (Exception ex)
                {
                    String TAG = null;
                    Log.i(TAG, "Doesn't work", ex);
                }
            }
        });

しかし、ファイルを追加する方法や場所がわからないtest.shため、ユーザーがアプリをインストールするとファイルがそこにあります。含めてみました

Process proc = Runtime.getRuntime().exec(new String[] {"su","-c","touch /sdcard/prueba.sh ; vi /sdcard/prubea.sh ; ****Don't know how to edit, use ESC key and :wq****});
                    proc.waitFor();

ボタンをクリックすると、viコマンドが終了するのを待ってアプリが実行され続けますが、実行するには押す必要があるため、方法がわかりません...これで明確escになることを願っています:wq

4

2 に答える 2

1

電話機にviがインストールされていることが確実な場合は、asciiでESCの16進コードを検索し、それを入力バッファに書き込みます。

これが良いASCIIチャートcppreference.comです

于 2012-10-04T20:49:19.963 に答える
0

インストール時にアクションを実行しようとしているようです。このインストール時にAndroidサービスを開始する方法は、それが不可能であることを示唆しています。

于 2012-10-04T21:01:28.060 に答える