En un mundo ideal, una aplicación Android que no tiene permisos significaría que la aplicación no puede dañar seriamente su dispositivo.
Por desgracia, no vivimos en un mundo ideal, especialmente en Android, donde el fabricante del dispositivo a menudo no proporciona las actualizaciones de seguridad más recientes a todos y cada uno de los dispositivos.
Por lo tanto, ejecutar una aplicación maliciosa sin ningún permiso en un dispositivo Android puede acabar en una infección permanente del dispositivo si éste es vulnerable a un exploit que permita a la aplicación obtener permisos Root. Estos exploits pueden funcionar independientemente de si el dispositivo está rooteado o no, incluso en dispositivos con roms de stock.
Por lo tanto, el riesgo de ejecutar una aplicación sin ningún permiso depende en gran medida de si su dispositivo tiene la última actualización de seguridad (ver la fecha del nivel de parche en Ajustes -> Sistema -> Acerca de -> Nivel de parche de seguridad).
Si tu dispositivo tiene el nivel de parche más reciente y la aplicación no es nueva, el riesgo de que pueda dañar tu dispositivo es bajo. Sin embargo, si su dispositivo tiene un nivel de parche de seguridad de hace meses o incluso años, incluso una aplicación sin permisos puede causar graves daños a su dispositivo.
Lo que es posible en diferentes versiones de Android
Hay un artículo antiguo (2012) en AndroidPolicy: Susto de seguridad de la semana: ¿Qué puede hacer una aplicación sin permisos? que enumera algunos datos sobre lo que las aplicaciones pueden hacer sin ningún permiso. Vamos a tratar de comprobar algunos de los hechos y comprobarlos en relación con los dispositivos Android modernos:
Lee datos de tu tarjeta SD
Por defecto en los dispositivos anteriores a Android 4.4 las aplicaciones tenían por defecto acceso de lectura a la sección de la tarjeta sd:
Este permiso se aplica a partir del nivel 19 de la API (Android 4.4). Antes del nivel de API 19, este permiso no se aplica y todas las aplicaciones siguen teniendo acceso a la lectura del almacenamiento externo. Puedes probar tu aplicación con el permiso activado activando Proteger almacenamiento USB en Opciones de desarrollador de la aplicación Ajustes en un dispositivo con Android 4.1 o superior. [fuente]
Pero incluso en las versiones más recientes todavía existe la posibilidad de obtener acceso a la tarjeta sd "gratis" en caso de que la aplicación defina que fue desarrollada para alguna versión muy antigua de Android. En tal caso, Android concede implícitamente el permiso de lectura de la tarjeta sd (no probado: ¿sigue siendo esto cierto para, por ejemplo, un dispositivo Android 10?)
Nota: Si los valores minSdkVersion y targetSdkVersion son 3 (Android 1.5) o inferiores, el sistema concede implícitamente este permiso a tu aplicación.
Para evitar el uso indebido de esos "permisos implícitos", Google impone una cierta targetSdkVersion
al subir una aplicación a Google PlayStore [fuente] . De ahí que si tienes una app de Google PlayStore que ha sido publicada en 2018 o posterior (última actualización) esos permisos implícitos en la tarjeta sd son imposibles.
Leer las aplicaciones instaladas a través de /data/system/packages.list
-> TBD
Datos varios de /proc
ID de Android, versión del kernel y versión de la ROM
-> TBD