3 votos

¿Es posible restringir los permisos de una aplicación a una(s) carpeta(s) específica(s) (y subcarpetas)?

Cuando se instala una aplicación, dependiendo de la aplicación, se requiere el acceso al sistema de archivos y se solicita en el momento de la instalación. ¿Es posible restringir esto a carpetas específicas y sus subcarpetas? Por ejemplo, un editor de fotos o una aplicación de agenda: ¿por qué estas aplicaciones necesitan poder acceder a todo el sistema de archivos?

Si no es así, puede que no sea una mala idea, desde el punto de vista de la seguridad...

2 votos

1) Puede que me lo haya perdido pero no recuerdo ningún permiso de Android relacionado con el acceso al sistema de archivos sino sólo al almacenamiento compartido. 2) Android utiliza el kernel de Linux por lo que siempre se puede restringir los archivos y carpetas para algo mediante el uso de grupos. // Dicho esto, tu idea me parece amplia, así que te sugiero que concretes el problema específico que tienes.

0 votos

Si no necesitas acceso (excepto para carpetas específicas de una aplicación), simplemente no lo solicites. Por defecto, cada app puede escribir en su propio espacio de almacenamiento, es decir. /data/data/<package_name> y /sdcard/Android/data/<package_name> . Un editor de fotos necesitaría "acceso total" si desea editar fotos existentes que residen fuera de ese ámbito, por supuesto. // Aparte de eso, ¿cuál es el trasfondo de tu pregunta? Qué permiso solicitar es una decisión del desarrollador de la aplicación de la que los usuarios no podemos ocuparnos.

0 votos

No está claro sobre qué sistema de archivos y directorios está preguntando OP. O se trata de almacenamiento completamente privado o directorios privados en almacenamiento compartido o almacenamiento compartido público o partición del sistema operativo ( /system etc.)

-1voto

vishalbiswas Puntos 33

Podría funcionar en teoría.

A cada aplicación instalada en un teléfono Android se le asigna un identificador de usuario a partir de 10000 para la primera aplicación y se crea un grupo con el mismo identificador.

BusyBox ¡(¿y root, tal vez?) se requiere!

Para obtener el uid de una aplicación, ejecute lo siguiente en un emulador de terminal.

dumpsys package com.example.myapp

Sustituir com.example.myapp con el nombre del paquete de su aplicación de destino.

  1. Formatea tu almacenamiento (externo/interno) con ext4, asumiendo que tienes una copia de seguridad de todos los archivos.
  2. Restaurar la copia de seguridad.
  3. chown y chmod las carpetas que quieras restringir. Basar sus restricciones en grupos será una mejor opción.

De nuevo, es sólo teoría. Puede o no funcionar. Si no has entendido alguno de los pasos, infórmate bien sobre ellos o no lo intentes. Esto puede causar la pérdida de datos temporal y permanente.

0 votos

En el diseño de almacenamiento de Android formato de almacenamiento externo con ext4 no es posible. Se trata de un almacenamiento compartido entre muchos UID, por lo que se utiliza un sistema de archivos sin permisos.

0 votos

@IrfanLatif Se supone que debes formatear usando ext4 tu mismo. En ningún momento he dicho que venga con ext4. Se ha conseguido que te reconozcan la sdcard con un fs no predeterminado para algunos dispositivos. Excepto la sdcard emulada y otro almacenamiento externo, todas las rutas de almacenamiento ya están restringidas en base al uid de las aplicaciones.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X