2012-10-04 25 views
0

那麼標題說,但問題是這樣的:如何在apk上添加.sh並安裝它們?

我有一個.sh文件與命令su touch /sdcard/test.txt看它是否工作。但是當用戶安裝應用程序時,我不知道如何包含它。我怎麼能添加它?我想過用這樣的:

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

有創建sh文件,但我不知道如何發送esc鍵,以便能夠:wq我知道如何執行該文件,是我的電話是根植的。我只需要知道如何在apk安裝時包含它和/或如何發送esc鍵來完成vi命令。

感謝

編輯:我創建了一個.sh文件名爲test.sh和我創建了一個應用程序,它一個是root用戶。 test.sh文件只有​​只是爲了看我的Java代碼的作品。我創建了一個簡單的應用程序與一個按鈕,該按鈕內點擊我有這樣的:

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。 ..希望這個清楚

回答

1

如果你確定你已經在電話上安裝了vi,只需在ESC中查找ascii中的十六進制代碼並將其寫入輸入緩衝區。

這裏有一個很好的ASCII表cppreference.com

+0

我仍然沒有得到如何包括這個,你可以請更具體一點嗎? –

+0

結帳這個職位。它告訴你如何做到這一點。 http://stackoverflow.com/a/6953432/1269727 – toadzky

0

這聽起來像你正在嘗試進行安裝時的動作。這How to start android service on installation表明,這是不可能做到的。

+0

不是那樣。我想要添加這個文件,以便我可以執行它。下面是一個例子,我下載了一個叫做Hot reboot的apk,在/data/data/com......quick_reboot/中有一個名爲files的文件夾,裏面有一個.sh文件,apk運行以重啓手機。我怎麼能這樣做? –

+0

我不明白你在做什麼。你是否在「adb shell」中運行這些命令? vi和esc剛剛爲我工作沒有問題。你甚至不需要觸摸命令。 –

+0

請閱讀我的編輯,我希望能夠說清楚 –