Buenas, estoy trasteando con Android y los temas de seguridad en él. Resulta que me he quedado algo extrañado con lo siguiente...
Supongo que muchos de los que programáis para Android estáis al tanto de que desde la version 6.0, conocida como M, que pertenece al API level 23, se incorporaron los permisos en tiempo de ejecución. Bien, por lo tanto, si yo desarrollo una aplicación con Android Studio que me da todo el entorno listo me pone como target sdk siempre la última versión disponible de la API de Android, en este caso 25. Por lo tanto, si tengo una aplicación que utiliza los conocidos permisos peligrosos, como READ_PHONE_STATE, y no solicito el permiso en tiempo de ejecución, la aplicación tira una excepción... Bien todo correcto, lo que se espera para una mejora de seguridad de cara a los usuarios...
La cosa viene, es que leyendo he visto que dicen que si quieres que no tengas que pedir los permisos en tiempo en ejecución utilices como target SDK uno inferior al 23 (la incorporación de los permisos en ejecución), pues bien.. eso he hecho y es cierto. Es decir, si yo pongo un target SDK inferior puedo saltarme los permisos en ejecución hasta en la última versión de Android 7.1.1 (lo he probado con mis propios dedos).
¿Qué sentido tiene esto? ¿Alguien podría explicármelo? No lo se, pero no le veo sentido, veo sentido el porque sucede (por el código generado al compilar, claro) pero no entiendo porque Android permite instalar la aplicación en dispositivos con el target sdk inferior y más cuando se han añadido estas barreras de seguridad para ¿nada?.
Bien, espero que me deis opiniones y alguna idea o algún sitio que pueda sacar información del porque de esto.
Saludos!!
EDIT: Vale, acabo de ver que el READ_PHONE_STATE no debe estar considerado como peligroso, ya que si uso el permiso READ_SMS y compilo con target sdk 22 e intento acceder a los SMS, aunque yo no lo he implementado en mi aplicación, se solicita el permiso en tiempo de ejecución, al menos en Android 7.1.1. Por lo cual, me deja aun un poco más confuso jaja.