Primero para aclarar sólo root
(UID 0
) no es suficiente para conseguir el acceso a la /data
al menos desde Android 5. Control de Acceso discrecional basado en UNIX tradicional Uid/Gid solo no cumplir con las necesidades de los modernos complejos sistemas operativos como Android. DAC es complementado por el Control de Acceso Obligatorio (MAC); SELinux en el caso de Android. Por tanto, para acceder /data
su usuario o proceso debe tener una política definida explícitamente.
Google Play Store abrió en mi actual permiso de usuario
Esto no es correcto. Concepto de "usuarios" es diferente en Android que en normal Linuxes. En Android cada aplicación se le asigna un único UID (de gama 10000 a 19999) y se ejecuta en su propio usuario. Los privilegios se controlan a través de Android del permiso marco. En el sistema de archivos de nivel cada aplicación que está enlazado a un par de directorios (privadas y compartidas), que también sujeto a algunos de los permisos. Para más detalles, ver Donde Android apps store de datos?
Así que no hay ningún ser humano que se podrían ejecutar todos sus programas en el marco de usuario actual/UID.
descargado e instalado otros archivos Apk a /datos. Eso significa que tengo acceso completo a la /data
de la partición.
Play Store no instale apk
de archivos, que sólo realiza algunas verificaciones y descarga el archivo con el Gestor de Descarga (com.android.providers.downloads
) que se ejecuta en su propio LÍQUIDO. Instalación de la aplicación a /data/app
y otros directorios relevantes está principalmente a cargo de Administrador de Paquetes de servicio se ejecuta bajo UID 1000
(system_server
proceso) en la pila Java y installd
que se ejecuta bajo UID 0
en los nativos de la pila. Instalador de paquetes (com.android.packageinstaller
) es la aplicación del sistema de ejecución en virtud de su propia UID - que proporciona la interfaz de usuario para (des)instalar aplicaciones de forma manual. Ver más detalles aquí. Del mismo modo todas las aplicaciones y procesos tienen sus propios contextos de SELinux para permitir el acceso a los procesos necesarios y archivos. Hay una serie de APIs y IPCs involucrados en todo este proceso.
¿Por qué es necesario el permiso de superusuario para acceder a /data
de la partición?
En pocas palabras, es la protección. Como usted necesita acceso root para cambiar /etc
directorio en sistemas operativos Linux y como se necesitan derechos de Administrador para abrir el Editor del Registro de Windows. Esta restricción es para aislar y proteger todas las aplicaciones del proceso en un ambiente confinado. Otro de DAC y MAC, otros fenómenos como Linux capacidades, espacios de nombres, cgroups y seccomp filtros se utilizan también para esta zona de pruebas. Se recurre también a las aplicaciones el acceso limitado a los recursos y hace que la auditoría fácil.
Algunas razones comunes de mi respuesta a ¿Cómo puedo acceder a $HOME/storage
fuera de Termux?:
/data
de partición también contiene la configuración del sistema, incluyendo datos sensibles como contraseñas de bases de datos (aunque no se guardan como texto sin formato), contactos, registros de llamadas y aplicaciones estadísticas. Por lo /data
no está accesible sin root con el fin de:
- Proteger las aplicaciones de los datos de otras aplicaciones
- Proteger los datos del sistema y la configuración de las malas aplicaciones y malware
- Aislar a los usuarios/perfiles de otros usuarios/perfiles
- No deje que las aplicaciones de acceso de almacenamiento compartido sin permiso de Almacenamiento
- Hacer cumplir las Api de Android marco para que las aplicaciones no pueden utilizar los recursos del sistema y de lectura/manipular la información del dispositivo y la configuración sin los permisos adecuados
Y, posiblemente, hay otras razones. Para más detalles, ver Son múltiples usuarios protegidos de cada uno de los otros de manera diferente que las apps?