Al iniciar un emulador de Android (SDK 24.4.1) en linux por línea de comandos debería poder obtener un shell Root utilizando el comando -shell
en la línea de comandos. Al menos eso es lo que dice el manual
https://developer.Android.com/studio/run/emulator-commandline.html (Cree una consola de shell root en la terminal actual. Puedes usar este comando incluso si el demonio adb en el sistema emulado está roto. Presionando Ctrl-c desde el shell se detiene el emulador en lugar del shell)
Pero al iniciar el emulador como
emulator -netdelay none -netspeed full -avd nougat-x86_64 -gpu off -no-window -shell
Veo la salida del shell del emulador de Android arrancando, pero no puedo enviarle ningún comando, es decir ls
.
También abriendo un puerto tcp para el shell y comunicándose vía telnet muestra el mismo comportamiento.
emulator -netdelay none -netspeed full -avd nougat-x86_64 -gpu off -no-window -shell-serial tcp::4444,server,nowait
telnet localhost 4444
No hay mucha información sobre este tema en Internet, pero quizás alguien ya haya tratado este tema. Gracias de antemano.
0 votos
¿Cuál es tu pregunta?
0 votos
Quiero conseguir un shell Root, ya que mi adbd se bloquea. Pero la opción -shell no funciona. Mientras tanto me enteré, que usted puede conseguir una cáscara mediante el uso de -show-kernel. Pero me gustaria comunicarme con el shell Root por tcp. También hay un tema abierto en google: code.google.com/p/Android/issues/detail?id=202760
0 votos
Este parece haber sido también el tema en stackoverflow.com/questions/39374975/
0 votos
Utilice
adb shell
por supuesto. Si mal no recuerdo un emulador normalmente te da ese shell como Root por defecto. Si no, para una configuración que soporte ofrecer un shell Root, hazadb root
en primer lugar (obviamente, esto no es algo que funcione en un consumidor). dispositivo configurado de la forma en que Android se diseñó para que se configuraran los dispositivos de consumo)