Como fazer root emulador Android (Android 7.1.1 / Nougat)
É um prazer informar a comunidade sobre uma maneira mais fácil de fazer o root do emulador Android (executado no Android SDK autônomo)
Requisitos :
Nota: O SuperSU agora está obsoleto, mas esse método ainda funciona para fazer root no emulador, e mais atualizações serão fornecidas para os métodos de root mais recentes.
Instruções
Instale o SuperSu.apk
Instale o aplicativo SuperSu primeiro, basta arrastar e soltar (se estiver executando a versão mais recente do emulador ou carregar sidel através do adb, por exemplo adb –e install supersu.apk
)
Depois de instalá-lo, quando você o executa, é exibida uma tela como mostrado abaixo, indicando “Não há binário SU instalado ..”. Este erro apenas confirma que o dispositivo ainda não está enraizado.
Tornar a partição do sistema do emulador gravável
Como sugere, precisamos dar ao emulador permissão para gravar arquivos do sistema.
Digite o seguinte código para fazer isso: emulator.exe –avd {emulator_name} –writable-system
Nota: Navegue até a pasta de ferramentas em que o Android SDK está instalado e abra o prompt de comando pressionando shift e clicando com o botão direito do mouse.
Pressionando binário su no diretório do sistema
- Extraia o Recovery flashable.zip (que contém os binários de diferentes arquiteturas)
Importante! Use apenas o binário su que corresponde à sua arquitetura avd, por exemplo, x86, arm etc. e observe o caminho em que você extraiu esses binários.
- Verifique se você está executando o adb como root e também precisa remontar. Basta digitar esses códigos
adb root
adb remount
Agora é hora de empurrar o binário su:
Este é o código que usei com sucesso :adb -e push C:\%USERPROFILE%\Desktop\rootemu\x86\su.pie /system/bin/su
(não se preocupe com a minha localização específica de su binary, qualquer localização está correta desde que não haja espaço em branco)
Se isso falhar, tente pressionar este diretório /system/xbin/su
. Também para emuladores executando o Android 5.1 e abaixo, use o su
e nãosu.pie
Alterar permissões do binário su
- Em seguida, vamos fazer algumas modificações nas permissões do su binário. Temos que fazer isso no dispositivo emulador através do adb:
adb –e shell
su root
cd /system/bin
chmod 06755 su
Importante!! Tome nota do caminho binário su (o meu é / system / bin)
- Definir a
install
diretiva em binário e definir umdaemon
Digite os códigos:
su --install
e para configurar o daemon:
su --daemon&
Importante!! Anote o espaçamento
Configurando o SELinux como Permissivo (ou seja, desativando o SE Linux)
- Por fim, desative o selinux através deste código:
setenforce 0
É isso mesmo !! Abra o aplicativo SuperSU e pode solicitar a atualização de binários, você pode usar o método Normal.
Abra qualquer aplicativo que exija permissões de SU apenas para verificar novamente e, de fato, o SuperSU pergunta se você deseja conceder permissões de SU.
Observações
A maior parte do conteúdo em referência era para versões mais antigas do Android e, portanto, o motivo de diferentes comandos e caminhos que eu modifiquei.
Agradecimentos especiais;
Agradecimento especial a Irvin H, cujo tutorial me inspirou a criar este guia depois de ter falhado inúmeras vezes e também depois de ver a necessidade de muitos usuários fazerem root em seus emuladores também. Espero que isso também se beneficie muito
Irvin H: Como fazer root no emulador do Android - no Android Studio 2.3 ((Android 4.4)
Atualizar
Como comentado por SaAtomic,
Essa abordagem ainda é viável com o Android Studio 3.0.1
Após o upgrade para a versão emulador 27.2.9
e superior, agora a preservação da raiz é muito mais fácil através do recurso de instantâneo (se a cópia do método system.img não estiver funcionando):
Idealmente, é mais como hibernar o dispositivo virtual com a configuração intacta, portanto, tudo é preservado.
Instantâneos
Agora você pode salvar vários snapshots do AVD para uma determinada configuração de dispositivo e escolher qual dos snapshots salvos carregar ao iniciar o emulador. Iniciar um dispositivo virtual carregando uma captura instantânea é como acordar um físico de um estado de suspensão, em vez de inicializá-lo a partir de um estado desligado.
Isso implica que o único requisito para iniciar o emulador seja adicionar o -writable-system
parâmetro ao -avd [avdname]
comando emulador normal para iniciar o emulador. (Executar o emulador apenas com o emulador -avd [avdname] não inicia a versão / cópia raiz ou pode levar a algum erro)
Testado no nível 22 da API