In the Android environment, who is this "shell" user that I'm SSH-ing through ADB, as I attempt to see how much I could do with my Amazon Fire 10 tablet?

Said user's level seems very, very client-level, yet I get the impression it is the same administrator user directly calling the commands to facilitate the installation of the packages.

How does it work within the Android system?


1 Answer 1


shell is a special user (with UID 2000). Its privileges are controlled by mapping its UID with a dummy system app (with package name com.android.shell). All permissions which are granted by the Android framework to the app are also granted to the shell user. These include some signature-level manifest permissions which the normal user apps cannot have.

shell user does not and can not do the app installation. It just forwards the request to the related services running in the Android framework (system_server process) which then performs the installation as explained here.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .