¿Cuál es la diferencia entre el usuario del sistema android y el usuario root de linux

Cuando conecto mi teléfono a la computadora, entonces utilizo el comando "adb shell" para comunicarme con mi teléfono e ingresar el comando ps a los procesos de salida que actualmente se ejecutan en mi teléfono, encuentro dos usuarios especiales, uno es el root y el otro es el sistema , Por lo que sé, Android basado en linux, por lo que el usuario root es el usuario de la autoridad más grande, pero confundo con el usuario del sistema, tal vez puedo considerarlo como un usuario normal en el sistema linux, Pero es especial en Android, que tiene Una gran cantidad de permisos relacionados con Android, así que ¿Puede alguien decirme lo real diferente entre el usuario root y el usuario del sistema, y ​​por qué Android tiene que agregar un usuario del sistema? Gracias 🙂

En lo que respecta a Linux, el usuario del system es sólo un usuario normal (UID 1000). Sin embargo, los servicios de Android le otorgan permisos especiales y puede acceder a prácticamente cualquier cosa. La mayoría de los servicios tienen código como este en alguna parte:

 private static final void enforceSystemOrRoot(String message) { final int uid = Binder.getCallingUid(); if (uid != Process.SYSTEM_UID && uid != 0) { throw new SecurityException(message); } } 

Lo que hace es negar el acceso a cualquier persona que no sea root o system . El usuario shell (UID 2000) (lo que obtienes al hacer adb shell ) es otro usuario con mucha potencia (miembro de muchos grupos). Cf.

system

  $ su 1000 $ id uid=1000(system) gid=1000(system) groups=1003(graphics),1004(input),1007(log),1009(mount), 1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin), 3002(net_bt),3003(inet),3006(net_bw_stats) 

shell

 $ adb shell shell@android:/ $ id uid=2000(shell) gid=2000(shell) groups=1003(graphics),1004(input),1007(log),1009(mount), 1011(adb),1015(sdcard_rw),1028(sdcard_r),3001(net_bt_admin), 3002(net_bt),3003(inet),3006(net_bw_stats) 

Android utiliza un usuario independiente para cada aplicación, y los servicios del sistema también tienen sus usuarios dedicados ( media , radio , wifi , etc.). Muy pocas cosas se ejecutan como root (principalmente daemons nativos).

El usuario del sistema no puede acceder a los archivos de otros usuarios.

Si lo hace: ls -l /data/data/com.google.android.gm/shared_prefs/

Tendrás 'permiso denegado'

Si eres usuario root, puedes hacer cualquier cosa. Puede acceder a todo el sistema de archivos, limpiar todos los datos.

También puede reiniciar el teléfono, etc.

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.