Acesso root via Runtime.exec

Depois de horas e horas de pesquisas sem sucesso, resolvi abrir este fórum.

Alguém sabe alguma solução para executar um comando em root pelo Runtime.exec() ??

Já tentei capturar o processo e ler via process.getInputStream(), mas nada …
Não consegui achar nenhum parâmetro com o qual eu passe o password pela linha de comando.

Alguem ajuda???

Meio que não tem nada a ver com Java, mas você pode chamar o processo como “su -c COMANDO -l root”. Isso vai executar o comando como superusuário, perguntando a senha etc.

Você tentou isso?

Sim, tentei isso. Ele não pergunta a senha, mesmo vc capturando o Input do Process.

Mais duas coisas então que você pode tentar, talvez não se aplique/seja possível no seu ambiente:

  • Utilize o sudo para executar o processo, no lugar do su. Você pode colocar o processo como sudoer sem perguntar senha, o que (acho que) resolve seu problema.
  • Utilize o sudo para executar o java; o java todo fica como root, e o programa então deve herdar o usuário.