En Documentación para desarrolladores escribe en el nivel de protección "firma":
Un permiso que el sistema concede sólo si la aplicación solicitante está firmada con el mismo certificado que la aplicación que declaró el permiso. Si los certificados coinciden, el sistema concede automáticamente el permiso sin notificarlo al usuario ni solicitar su aprobación explícita.
Esto era como siempre lo había conocido. Pero parece que de alguna manera contradice lo que la misma documentación escribe sobre WRITE_SETTINGS que está marcado como "Nivel de protección: firma":
Si la aplicación tiene como objetivo el nivel de API 23 o superior, el usuario de la aplicación debe conceder explícitamente este permiso a la aplicación a través de una pantalla de gestión de permisos.
¿Significa eso que el comportamiento al respecto ha cambiado con Marshmallow, y que una aplicación que no sea del sistema que utilice una firma diferente puede seguir accediendo a funciones cubiertas por ella, siempre que el usuario esté de acuerdo? Además, con la nueva "mentalidad" de conceder automáticamente permisos de un grupo donde el usuario ya tiene otro permiso concedido: ¿este permiso también se concede automáticamente entonces (como con todos los permisos del nivel de protección "peligroso") - o la diferencia aquí es que siempre requiere el acuerdo del usuario, pase lo que pase?
Nota 1: ha habido muchos cambios en la forma de gestionar los permisos en Android 6+. Para no hacer una pregunta "demasiado amplia", he tratado de dividirlo; así que para las otras partes, por favor también ver: El sistema de permisos cambia con Android 6.0: ¿Cuáles son las implicaciones para nosotros los usuarios? y Android 6+ y los permisos de cuenta: ¿adónde han ido a parar?
Nota 2: Esto definitivamente es de relevancia para el usuario final, ya que se trata de sus datos, y la comprobación cruzada de los permisos para detectar posibles implicaciones debería formar parte del proceso de instalación o, más bien, de selección de aplicaciones. Yo no preguntar desde la perspectiva de un desarrollador sobre cómo lidiar con eso al escribir una aplicación (aunque eso también podría ser interesante ;)
0 votos
Por encima del nivel 23 de la API es necesario aceptar los permisos cuando se solicitan... ¡Las versiones antiguas exceptuaban los permisos en la instalación !
0 votos
@ProbablyThis Gracias, pero ese no es el punto por el que pregunto (soy consciente de esta diferencia ;). Lo que quiero decir es: Las apps de terceros (instaladas por el usuario) sólo tenían permisos con nivel de protección "normal" (concedidos sin necesidad de aprobación) y "peligroso" (que son los que el usuario tiene que aceptar explícitamente - ya sea al instalar antes de MM, o a petición con MM en adelante). Los permisos con nivel de protección "firma" sólo se concedían si la firma coincidía con la de la app que los concedía. ¿Ha cambiado esto? No estoy preguntando acerca de "en la instalación" frente a "en tiempo de ejecución".