Una política de privacidad es una promesa. Esto es una comprobación: en un minuto, con las herramientas oficiales de Android, sobre el archivo que está instalado en tu móvil.
En Android, una aplicación que no declara android.permission.INTERNET no puede
abrir una conexión de red. No es que se porte bien: es que el sistema operativo rechaza el
intento. Da igual lo que haga el código, lo que diga la empresa o quién sea el dueño mañana.
Por eso esta comprobación vale más que cualquier promesa. Si una app que maneja datos sensibles no declara ese permiso, no hay forma de que salgan del teléfono. Y si lo declara, no significa que haga nada malo —casi todas lo necesitan—, pero entonces la privacidad vuelve a depender de que te fíes.
La pantalla de permisos de tu móvil no lo enseña. En
Ajustes → Aplicaciones → Permisos, Android solo lista los permisos
peligrosos: los que se conceden en tiempo de ejecución, como la cámara, la
ubicación o los contactos. INTERNET es un permiso normal: se
concede al instalar y no aparece nunca en esa pantalla, en ninguna aplicación.
Que no lo veas ahí no demuestra absolutamente nada.
Tampoco sirve la política de privacidad, ni la ficha de la tienda, ni que la app «funcione en modo avión». Todo eso es coherente tanto con una app que no puede conectarse como con una que puede y ese día no lo hizo.
Necesitas un ordenador con las Platform Tools de Android —son oficiales y gratuitas— y activar la depuración por USB en tu móvil, en las opciones de desarrollador.
$ adb shell dumpsys package app.xtracto | grep -A 30 "requested permissions"
requested permissions:
app.xtracto.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION
Esa lista es la que el sistema tiene registrada, e incluye los permisos normales. Si
android.permission.INTERNET no está, la app no puede salir a la red.
Lo anterior te dice lo que cree el sistema. Esto te lo dice el propio archivo que se instaló, que es la fuente. Son tres órdenes:
# 1. Averigua dónde está instalada adb shell pm path app.xtracto # 2. Tráete el archivo al ordenador adb pull /data/app/.../base.apk app.apk # 3. Pregúntale qué permisos declara aapt2 dump permissions app.apk
aapt2 viene con las build-tools del SDK de Android. Si tienes Android
Studio instalado, también sirve apkanalyzer manifest permissions app.apk, que hace
lo mismo y suele estar más a mano.
Ojo con los APK divididos. Google Play no entrega un archivo, entrega un
app bundle: el paso 1 puede devolverte varias rutas —un base.apk y varios
split_config.*.apk—. El manifiesto que manda es el del base, pero si quieres ser
exhaustivo, tráetelos todos y míralos uno a uno.
android.permission.INTERNETPuede abrir conexiones de red. Es el que importa. Sin él, cualquier intento de conectarse falla en el sistema.
ACCESS_NETWORK_STATESolo permite consultar si hay conexión. No permite usarla.
Suele acompañar a INTERNET, pero por sí solo no abre nada.
DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSIONLos genera automáticamente AndroidX, la librería base de Android. Llevan el nombre del paquete delante, son internos de la aplicación y no dan acceso a nada.
BIND_NOTIFICATION_LISTENER_SERVICENo es un permiso que la app pida, sino el que exige a Android para que solo el sistema pueda arrancar su servicio de notificaciones. El acceso de verdad se lo das tú a mano, en los ajustes, y puedes retirarlo cuando quieras.
Hay aplicaciones en Google Play que listan los permisos de todo lo que tienes instalado,
leyéndolos del mismo registro del sistema, y ahí sí salen los permisos normales. Funcionan,
pero conviene ser consciente de la ironía: para no fiarte de una app estás instalando
otra. Si la comprobación te importa de verdad, hazla con adb.
Xtracto lee los avisos de tu banco y apunta tus gastos, y toda su promesa de privacidad se apoya en esto. Cuando esté publicada, lo que tienes que ver es exactamente esto:
$ aapt2 dump permissions xtracto.apk
package: app.xtracto
uses-permission: name='app.xtracto.DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION'
Ese único permiso es el interno de AndroidX. No hay INTERNET: no
es una política, es que el sistema no la dejaría. Si algún día aparece en esa lista, todo lo
que dice nuestra portada sería mentira y podrás demostrarlo en un minuto.