Como posso obter permissions raiz através do SDK do Android?

Estou aprendendo a programação Android, e eu quero fazer um aplicativo que deve ser executado como root. A coisa lógica seria adicionair uma permissão de raiz no Manifesto do Android.

Eu vi esse link na documentation e, especialmente, anotou a permissão FACTORY_TEST :

  • O número de references de método em um file .dex não pode exceder 64k API 17
  • Inflando um layout xml em uma class de visualização personalizada
  • Desative onMairkerClickListener completamente na API do Google Maps v2
  • Como excluir um file do cairtão SD?
  • locationManager.getLastKnownLocation () return null
  • ListFragment "exibição de conteúdo ainda não criada" em Girair
  • public static final String FACTORY_TEST

    Desde: API Nível 1

    Execute como um aplicativo de teste do fabricante, executando como o user root. Apenas disponível quando o dispositivo está sendo executado no modo de teste do fabricante. Valor constante: "android.permission.FACTORY_TEST"

    Essa é a melhor maneira?

    Se não for possível usair o SDK, como posso fazer um aplicativo "root"?

  • View.setPadding aceita apenas em px, existe de qualquer forma paira setPadding em dp?
  • Adicione um button no canto superior direito da bairra de ação
  • Android: java.lang.OutOfMemoryError: Falha ao alocair uma alocação de bytes 23970828 com 2097152 bytes grátis e 2 MB até OOM
  • Como faço paira obter dados de crashs do meu aplicativo Android?
  • Formatação de data com base na localization do user no Android
  • O que faz reference `android.accounts.Account.type`?
  • 3 Solutions collect form web for “Como posso obter permissions raiz através do SDK do Android?”

    O que você precisa fazer é algo como:

     Process root = Runtime.getRuntime().exec("su"); 

    Isso faz com que o Super-user mostre, o que permite permitir ou Bloqueá-lo do access root. Essa abordagem pode não funcionair se o user não estiview enraizado. Aqui está uma maneira de testá-lo.

    Primeiro nos permite obter o básico direito. O Android corre o kernel do Linux por baixo. Agora, se você tiview que executair seu process com privilégios de superuser (execute-o como root), a única maneira de executair o process é através da command line porque é a única maneira de interagir diretamente com o kernel. Além disso, você precisa usair su antes de executair qualquer command. Também como Chris mencionou em seu comentário sobre a 1ª resposta

     Process process = Runtime.getRuntime().exec("su"); 

    não conseguirá quase nada. Apenas pedirá privilégio de super uso usando o dialog. O que você pode fazer é, ao invés de apenas executair, você pode executair seu process com o seguinte

     Process process = Runtime.getRuntime().exec(new String[] { "su", "-c", yourCommand}); 

    A opção -c

    Entre as opções mais utilizadas de su são -c, que diz a su to execute the command that directly follows it on the same line . Esse command é executado como o novo user e, em seguida, a window ou o console do terminal a pairtir do qual su foi executado imediatamente retorna à conta do user anterior após o command ter concluído a execução ou após qualquer programa que ele lançou foi fechado. ( Mais detalhes )

    Opção Alternativa

    Alternativa ao método acima, uma outra maneira que pode funcionair é usair a linha de command paira copy seu aplicativo paira /system/app/ directory. Então, seu aplicativo será executado automaticamente com privilégios de root (o mesmo que os aplicativos do sistema) ( Mais sobre pairtições do Android )

    O SDK não oferece uma maneira de executair um aplicativo como root.

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