Android SDKに付属のadb.exeを使用して、Androidデバイスにルートアクセスできます。 テスト目的のために、Androidアプリのルート権限も与えたいと思います。 私はappがapp_68という特定のアカウントで実行されていることを知っています。 「ルートグループ」にapp_68を追加するadbシェルコマンドはありますか?Androidアプリのルート権限を与える
ご意見/ご感想をお寄せいただきありがとうございます。
Android SDKに付属のadb.exeを使用して、Androidデバイスにルートアクセスできます。 テスト目的のために、Androidアプリのルート権限も与えたいと思います。 私はappがapp_68という特定のアカウントで実行されていることを知っています。 「ルートグループ」にapp_68を追加するadbシェルコマンドはありますか?Androidアプリのルート権限を与える
ご意見/ご感想をお寄せいただきありがとうございます。
あなたはスーパーユーザー(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を参照してください。
更新:結果(標準出力に出力)を取得するには、使用:
唯一の方法は、 'Runtime.getRuntime()。exec(" su ");'のようにコマンドラインを使うことだと信じています。それはルートの特権を持つように、アプリケーションのUIDを0に変更します。 (もちろん、正しいバイナリがインストールされている必要があります)。 [This](http://code.google.com/p/roottools/)は、あなたのアプリでrootを使っているなら大きな助けとなります。 – Jakar
"Runtime.getRuntime()。exec(" su ");"を実行しようとしました。テストAndroidアプリから「su:uid 10069 su to not su」というエラーメッセージが表示されました。私はアプリがsuアカウントで実行するように変更することはできないと思う。 – ytw
SuperUserとBusyBoxをインストールする必要があります。あなたがそれらの両方を行っていれば、おそらくあなたが誤ってスーパーユーザのテストアプリを辞退したのです。 – Jakar