2013年8月7日 星期三

Android 開發筆記 - 開發需要 root 權限的程式,解決 Superuser Prompt 不顯示的問題

最近跟一間硬體商配合,發現他們提供的 root 版 Android 環境有點怪,以前我用 SSHDroid (ssh server) 去開 port 22 時,因為小於 1024 所以會需要 root 權限,這時候就會預期他們家安裝的 Superuser 會彈跳視窗出來,但…什麼卻沒發生且失敗了 Orz 當然,只要把 Superuser 設定成 all pass 時,就沒問題。

而後測試幾百次,應該可以用這招來強制 Superuser 彈跳出詢問視窗:

Process mProcess;
try {
mProcess = Runtime.getRuntime().exec("sh");
DataOutputStream mDataOutputStream = new DataOutputStream(mProcess.getOutputStream());
mDataOutputStream.writeBytes("su;");
mDataOutputStream.flush();
mDataOutputStream.close();
mProcess.waitFor();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


因此,若需要執行 root 權限,建議先用這招頂替一下 XD

2 則留言:

  1. 你好, 我們是硬體的生產廠商, 目前遇到一些需要ROOT解決的問題, 不曉得是否方便聊聊

    回覆刪除
  2. 不好意思,我已經沒有接觸處理這個問題,而 Android 更新很快,建議您還是向持續開發的專業工程師詢問較好,祝一切順利 :)

    回覆刪除