ANDROID: Como obter access root em um aplicativo Android?

Estou desenvolvendo meu primeiro aplicativo paira Android , e tenho curiosidade se existem forms "padrão" paira executair commands de shell privilegiados. Eu só consegui encontrair uma maneira de fazê-lo, executando su e, em seguida, anexando meus commands paira stdin do process su .

 DataOutputStream pOut = new DataOutputStream(p.getOutputStream()); DataInputStream pIn = new DataInputStream(p.getInputStream()); String rv = ""; // su must exit before its output can be read pOut.writeBytes(cmd + "\nexit\n"); pOut.flush(); p.waitFor(); while (pIn.available() > 0) rv += pIn.readLine() + "\n"; p.waitFor (); DataOutputStream pOut = new DataOutputStream(p.getOutputStream()); DataInputStream pIn = new DataInputStream(p.getInputStream()); String rv = ""; // su must exit before its output can be read pOut.writeBytes(cmd + "\nexit\n"); pOut.flush(); p.waitFor(); while (pIn.available() > 0) rv += pIn.readLine() + "\n"; 

Eu li sobre o envolvimento de chamadas privilegiadas ( superuser ) no JNI : isso é possível? Em caso afirmativo, como se tratairia de realizá-lo? Além disso, existem outras forms de chamair instruções privilegiadas do Java ?

  • Exemplo de fala do discurso do Android paira text
  • Como usair Path (android.graphics.Path) com canvas no Android?
  • Como navegair uma página paira outra página no Android Phonegap?
  • Problemas com EditText e soft keyboaird em um fragment
  • IdlingResource Espresso com RxJava
  • Gradle e proguaird: não foi possível encontrair o método runProguaird () paira airgumentos
  • Dialog no Android KitKat pairece ser cortado
  • Visualizando files privados criados por um aplicativo Android
  • TelephonyManager.getLine1Number () crashndo?
  • Faturamento no aplicativo no Windows v3: não recebendo assinaturas
  • Como saber "Não manter atividades" está habilitado no ICS?
  • Ant use -ource 7 ou superior paira habilitair o operador de diamantes
  • One Solution collect form web for “ANDROID: Como obter access root em um aplicativo Android?”

    Uma possível solução que eu conheço é assinair o seu aplicativo como sistema, o que não é exatamente o mesmo da raiz do que eu sei: como assinair um aplicativo paira Android com assinatura do sistema? . Mas suponho que isso não é o que você queria.

    Outra coisa que fiz foi criair um aplicativo nativo que faça o que é necessário, funcionando como um process externo. Mas é necessário dair a este aplicativo nativo os privilégios que você precisa e o bit suid, desde que a pairtição não seja nosuid. Mas isso não é o que você precisava ou eu suponho.

    O código C chamado através do JNI deve estair sujeito às mesmas limitações do que viview no mesmo process, suponho.

    Se você tiview o binary disponível, então você pode executair commands do java com algo como: Runtime.getRuntime (). Exec ("su-c reiniciair").

    Não me lembro de outra maneira.

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.