TransWikia.com

Using Android Emulator's Root Shell via Command Line

Android Enthusiasts Asked by Marvin S. on December 4, 2021

When starting an Android emulator (SDK 24.4.1) on linux by command line you should be able to get a root shell by using the -shell command line option. At least that’s what the manual says

https://developer.android.com/studio/run/emulator-commandline.html
(Create a root shell console on the current terminal. You can use this command even if the adb daemon in the emulated system is broken. Pressing Ctrl-c from the shell stops the emulator instead of the shell)

But when starting the emulator like

emulator -netdelay none -netspeed full -avd nougat-x86_64 -gpu off -no-window -shell

I do see the shell output of the Android emulator booting, but I can not send any commands to it, i.e. ls.

Also opening a tcp port for the shell and communicating via telnet shows the same behavior.

emulator -netdelay none -netspeed full -avd nougat-x86_64 -gpu off -no-window -shell-serial tcp::4444,server,nowait

telnet localhost 4444

There’s not much information about this topic on the internet, but perhaps someone already dealt with this topic. Thanks in advance!

One Answer

From android source, line 698:

seems the '-shell' option is as same as '-logcat' option, thus I think the documentation is not described well and of course the '-shell' option won't bring you an interactive root shell from the virtual serial.

Maybe I'm wrong, I only tested this on MacOS.

With further test, as same as this guy's post, the '-show-kernel' will actually get you the kernel log and an interactive rootable console.

Answered by Parahexen on December 4, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP