Android M Empieza Bloqueos de seguridad en Android flotante, requiere que los usuarios de conceder permiso especial para dibujar en Otras aplicaciones
Artículo Contenido
Aplicaciones flotantes se han convertido en emblema de la flexibilidad y la gama única de Android. Ningún otro sistema operativo móvil permite que las aplicaciones no son del sistema para interactuar directamente con los usuarios y superar a la pantalla, mientras que otra aplicación se supone que está en el primer plano. Esta capacidad permite al usuario una experiencia potente y personalizable, pero también puede convertirse rápidamente en un problema si una aplicación está mal implementada o sus abusos de desarrolladores de este privilegio con fines maliciosos.
Android 6.0 Marshmallow está estableciendo nuevas reglas para dibujar en la pantalla. A partir de la Developer Preview 3, aplicaciones focalización API 23 (o superior) tendrán que pedir a los usuarios de conceder permiso para que ellos se basan en la parte superior de otras aplicaciones. Esto no se hará a través de la nueva un sistema de permiso de estilo a la carta con amigables diálogos emergentes, sino con un cambio de contexto más desalentador para una lista de alterna como que estamos acostumbrados a visitar después de instalar un nuevo teclado de software.
Fondo
El permiso sistema en cuestión se llama android.permission.SYSTEM_ALERT_WINDOW y ha estado presente desde Nivel API 1. La documentación de desarrollo es bastante breve, y lo describió simplemente como una manera de abrir una ventana en la parte superior de otras aplicaciones y los desarrolladores de advertencia de que es única destinados a las actividades a nivel de sistema.
Permite que una aplicación para abrir ventanas utilizando el tipo
TYPE_SYSTEM_ALERT
, se muestra en la parte superior de todas las demás aplicaciones. Muy pocas aplicaciones deben utilizar este permiso- estas ventanas están destinados para la interacción a nivel de sistema con el usuario.
Facebook Messenger debutó "Jefes de Chat" Hace poco más de dos años, dando a los usuarios un objetivo del grifo perpetuamente disponible en sus pantallas para ver rápidamente y responder a los mensajes. Mientras Mensajero era lejos desde la primera aplicación para hacer uso de una interfaz de usuario flotante, que puede ser acreditado con la popularización de la función y la interfaz burbuja flotante ya familiar. Desde entonces, un buen número de desarrolladores notables han añadido o bien elementos flotantes (por ejemplo, LastPass y MusiXmatch) O aplicaciones enteras construido alrededor de la funcionalidad (por ejemplo, Enlace Burbuja).
¿Por qué cambiar algo?
Hasta el momento, Google no ha lanzado ninguna declaración oficial con respecto a este cambio. De hecho, este detalle particular, quedó fuera de la vista general de la API de Vista preliminar 3. Es probable que el equipo de Android no considera que esta lo suficientemente importante como para describir junto con todas las nuevas capacidades que figuran en esa página- pero extrañamente, también ha sido la izquierda de la página Cambios de comportamiento, donde es casi seguro que debió haber sido documentada. El único lugar con cualquier registro parece ser las diferencias de API de Android Informe, un conjunto un tanto difícil de manejar de páginas generadas automáticamente que la lista de modificaciones de un nivel de API a la siguiente. Realmente no estoy tratando de pintar un cuadro en el que Google está tratando de ocultar este cambio, pero no hay, obviamente, ningún esfuerzo para que los desarrolladores al tanto de la nueva conducta, tampoco.
Si bien no hay explicación oficial, las razones de bloqueo hacia abajo este permiso no son difíciles de adivinar. La capacidad de dibujar en la parte superior de otras aplicaciones es una propuesta profundamente arriesgado, sobre todo teniendo en cuenta que el sistema operativo Android no añade ninguna decoración para significar una aplicación de fondo es responsable del contenido de la pantalla.
Por ejemplo, un desarrollador malintencionado podría mostrar una pantalla de inicio de sesión clonado para una popular aplicación - digamos Facebook o Twitter - en un esfuerzo para robar credenciales.
Un detalle interesante ha surgido gracias a la Developer Preview control de incidencias. Un Googler respondió a una pregunta señalando que el SYSTEM_ALERT_WINDOW el permiso había sido "levantado por encima de peligroso." Permisos de Android están técnicamente calificados, ya sea como 'normal' o 'peligroso' como se describe por el niveles de protección. (Nota: 'firma' y 'signatureOrSystem' son también opciones, pero no son relevantes para esta discusión.) En raras ocasiones, ciertas capacidades han sido objeto de especial atención porque no tienen necesariamente a conceder el acceso muy alto riesgo de ser funcional. Algunos ejemplos son los métodos de entrada como teclados de software y administradores de dispositivos como Android Administrador de dispositivos, que tiene la capacidad de iniciar una restauración de fábrica. Basándose en la parte superior de otras aplicaciones ahora se ubicará en esta categoría de alto riesgo excepcional.
¿Qué significa esto para los usuarios?
Los usuarios podrán disfrutar de otro mensaje que pregunta por un permiso, pero éste no se ve o se siente como los nuevos cuadros de diálogo de permisos Android M. No hay manera de autorizar aplicaciones para dibujar en la pantalla, sin un cambio de contexto. Los desarrolladores tendrán que enviar sus usuarios a una pantalla especial en la aplicación de configuración con instrucciones específicas para que el permiso. Si esto suena familiar, es porque el mismo patrón se ha utilizado durante años cuando estamos estableciendo métodos de entrada, y más recientemente con Administradores de Accesibilidad y de dispositivo.
Los desarrolladores pueden enviar a los usuarios directamente a la pantalla correcta para cada aplicación. Sólo hay un cambio rápido contexto, una palanca, y luego regresar a la aplicación de llamada con el botón de retroceso. Es bastante fácil, pero no nos engañemos, este flujo está destinado a ser intimidante. Se espera que la gente se sienta nervioso cuando una aplicación les da las instrucciones y los envía a una parte desconocida del sistema, momento en el que se enfrentarán con un mensaje de advertencia que les recuerda, además, que esto podría no ser seguro. Para alguien que nunca ha hecho esto antes, se debe sentir un poco de miedo, como llevar el equipaje de un desconocido a través de la seguridad en un aeropuerto.
Izquierda: Notificación LastPass. Centrar: Lista de aplicaciones que utilizan la ventana de alerta del sistema. Correcto: Pantalla de confirmación.
Algunas aplicaciones principales que ya se están actualizando para apoyar este nuevo requisito. Crédito por primera izar la bandera en esta nueva política pertenece a Sebastiano Gottardo, un desarrollador musiXmatch que descubrió el problema mientras se trabaja en una actualización. Del mismo modo, LastPass se ha apresurado a añadir soporte para Android 6.0 Permisos, y ya ha publicado una actualización de la Play Store. Flujo LastPass 'implica simplemente la publicación de una notificación de la primera vez que se detecta un formulario de acceso, siempre y cuando en Fill-función está habilitada la App.
No todas las aplicaciones que se basan en la parte superior de la pantalla se piden a los usuarios pasar por este paso de inmediato. Aplicaciones que se dirigen a Nivel API 22 o por debajo se conceden automáticamente permiso, presumiblemente para mantener la compatibilidad. Sólo al dirigirse Nivel API 23 (Android M) serán los desarrolladores tienen que enviar a los usuarios a través de los pasos adicionales. Al menos, así es como funciona en Developer Preview 3 - Google podría cambiar plausiblemente este comportamiento para la versión final, pero no apostaría por ello. Independientemente del nivel de API, los usuarios pueden revocar este permiso desde cualquier aplicación visitando: Ajustes -> Aplicaciones -> Avanzado (el botón de marcha) -> Dibujar sobre otras aplicaciones.
Para desarrolladores
Si usted está trabajando en una aplicación que hace uso de la SYSTEM_ALERT_WINDOW permiso, hay algunas cosas que usted probablemente querrá saber. El SDK de Android 6.0 introduce un par de cosas a la API que hacen de este nuevo proceso relativamente indoloro de implementar.
Para empezar, una llamada a Settings.canDrawOverlays () informa de vuelta si su aplicación se ha concedido el permiso para dibujar en la pantalla. Si el permiso no se ha concedido aún, crear una Intención y establecer su destino Settings.ACTION_MANAGE_OVERLAY_PERMISSION y agregar un URI en forma de "paquete:
Conclusión
A diferencia de los nuevos cuadros de diálogo de permisos, este sin duda debe incluir una interfaz de usuario personalizada para explicar por qué los usuarios están siendo enviados a otra pantalla y lo que deben hacer allí. Las medidas para apoyar este cambio no son complicados y no agregan mucho trabajo para los desarrolladores, pero el cambio de contexto es un obstáculo intencional. Los desarrolladores tienen que ganarse la confianza de los usuarios antes de pedir demasiados permisos, y éste puede ser sólo un paso demasiado lejos para algunos.
Android M pronto podría ganarse la reputación de una sobreabundancia de los cuadros de diálogo de confirmación, al menos eso es lo que se siente a nadie la creación de un nuevo dispositivo. Afortunadamente, sólo tenemos que concede cada permiso para una aplicación una vez, así que las cosas nunca van a tan malo como Windows Vista.
- Vía:
- Sebastiano Gottardo