2012-03-05 7 views
5

Android SDKに付属のadb.exeを使用して、Androidデバイスにルートアクセスできます。 テスト目的のために、Androidアプリのルート権限も与えたいと思います。 私はappがapp_68という特定のアカウントで実行されていることを知っています。 「ルートグループ」にapp_68を追加するadbシェルコマンドはありますか?Androidアプリのルート権限を与える

ご意見/ご感想をお寄せいただきありがとうございます。

+1

唯一の方法は、 'Runtime.getRuntime()。exec(" su ");'のようにコマンドラインを使うことだと信じています。それはルートの特権を持つように、アプリケーションのUIDを0に変更します。 (もちろん、正しいバイナリがインストールされている必要があります)。 [This](http://code.google.com/p/roottools/)は、あなたのアプリでrootを使っているなら大きな助けとなります。 – Jakar

+0

"Runtime.getRuntime()。exec(" su ");"を実行しようとしました。テストAndroidアプリから「su:uid 10069 su to not su」というエラーメッセージが表示されました。私はアプリがsuアカウントで実行するように変更することはできないと思う。 – ytw

+3

SuperUserとBusyBoxをインストールする必要があります。あなたがそれらの両方を行っていれば、おそらくあなたが誤ってスーパーユーザのテストアプリを辞退したのです。 – Jakar

答えて

0

あなたはスーパーユーザー(su)バイナリをrootユーザーとして実行する必要があります。 rootとして実行している場合、これを実装する:

Process p = Runtime.getRuntime().exec("su"); 
DataOutputStream os = new DataOutputStream(p.getOutputStream()); 

os.writeBytes("yourCommand\n"); 

os.writeBytes("exit\n"); 

os.flush(); 
os.close(); 
try { p.waitFor(); } catch (InterruptedException e) {} 

をあなたはsu: uid xxxx not allowedようなものを取得した場合、あなたはあなたのSU-バイナリ使用してSuperSUを更新する必要があります。

あなたが完全に詳細かつ作業source.Justは、以下のコードを見てみたい場合にもhttps://stackoverflow.com/a/26654728/4479004を参照してください。

更新:結果(標準出力に出力)を取得するには、使用:

関連する問題