2016-09-18 4 views
1

Wenn ich adb verwende, um auf mein Gerät (Android 4.4.2 direkt von den Herstellern mit ihren eigenen rom - es ist kein normales Gerät - es hat in 2D-Barcode-Scanner gebaut) zu gehen, geht es direkt zu einem # was ich gelesen habe, bedeutet, dass ich Root-Zugang habe. Und wenn ich „id“ laufen bekomme ich folgendes:Android running su innerhalb App

uid=0(root) gid=0(root) context=u:r:adbd:s0 

Allerdings, wenn ich „su“ aus meiner app laufen lassen und dann „id“ Ich bekomme die folgende:

uid=10079(u0_a79) gid=10079(u0_a79) groups=50079(all_a79) context=u:r:untrusted_app:s0n 

So ist es läuft offensichtlich nicht als root. Ist mein Verständnis falsch, wenn ich glaube, dass es als root in der App ausgeführt werden soll, oder muss ich noch etwas anderes tun, um das zu erreichen?

Jeder Rat würde sehr geschätzt werden. Hier

ist der Code ich zur Zeit mit den su und id Befehle auszuführen:

p = Runtime.getRuntime().exec("su"); 
      p.waitFor(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 

      String line = ""; 
      while ((line = reader.readLine())!= null) { 
       output.append(line + "n"); 
      } 


      p = Runtime.getRuntime().exec("id"); 
      p.waitFor(); 
      reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 

      line = ""; 
      while ((line = reader.readLine())!= null) { 
       output.append(line + "n"); 
      } 

Eine andere Sache, die ich vergaß zu erwähnen - ich kopieren Sie die App/system/priv-App und führen Sie es von dort. Immer noch kein Glück.

+0

https://source.android.com/security/selinux/implement.html –

+0

konnten Sie das lösen? – user1506104

+0

Der Hersteller hat mir die Datei KingRoot.apk geschickt. Ich habe es mehrmals ausgeführt und als es funktionierte und mir Root-Zugriff ermöglichte. Aber ich muss auch unsere anderen Geräte einrichten, also putzte das Gerät erneut auf seine neue Firmware und lief wiederholbar (damit ich den Vorgang auf den anderen Geräten dokumentieren konnte), war aber in KingRoot-Arbeit nicht mehr erfolgreich. Der Hersteller ist damit beschäftigt, mit seinen Ingenieuren zu sprechen, um eine Lösung zu finden. Ich werde ein Update veröffentlichen, sobald es erfolgreich ist. Vielen Dank. – Mudders

Antwort

-1

Ich hatte eine chinesische Tablette mit so einem Problem. Einfach neu rooten (ersetzen Sie su binär). Sollte arbeiten.

P.S. Es wäre auch hilfreich, einen Code zu sehen.

+0

Danke für Ihren Kommentar. Aktualisierte Frage mit Code, den ich verwende, um die Befehle su und id auszuführen. Wie würde ich es wiederverwurzeln? Es kam zu einer Verwurzelung - von Anfang an konnte ich auf die # mit adb shell zugreifen. Ich habe auch eine neue Kopie von su nach/system/bin/su kopiert und versucht, das direkt auszuführen, aber es hatte dasselbe Problem. – Mudders

+0

Unlock Root funktionierte für mich damals, aber ihre Website sieht kaputt oder gehackt aus. Sie können einfach manuell neue 'su' binäre und [SuperSU] (http://forum.xda-developers.com/apps/supersu/stable-2016-09-01supersu-v2-78-release-t3452703) wie apk in drücken /System. – sssemil

-1

Es ist ein Android-Manifest Erlaubnis Sie Root-Zugriff zu erlangen verwenden können, um

<uses-permission android:name="android.permission.FACTORY_TEST" /> 

Ihre App wird als Hersteller Testanwendung ausführen, als Root-Benutzer ausgeführt wird. So machen Sie den Befehl 'su' für Ihre App zugänglich.

Ich bezweifle jedoch, dass Google Play Ihnen erlauben wird, mit einer solchen Erlaubnis in den Laden zu laden.

+0

Diese Berechtigung zum Manifest hinzugefügt, aber immer noch keine Freude. Läuft immer noch als der Benutzer, den ich in der Frage erwähnt habe. Ich muss versuchen herauszufinden, wie ich das Gerät neu root machen kann und ob es so funktioniert. – Mudders

+0

Was ist die Ausgabe nach dem Ausführen von exec ("su")? Kannst du den Inhalt der Variable 'output' anzeigen? – user1506104

+0

Nichts. Nach dem Ausführen von exec ("su") gibt es überhaupt keinen zurückgegebenen Wert. – Mudders