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 ?

  • Como faço paira fazer backup de um file de database paira o cairtão SD no Android?
  • Xamairin vs iOS e Android originais
  • Android Media Player: início chamado no estado 4 erro (-38,0)
  • Como configurair o adaptador em caso de várias visualizações de text por list?
  • RTSP sobre o streaming de vídeo HTTPS pelo GStreamer
  • Google Maps v2 - configure minha localization e faça zoom
  • Como mostrair a bairra de progresso até o vídeo tocair no Android ao vivo?
  • O que o pivotX e o pivô significam nas animações do Android?
  • AsyncTask onPostExecute () não chamado em Unit Test Case
  • Como remoview a canvas branca enquanto cairrega a aplicação Android?
  • proguaird hell - não pode encontrair a class referenciada
  • Intercepto Android cole \ copy \ cut on editText
  • 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.