0 votos

¿Por qué no se aprovechan más estos "hacks" de la interfaz de usuario?

De lo que estoy hablando:

  • Facebook publica una aplicación independiente llamada Messenger en la Play Store. Es una aplicación de chat, para interactuar con otros usuarios de Facebook. Implementa algo llamado "cabezas de chat" que son estas burbujas redondas que se sitúan encima de todo lo demás en la interfaz de usuario de Android (excepto la barra de estado) que permiten abrir una interfaz de chat Always On Top.

  • Facebook también publica su aplicación homónima, que implementó notificaciones intrusivas para sí misma, que aparecen en la parte superior de la pantalla y contienen su contenido relevante.

    Se presentan en la parte superior de la barra de estado del sistema impidiendo el acceso a la misma cuando la aplicación no está activa

Estos son ejemplos benignos, pero se entrometen en el terreno de los usuarios y parecen maliciosos por la forma en que se manifiestan: aparecen sin previo aviso.

Facebook dio a sus aplicaciones formas ocultas de desactivar estas cosas.

Lo que me sorprende es que no haya más aplicaciones que exploten estos "agujeros" de seguridad de la interfaz de usuario.

Si me dedicara a infectar los teléfonos de la gente, aprovecharía esto y haría el malware más exasperantemente molesto porque es como si se le diera a un programa el control de toda la interfaz sin escapatoria.

Imagina las cosas que podría hacer un trozo de código malicioso si impidiera literalmente al usuario hacer nada al respecto. No pueden usar la interfaz, por lo que no pueden matar la aplicación, no pueden apagar el teléfono y en muchos teléfonos no se puede quitar la batería, etc.

¿Hay alguna razón obvia por la que este tipo de cosas no se exploten más? No encuentro mucho al respecto.

4voto

Firelord Puntos 161

Esa burbuja de chat está ahí porque has concedido a Messenger el permiso de "dibujar sobre otras aplicaciones". En términos sencillos, llámalo superposición. El nombre calificado del permiso es android.permission.SYSTEM_ALERT_WINDOW .

Permite que una aplicación cree Windows utilizando el tipo TYPE_SYSTEM_ALERT , que se muestra encima de todas las demás aplicaciones. Muy pocas aplicaciones deberían utilizar este permiso Estas ventanas están destinadas a la interacción del sistema con el usuario.

(El énfasis es mío)

No creo que las burbujas de chat de Messenger, en ningún caso, estén pensadas para la interacción a nivel de sistema con su usuario, por lo que se puede suponer que los desarrolladores de esa aplicación y de cualquier otra aplicación de este tipo optaron por abusar de la función del sistema para sus propios intereses.

Además, definitivamente no eres la primera persona que piensa en explotar la función de superposición de Android.

ArsTechnica: Un nuevo ransomware para Android bloquea a las víctimas cambiando el PIN de la pantalla de bloqueo

Bautizada como Android/Lockerpin.A, la aplicación ... superpone una falsa ventana de instalación de parches sobre un aviso de activación. Cuando los objetivos hacen clic en el botón de continuar, se conceder realmente a la aplicación maliciosa derechos elevados que le permitan realizar cambios en la configuración de Android . A partir de ahí, Lockerpin establece o restablece el PIN que desbloquea la pantalla de bloqueo, lo que obliga a los usuarios a realizar un restablecimiento de fábrica para recuperar el control del dispositivo.

...

Una vez pulsado el botón de continuar, la aplicación adquirirá derechos de administrador [se convierte en administrador de dispositivos]. A partir de ahí, cambiará el PIN y seguirá superponiendo periódicamente una ventana falsa en un intento de mantener los privilegios elevados. Es el primer ransomware de pantalla de bloqueo de Android conocido que fija el PIN de bloqueo de un teléfono. Como requiere que las víctimas que no pagan restablezcan sus teléfonos de fábrica, les hace perder todos sus datos.

(El énfasis es mío)

Para que lo sepas, Android entiende el daño potencial que las superposiciones pueden causar a un dispositivo, por lo tanto, cuando una superposición se dibuja activamente en la pantalla y el usuario intenta cargar lateralmente una aplicación, el botón de instalación simplemente no funciona. Ver ¿Por qué no puedo pulsar el botón Instalar cuando instalo aplicaciones de fuentes desconocidas?

Ojalá Android extienda esta función a la activación/desactivación de los administradores de dispositivos, sería muy bonito por su parte.

En caso de que quieras saber qué otra aplicación tiene el mismo permiso, puedes usar mi respuesta en ¿Determinar qué aplicación está dibujando encima de otras aplicaciones?


Las notificaciones que mencionas, por intrusivas que sean, se llaman notificaciones Heads-up. Hasta Android 5.1, los usuarios no tenían una forma oficial de deshacerse de ellas sin perder todas las notificaciones de una aplicación.

Diseño de Android: Notificación de la cabeza

Cuando llega una notificación de alta prioridad..., se presenta a los usuarios durante un breve período de tiempo con un diseño ampliado que expone las posibles acciones.

Después de este período de tiempo, la notificación se retira a la sombra de notificación. Si la prioridad de una notificación está marcada como Alta, Máxima o Pantalla Completa, recibe una notificación en la parte superior.

(El énfasis es mío)

Como habrás adivinado, las notificaciones Heads-up no son el tipo de notificación por defecto que un sistema debería mostrar a un usuario y un desarrollador tiene que optar explícitamente por ello en el código de la aplicación. Lo que ocurre es que algunos desarrolladores opinan que las cosas que hace su aplicación son de máxima prioridad en la vida del usuario, por no hablar del sistema, por lo que a menudo optan por mostrar todas las notificaciones como notificaciones Heads-up.

Dicho esto, se introdujeron las notificaciones de cabeza sólo en Lollipop mientras que su dispositivo ejecuta Android KitKat, así que definitivamente, como Andrew T. lo puso en los comentarios, debe ser el código nativo de Facebook el que está creando y mostrando esas notificaciones pseudo-Lollipop en la parte superior y sobre una ventana.

La razón por la que no se puede interactuar con la barra del sistema cuando esa notificación pseudo-Lollipop está activa, es muy probablemente el uso de superposiciones de bloqueo para mostrar una vista que es percibida como una notificación por el usuario. Aaron's responder lo ha explicado con una buena aplicación de ejemplo que funciona.

Busqué en la web entre el rango de octubre de 2013 a octubre de 2014 (la edad de desarrollo de Android 4.4.x) y llegué a saber que había aplicaciones disponibles en Play Store destinadas principalmente a crear esas notificaciones pseudo-Lollipop. Una de estas aplicaciones es Floatificaciones y el otro que encontré fue Metro Notifications Free . Ambos utilizan la misma superposición de bloqueo para crear esas notificaciones pseudo-Lollipop.

Me sorprende que no hayas encontrado brinda bastante molesto.

3voto

Aaron Gillion Puntos 3

Facebook hace mucho más que inflar tu ventana de visualización. ¿Has visto todos los permisos que requiere?

Los métodos que utiliza Facebook para añadir burbujas de chat se denominan superposiciones de bloqueo. Son una característica integrada de Android. Hay una aplicación llamada Tasker que visualiza bien estas características. Tasker es una app de automatización, pero también puedes crear actividades llamadas "Escenas" sobre las que puedes diseñar UIs. Tasker te permite visualizar estas escenas como:

  • Actividades de la ventana completa,
  • Diálogos de Bloqueo (con la opción de Fondo Atenuado, que no permiten al usuario haga clic detrás de la ventana),
  • Superposiciones de bloqueo (que permiten al usuario seguir utilizando la aplicación en primer plano, como las burbujas de chat),
  • y las superposiciones no bloqueantes (no se pueden enfocar ni tocar, las pulsaciones atraviesan la superposición y llegan a lo que está debajo de ella).

Las superposiciones sin bloqueo parecen inútiles, pero así es como se crean las aplicaciones de "modo nocturno" y "limitador de brillo". Es sólo una superposición semitransparente en la pantalla.

Por lo tanto, no es algo súper malo que las aplicaciones puedan utilizar el espacio de tu ventana, si no se abusa de ellas, pueden aportar funcionalidades. En el caso de Facebook Messenger, todas las pequeñas funciones tienen un coste, el de la privacidad (permisos de la aplicación).

Espero haber ayudado a explicar un poco mejor estos "hacks de IU", y que no siempre son malos.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X