Google ha reparado recientemente un pequeño problema en Android. El bug hacía que algunas aplicaciones funcionaran mal y bloquearan la posibilidad de realizar llamadas al 911. Si, el número para las emergencias.
Uno de los primeros datos sobre este problema llegó a principios de diciembre. Un usuario contó en un subreddit dedicado a GooglePixel que al intentar llamar a emergencias el subsistema experimentó un colapso. Lo que resultó inconveniente porque su abuela parecía estar sufriendo un ataque cardíaco. Afortunadamente un teléfono de línea pudo ser empleado como reemplazo a tiempo.
El usuario intentó comunicarse al 911 de forma posterior y obtuvo el mismo resultado.
Reparaciones
Google se comunicó con el usuario e inició una investigación. La compañía señaló que el problema ocurre en algunos dispositivos que tienen instalada la aplicación Teams de Microsoft. Una interacción no deseada entre este programa y Android causa el colapso.
Microsoft y Google trabajaron para resolver la situación. Como consecuencia Microsoft preparó rápidamente un parche para su aplicación. Google se tomó algo más de tiempo, el parche llegó este miércoles.
El problema
Google no ha dado muchos detalles sobre el bug, pero la comunidad Android ha desentrañado lo que ocurría. Al parecer el primer elemento es un defecto en Teams que hacía que la app produjera una nueva cuenta de teléfono para el sistema cada vez que se iniciaba. De esta manera un mismo dispositivo podía terminar con varias cuentas para el programa.
Al realizar un llamado de emergencia Android realiza un complejo proceso para decidir cual cuenta está llamando.
En una última instancia, cuando una aplicación produce varias cuentas, se comparan los identificadores hashcode. La operación realizada para esta comparación estaba lejos de ser la mejor, dado que podía producir valores inferiores y superiores al rango permitido, produciendo entonces el colapso.
Este método de elección de cuenta solo se utilizaba para los números de emergencia.