Configuración de permisos personalizados por aplicación [duplicado]

Quiero un control más granular sobre los permisos. Estoy bien con las aplicaciones que tienen algunos permisos, pero quiero estar a cargo y tener un control más granular.

¿Se puede hacer esto en Android? Sé que iOS tiene esto para algunas cosas como contactos y datos de calendario. Se le solicita al usuario antes de que la aplicación obtenga acceso a estos conjuntos de datos confidenciales.

Técnicamente, puedo ver que esto funciona negando el acceso a la API cuando la aplicación intenta acceder a ella.

Parece que está disponible en Android 4.3, aunque oculto por defecto. androidpolice.com/2013/07/25/…

Respuestas (3)

Agregando a la respuesta de Chahk : Sí, es cierto que los permisos "nativos" son un "todo o nada". Se espera que el "usuario estándar" acepte todos los permisos que solicita una aplicación o que se abstenga de instalarla.

Y sí, es cierto: al usar una aplicación como Permisos denegados , que simplemente "niega" ciertos permisos a una aplicación, las aplicaciones pueden cerrarse a la fuerza, ya que no esperan esto.

Pero hay una tercera forma en la que las aplicaciones simplemente reciben "datos falsos". Esto lo hacen, por ejemplo, LBE y PDroid (ver ¿ Otras aplicaciones para administrar permisos? y cómo falsificar mi información personal para más detalles). ¿La aplicación quiere los contactos? Vaya, la libreta de direcciones está vacía. ¿IMEI? Bien, ¿qué tal "1234567890"? ¿Internet? Lo sentimos, pero estamos en un túnel: no hay WiFi ni datos móviles disponibles. Entonces, todos los datos devueltos tienen sentido para la aplicación solicitante: no obtiene una "excepción" simple, por lo que no falla. ¿Y qué se inventa a partir de los datos falsos? ¿A quién le importa? :)

No hace falta decir que aquí también se requiere root...

Cada aplicación presentará una lista de permisos que utiliza durante la instalación, momento en el que un usuario puede aceptarlos e instalar la aplicación, o denegar y detener la instalación. El modelo de permisos en Android es un "todo o nada", lo que significa que aceptas todo lo que pide la aplicación o no la instalas.

Fuera de la caja, después de esa aceptación inicial, Android estándar no brinda a los usuarios la capacidad de denegar permisos específicos. Sin embargo, si su teléfono está rooteado, existen aplicaciones de terceros que habilitan esta funcionalidad. Algunas ROM personalizadas también tienen esto. Tenga en cuenta que la gran mayoría de las aplicaciones están codificadas para asumir que todos sus permisos declarados están disponibles (ya que debe aceptarlos para poder instalar dicha aplicación). Por lo tanto, no se molestarán en verificar las condiciones en las que se denegaron los permisos. a través de métodos no estándar. Esto significa que lo más probable es que las aplicaciones se vuelvan inestables y se bloqueen o cuelguen.

Puede obtener lo que desea, pero necesita modificar o actualizar un firmware de posventa en su dispositivo.

Existe la gestión de permisos de CyanogenMod 7, pero solo es capaz de revocar permisos. Las solicitudes de API fallan entonces. Eventualmente, esto es lo mismo que si el desarrollador se olvidara de declarar el permiso en primer lugar y las aplicaciones a menudo no verifican esa condición y fallan.

Luego está el conjunto de parches de extensión de Privacy Droid (pdroid). Se desarrolló originalmente para Android 2.3 y consta de una aplicación de código cerrado ( Administration App en Google Play) y un parche de código abierto para el firmware (consulte el enlace en Play Store).

Debido a que el desarrollo se ha estancado, otros portaron los parches del sistema a versiones más nuevas de Android y también se escribieron aplicaciones de administración de código abierto. Algunas Roms personalizadas ya incluyen todos los cambios necesarios, para aquellos que no (CM, et al.) existe el proyecto de parcheo automático para modificar las imágenes de firmware para incluir todos los bits necesarios:

Subproceso AutoPatcher en XDA

Sugerencia: mientras tanto, hay dos versiones del PDroid original disponibles. Los detalles se pueden encontrar a través de los enlaces en mi respuesta a esta pregunta. Una de las bifurcaciones es incluso de código abierto (OpenPDroid).