Google corrige el error de pesadilla de Android que impedía al usuario llamar a los servicios de emergencia

Google corrige el error de pesadilla de Android que impedía al usuario llamar a los servicios de emergencia

El parche de seguridad de Android de enero ya se lanzó y corrige uno de los errores de Android más molestos que pueden ocurrir en mucho tiempo: ciertas aplicaciones pueden evitar que se comunique con el 911 u otros números de emergencia en todo el mundo.

A principios de diciembre, apareció una historia desgarradora en un subreddit de GooglePixel de un usuario cuyo Pixel 3 se bloqueó cuando más lo necesitaba: mientras llamaba al 911 de emergencia para su abuela, que «parecía haber tenido un derrame cerebral». Todo el subsistema telefónico colapsó. inmediatamente después de llamar a los servicios de emergencia, y el usuario KitchenPicture5849 dijo que no pudo recibir una llamada para conectarse o colgar para repetir la llamada. Afortunadamente, un teléfono fijo cercano estaba disponible después de que su teléfono Android se estropeara y se contactara a los servicios de emergencia.

Después de que terminó la crisis, el usuario hizo otra llamada al número de emergencia desde su teléfono inteligente y Android volvió a fallar, lo que indica que no fue un error de una sola vez. Verificar su factura telefónica también reveló que KitchenPicture5849 nunca se conectó al servicio 911. Dicen que también recibieron varios otros mensajes privados de usuarios que dijeron que estaban experimentando el mismo error.

Google contactó al usuario y respondió públicamente al mensaje el 8 de diciembre:

Según nuestra investigación, pudimos reproducir el problema en un conjunto limitado de circunstancias. Creemos que el problema solo está presente en una pequeña cantidad de dispositivos con la aplicación Microsoft Teams instalada cuando el usuario no ha iniciado sesión, y actualmente tenemos conocimiento de que solo un usuario informó que se produjo este error. Determinamos que el problema se debió a una interacción no deseada entre la aplicación Microsoft Teams y el sistema operativo Android subyacente. Microsoft está trabajando en estrecha colaboración con Google para resolver esta interacción no deseada.

Google dijo que Microsoft lanzará una actualización de la aplicación lo antes posible y que los usuarios deben buscar actualizaciones en Play Store. La compañía también mencionó que el parche a nivel del sistema operativo se lanzará un mes después, a principios de enero (eso es hoy). En ese momento, Google no proporcionó más comentarios sobre el asunto.

Por qué las aplicaciones pueden romper el servicio 911

Demora. ¿Microsoft Teams rompió el servicio 911? ¿Pueden las aplicaciones aleatorias de Android interrumpir los servicios de emergencia? ¿Cómo? ¿Por qué las aplicaciones de terceros estarían a miles de metros de distancia de una función tan importante? ¿Alguna otra aplicación interrumpe el servicio 911 o solo Microsoft Teams? Si bien Teams se arregló, ¿estuvo bien dejar que los usuarios de Android se quedaran con este error a nivel del sistema operativo durante un mes, especialmente cuando no sabemos si otras aplicaciones lo están haciendo? Android es Android, por lo que muchos teléfonos nunca se repararán de todos modos. ¿Cómo pueden los usuarios saber que los servicios de emergencia estarán funcionando? Excepto que Google no dio ninguna respuesta más que esperar un mes para solucionarlo.

Afortunadamente, algunas personas muy inteligentes en la comunidad de Android pudieron brindar respuestas que Google no compartió. Mishaal Rahman, editor técnico sénior de Esper, escribió una publicación increíble en Medium que detalla cómo funciona el error y por qué ocurre. Las aplicaciones de Android con una función de llamada telefónica pueden registrar una «Cuenta de teléfono» con el sistema, lo que indica que tienen la capacidad de realizar llamadas. Hay varias aplicaciones que se pueden instalar con PhoneAccount, incluida una llamada «CAPABILITY_PLACE_EMERGENCY_CALLS». Cuando llega el momento de llamar al 911, Android revisa la lista de cuentas telefónicas registradas y selecciona una. Hasta ahora, todo bien.

Uno de los varios errores identificados en la publicación de Rahman es que Microsoft Teams registrará una PhoneAccount adicional en el sistema cada vez que se inicie Teams, siempre que no haya iniciado sesión. Tenga en cuenta que no es raro instalar Microsoft Teams y luego nunca usarlo: un La queja común sobre la aplicación Android Teams es que a menudo cierra automáticamente la sesión de los usuarios.

Si ha cerrado la sesión, ejecutar Microsoft Teams 10 veces ensuciará su teléfono con 10 PhoneAccounts duplicadas de Teams. Los equipos no deberían estar haciendo esto, y la actualización de Microsoft impidió que los equipos lo hicieran, pero muchas cuentas telefónicas duplicadas tampoco deberían ser suficientes para poner de rodillas al sistema telefónico Android.

Siguiente error: al elegir una cuenta de teléfono para una llamada de emergencia, Android pasa por un complejo proceso de clasificación para determinar qué cuenta usar. El paso final en este proceso de clasificación, la resolución de conflictos, es la clasificación de código hash. La comparación de código hash simplemente resta un código hash de otro.

Pero al igual que ese error estúpido de Microsoft Exchange 2000 que ocurrió el otro día, esto podría conducir a un desbordamiento o subdesbordamiento de enteros, y ahora el subsistema del teléfono colapsará. El código de Google tiene errores, pero dado que esta es la última forma de resolver los problemas de clasificación después de probar cosas más obvias como el nombre del paquete, solo se debe llamar en una instancia muy específica de la aplicación que genera PhoneAccounts duplicadas. ¡Así que gracias, Microsoft!

La solución de Google para este error está aquí , titulada “Corregir el desbordamiento/subdesbordamiento de enteros causado por la clasificación de una cuenta de teléfono duplicada durante una llamada de emergencia. En lugar de restar un código hash de otro y potencialmente trabajar con un número muy grande o muy pequeño que bloquee el sistema, Google ahora maneja los dos números a través de la función Java «Integer.compare». Esto devuelve solo -1, 0 o 1, lo que indica un resultado menor, idéntico o mayor de la comparación.

Si eres como yo al principio y te preguntas por qué Android ordena las cuentas telefónicas y no solo usa la cuenta predeterminada en la SIM, haré una suposición loca y diré que fue un intento de hacer que el servicio 911 funcionara de todos modos. Cual. En caso de que la cuenta principal no funcione, Android necesita una lista de todas las posibles cuentas telefónicas que puede probar y quiere hacerlo automáticamente para conectarse al 911 por cualquier medio necesario. Este sistema de clasificación solo existe para comunicarse con los servicios de emergencia, por lo que las llamadas telefónicas regulares aún funcionan para los usuarios afectados.

El tercer error en este lío es que Microsoft Teams ni siquiera se registra como un controlador de llamadas de emergencia. Los equipos crearon un millón de cuentas telefónicas y no usaron el indicador CAPABILITY_PLACE_EMERGENCY_CALLS, pero aun así rompieron el 911. El proceso de clasificación de Google comienza solicitando todas las cuentas telefónicas, mientras que el mejor primer paso sería comenzar con todas las cuentas telefónicas que admitan emergencias. llamadas

Google está tomando una decisión aún más drástica antes de este último error y elimina todas las cuentas telefónicas «autoadministradas» del procedimiento del servicio de emergencia 911. Las cuentas de teléfonos Android «autoadministradas», como Microsoft Teams, obtienen un acceso más directo a la pila de telefonía de Android y pueden usar sus propias funciones. El sistema de llamadas de emergencia de Android ahora solo considerará proveedores de telefonía más simples que se conectan a la aplicación de teléfono predeterminada, como la cuenta de su operador.

Es probable que todas estas otras aplicaciones de VoIP todavía se puedan usar para autollamar al 911 (en muchos países, la función 911 es requerida por ley). Pero si abre el marcador predeterminado y presiona 911, Android solo elegirá entre las cuentas telefónicas estándar administradas por el sistema.

Quién se arregla y cómo puede comprobar si hay un error en el servicio 911

Rahman dice que el error de Google para esto es CVE-2021-39659, que el boletín de seguridad mensual clasifica como una vulnerabilidad de denegación de servicio de alta gravedad con parches para dispositivos que ejecutan Android 10, 11 y 12. En la base de código de Android, Google es De hecho, esta corrección se retroalimenta por completo a Android 8.0, que técnicamente ya no es compatible. Esto es principalmente puramente teórico, ya que los proveedores cero en realidad no envían actualizaciones de seguridad a dispositivos tan antiguos. Pero el código está ahí si alguien lo necesita.

La pila de telefonía de Android (¿todavía?) no es un módulo de Project Mainline fácilmente actualizable, por lo que la única forma de obtener una solución es con la actualización mensual de seguridad de Android de enero de 2022. Samsung debería actualizar todos los teléfonos de esta lista a partir de esta semana, mientras que Google publica correcciones para Pixel 3a, 4, 4a, 5 y 5a. Actualización: también se espera una actualización de llamada de emergencia para el Pixel 3 fuera de servicio.

La actualización aún no llega para Pixel 6. El buque insignia más nuevo de Google se encuentra actualmente en una crisis de actualización. La actualización de diciembre de 2021 se canceló debido a problemas de conectividad no móvil (las llamadas telefónicas no funcionan). Mientras Google se esfuerza por arreglar las cosas, la próxima actualización de Pixel 6 con esta corrección del 911 debería ser «a fines de enero». Mientras tanto, está bien estar en el parche de noviembre. Ambos gráficos de Google: «principios de enero» y «finales de enero» parecen increíblemente lentos debido a un error que puede llevar a la muerte literal de los usuarios.

Haré otra suposición loca y diré que el Pixel 6 es un teléfono extraño porque es un SoC y un módem completamente diferentes (ambos de la división Exynos de Samsung y todos los demás Pixel usan Qualcomm). La creación de una temporada de compras navideñas no le ha dado a Google margen de maniobra en caso de retrasos en el lanzamiento. Eso no lo hace menos decepcionante para un teléfono con muchas ventajas por primera vez, pero con suerte es un problema temporal.

Me sorprende que esto sea solo un error «alto» (en lugar de «crítico») y que tarde uno o dos meses en implementarse. Retrasar una ambulancia puede ser fatal, por lo que sería bueno que todo llegara más rápido, no la forma en que Google decide resolver este problema.

Hasta ahora, solo hemos escuchado que los equipos de Microsoft desencadenan este error de cuentas telefónicas duplicadas, pero no se sabe si alguna otra aplicación está cometiendo un error similar. Si ve una aplicación en esta lista que genera muchas cuentas duplicadas, es probable que le impida conectarse a los servicios de emergencia. Recomiendo desinstalar la aplicación, contactar al desarrollador e informar a otros en Twitter o donde sea.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *