webentwicklung-frage-antwort-db.com.de

Wie erstellt man Android-Apps mit Root-Zugriff?

Ich habe herausgefunden, dass es so viele Apps gibt, die root-Zugriff benötigen. 

Wie konnten sie diese Apps erstellen? Wo haben sie die gesamte Ressource gefunden? Gibt es ein offizielles Dokument über den Root-Zugriff? Oder braucht es einen hackenden Weg?

Und welche Arten von Zugriff erforderten Root-Zugriff? Ist Proxy einer von ihnen? Ich habe keine Dokumentation über den Zugriff auf den Proxy gefunden.

=== UPDATE ===

Ich glaube, einige Leute haben sich mit meiner Frage geirrt. Ich weiß, dass das Telefon gerootet sein muss, um root-Zugriff zu erhalten. Was ich jedoch herausfinden möchte, ist, welche Art von Diensten Root-Zugriff benötigen. Einige sehen ich drahtlose Leinen, die andere besteht darin, den Cache zu löschen (benötigt es sogar Root-Zugriff, um nur den Cache zu löschen?) Und die anderen Apps da draußen. Gibt es eine Liste der Vorteile, die ich durch den Root-Zugriff erhalte?

28
Fugogugo

Sie müssen su im Telefon installiert haben (natürlich). Details hier: http://forum.xda-developers.com/showthread.php?t=682828

Und es zu benutzen, ist so einfach wie das Ausführen des Befehls su. Hier ist ein Beispiel, das ich zum programmgesteuerten Neustart des Telefons verwende (aus dieser Antwort kopiert: Android 2.2: Gerät programmgesteuert neu starten )

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

Sollte bei den meisten Versionen funktionieren:

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

Viele Anwendungen hängen von einem Shell-Skript/Befehl mit dem Präfix su ab.

Ich glaube nicht, dass es eine Möglichkeit gibt, einen anderen Kontext anzufordern oder Berechtigungen in der Android-API zu erhöhen.

2
tamarintech

In der Regel verwurzelte Apps verwenden nur Befehle wie "su ...", die sie ohne root-Zugriff nicht verwenden können. Und mit diesen Befehlsausführungen können sie alles erreichen (d. H. Eine System-App entfernen oder Ihr Android-Gerät ankurbeln)

0
gyurix

Verwenden Sie diese Funktion und verwenden Sie sie überall in Ihrem Projekt

 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();
    }
}

Verwenden Sie die obige Funktion und verwenden Sie beliebige Shell-Befehle mit Root-Benutzern

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