web-dev-qa-db-ja.com

Androidルートアクセスを持つアプリを作成する方法は?

Rootアクセスを必要とするアプリがたくさんあることがわかりました。

どのようにしてそれらのアプリを作成できましたか?彼らはすべてのリソースをどこで見つけましたか?ルートアクセスに関する公式文書はありますか?それともハックな方法が必要ですか?

そして、どのような種類のアクセスがrootアクセスを必要としましたか?プロキシはその1つですか?プロキシへのアクセスに関するドキュメントはどこにも見つかりませんでした。

===更新===

私の質問に間違われた人もいると思います。ルートアクセスを取得するには、電話をルート化する必要があることを知っています。しかし、私が知りたいことは、どのようなサービスがルートアクセスを必要としているのですか?ワイヤレステザーが表示されるものもあれば、キャッシュをクリアするものもあります(キャッシュをクリアするためだけにルートアクセスが必要ですか?)、そして他のアプリもあります。 rootアクセスから得られる利点のリストはありますか?

30
Fugogugo

電話にsuをインストールする必要があります(もちろん)。詳細はこちら: http://forum.xda-developers.com/showthread.php?t=682828

そしてそれを使用するには、suコマンドを実行するのと同じくらい簡単です。これは私が電話をプログラムで再起動するために使用するサンプルです(この回答からコピー: Android 2.2:デバイスをプログラムで再起動

try {
    Runtime.getRuntime().exec("su");
    Runtime.getRuntime().exec("reboot");
} catch (IOException e) {
} 
22
Aleadam

ほとんどのバージョンで動作するはずです:

try {
    Runtime.getRuntime().exec("su -c reboot");
} catch (IOException e) {
} 
4
Dpp

アプリケーションの多くは、suで始まるシェルスクリプト/コマンドに依存しています。

Android API。

2
tamarintech

通常、ルート化されたアプリは「su ...」のようなコマンドを使用しているだけで、ルートアクセスなしでは使用できません。そして、これらのコマンド実行により、すべてに到達できます(つまり、システムアプリを削除するか、Androidデバイス)をブーストします)

0
gyurix

この機能を使用して、プロジェクトの任意の場所で使用します

 public static void Sudo(String... strings) {
    try {
        Process su = Runtime.getRuntime().exec("su");
        DataOutputStream outputStream = new DataOutputStream(su.getOutputStream());

        for (String s : strings) {
            outputStream.writeBytes(s + "\n");
            outputStream.flush();
        }

        outputStream.writeBytes("exit\n");
        outputStream.flush();
        try {
            su.waitFor();
        } catch (InterruptedException e) {
            e.printStackTrace();
        }
        outputStream.close();
    } catch (IOException e) {
        e.printStackTrace();
    }
}

上記の関数を使用し、rootユーザーで任意のタイプのシェルコマンドを使用する

  Sudo("iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080");
0
sanjay