Who is the "shell" user during ADB session?
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?
shellis 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
shelluser. These include some
signature- https://android.stackexchange.com/a/217522/218526 manifest permissions which the normal user apps cannot have.
shelluser does not and can not do the app installation. It just forwards the request to the related services running in the Android framework (
system_serverprocess) which then performs the installation as explained https://android.stackexchange.com/a/218572/218526 .