2010-09-06 5 views
6

Ich versuche, die Methode hinter Superuser Zugriff auf Android-Geräte zu finden. Im Grunde möchte ich, dass meine App Systemdateien entfernen kann, und frage den Benutzer, ob er nach dem Start der App in Ordnung ist, wie die meisten anderen Apps, und welchen Code ich genau verwende, um diese Art von Aktionen auszuführen? kann nicht viel auf google findenAndroid mit Super User Permissions? Erlauben Zugang

danke im voraus!

Antwort

10

Wenn das Gerät verwurzelt ist, können Sie den folgenden Code verwenden, um Zugriff auf eine Root-Shell zu gewinnen:

try 
    { 
     Process process = Runtime.getRuntime().exec("su"); 
     DataOutputStream outputStream = new DataOutputStream(process.getOutputStream()); 
     DataInputStream inputStream = new DataInputStream(process.getInputStream()); 

     outputStream.writeBytes(command + "\n"); 
     outputStream.flush(); 

     outputStream.writeBytes("exit\n"); 
     outputStream.flush(); 
     process.waitFor(); 
    } 
    catch (IOException e) 
    { 
     throw new Exception(e); 
    } 
    catch (InterruptedException e) 
    { 
     throw new Exception(e); 
    } 

Wo „Befehl“ ist der Befehl, den Sie ausführen möchten.

+0

Wo hast du diese Ressource gefunden? Gibt es Unterlagen dafür? Ich rate nur die Befehlsvariable jedes Mal, wenn ich einen Befehl ausführen möchte, der diesen Zugriff benötigt? –

+0

Ich bin froh, Ihnen helfen zu können! Ich kann mich nicht erinnern, wo ich diesen Code gefunden habe, aber ich weiß, dass es viel Googeln erforderte. Die Probe wurde einer App entnommen, an der ich gerade arbeite. Um mehrere Befehle auszuführen, tun Sie einfach "outputStream.writeBytes (" \ n ");" und "outputStream.flush();" für jeden Befehl. Sie können auch eine Liste mit Befehlen zum Schleifen erstellen. –

1

Wenn ich es richtig mache, wollen Sie Ihrer Anwendung Root-Rechte gewähren. Dies ist mit dem Standard-Android-Image, das auf den Geräten installiert ist, nicht möglich. Der Befehl su unterstützt das Wechseln zu root nicht.

Sie können jedoch ein benutzerdefiniertes Root-ROM auf Ihrem Gerät laden, außer dass ich befürchte, dass es keine Lösung gibt.

+1

i verwenden viele viele Anwendungen zu gewinnen, die so für Superuser-Berechtigungen stellen nicht sicher vor dem Start, was Ihr auf über –

+0

Sicher, dass Sie für Superuser Erlaubnis fragen können, aber Auf einem nicht gerooteten Standardgerät mit einem standardmäßigen, unberührten ROM funktioniert das nicht. Das wollte ich sagen. –

1

Here Sie eine klare Darstellung finden, wie Root-Rechte