2011-10-05 84 views
0

我的應用程序需要請求SU訪問(Root權限的設備)和唯一的例子在那裏說,要做到這一點:瞭解SU請求

Process p = null; 
p = Runtime.getRuntime().exec("su"); 

這很好,但我怎麼聯繫起來的是什麼p-過程我想要做下一個?例如,如何使用該進程打開數據庫,以便嘗試打開數據庫時發生了root權限?

回答

0

請參見本文的討論: Run secure API calls as root, android

基本上,你必須指定要在調用exec()方法來執行的東西。由於這很難做到,使用系統應用程序確實是做事的最佳方式。如果你看看這裏

Process p = null; 
p = Runtime.getRuntime().exec("su sqlite3 your_query"); 
+0

對於實際調用,這樣做在你的代碼'http://www.stealthcopter.com/blog/2010/01/android-requesting-root-access -in-your-app /'你會看到在創建「p」之後,你可以執行如下操作:'DataOutputStream os = new DataOutputStream(p.getOutputStream());'那麼我怎麼能用數據庫做同樣的事情訪問例如? –

+0

所以是的,你可以做的一件事就是給出輸入並從過程中獲得輸出。因此,如果你想要做某種數據庫查詢,你可以這樣做: DataOutputStream os = new DataOutputStream(p.getOutputStream()); os.writeBytes(「sqlite3 some_sql_query」); –

+0

其實,只要這樣做:Process p = null; p = Runtime.getRuntime()。exec(「su sqlite3 your_query」);然後從中讀取輸出流。 –