2016-09-18 9 views
1

Lorsque j'utilise adb pour accéder à mon appareil (Android 4.4.2 directement à partir de la fabrique avec leur ROM personnalisé - ce n'est pas un appareil ordinaire - il a construit en 2D scanner de codes barres) il va directement à un # que j'ai lu signifie que j'ai un accès root. Et si je lance « id » Je reçois le texte suivant:Android en cours d'exécution su dans l'application

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

Cependant, quand je lance « su » à partir de mon application, puis « id » Je reçois le texte suivant:

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

Il est donc ne fonctionne clairement pas en tant que root. Est-ce que ma compréhension est erronée, en croyant que cela devrait fonctionner en tant que root à partir de l'application, ou y a-t-il autre chose que je dois faire pour que cela fonctionne?

Un conseil serait grandement apprécié.

Voici le code que je suis actuellement utilisé pour exécuter les commandes su et id:

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

Une autre chose que j'oublié de mentionner - je copie l'application à/système/PRIV-app et l'exécuter De là. Toujours pas de chance.

+0

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

+0

Etes-vous capable de résoudre ce problème? – user1506104

+0

Le fabricant m'a envoyé le fichier KingRoot.apk. Je l'ai couru plusieurs fois et une fois cela a fonctionné et réussi à me donner un accès root. Mais je dois également configurer nos autres appareils, donc nettoyé à nouveau l'appareil à son nouveau firmware et répété (pour pouvoir documenter le processus à faire sur les autres appareils) mais qui n'ont pas encore fonctionné avec KingRoot. Le fabricant est occupé à parler à leurs ingénieurs afin de trouver une solution. Je posterai une mise à jour une fois qu'elle aura réussi. Merci. – Mudders

Répondre

-1

J'avais une tablette chinoise avec un problème comme ça. Juste le re-root (remplacez su binaire). Devrait marcher.

P.S. Voir n'importe quel code aiderait aussi.

+0

Merci pour votre commentaire. Question mise à jour avec le code que j'utilise pour exécuter les commandes su et id. Comment ferais-je pour le ré-enraciner? Il a été enraciné - dès le début, je pouvais accéder au # avec shell adb. J'ai également copié une nouvelle copie de su dans/system/bin/su et essayé de l'exécuter directement, mais il a eu le même problème. – Mudders

+0

Débloquer la racine a fonctionné pour moi à l'époque, mais leur site web semble brisé ou piraté. Vous pouvez juste pousser manuellement le nouveau 'su' binaire et [SuperSU] (http://forum.xda-developers.com/apps/supersu/stable-2016-09-01supersu-v2-78-release-t3452703) comme apk dans /système. – sssemil

-1

Il y a une autorisation manifeste Android, vous pouvez utiliser pour obtenir un accès root

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

Votre application fonctionnera comme une application de test du fabricant, en cours d'exécution en tant qu'utilisateur racine. Ainsi, la commande 'su' est accessible à votre application.

Cependant, je doute que Google Play vous autorise à télécharger en magasin avec une telle autorisation.

+0

Ajout de cette permission au manifeste mais toujours pas de joie. Fonctionne toujours comme l'utilisateur que j'ai mentionné dans la question. Je vais devoir essayer de trouver comment rooter l'appareil et voir si je peux le faire fonctionner de cette façon. – Mudders

+0

Quelle est la sortie après avoir exécuté exec ("su")? pouvez-vous montrer le contenu de la variable 'output'? – user1506104

+0

Rien. Après avoir exécuté exec ("su"), il n'y a pas de valeur retournée. – Mudders