Earlier this week, Google confirmed it was aware of a nasty Android bug that, when mixed with Microsoft’s Teams app, could break emergency calls.
Since then, a partial fix has been rolled out via an update to Microsoft Teams. However, a larger Android update is still expected in January to resolve OS-side of this particular puzzle.
In case you missed it, the explanation shared by Google said that an “unintended interaction” between Teams and Android was behind the bug. Specifically, trying to place an emergency call would freeze the smartphone if the Microsoft Teams app was installed but the user hadn’t logged in.
Google didn’t provide much more information about the cause, beyond noting that it believed the issue was “only present on a small number of devices” with Teams installed. However, Mishaal Rahman, former editor-in-chief at XDA Developers, wrote a detailed blog post analyzing the bug and what caused it.
Rahman’s post is well worth the read if you care about these types of things, although it’s pretty technical. Still, it’s fascinating to learn more about how complex something as seemingly basic as a phone call is.
Two small bugs, one big problem
In short, Rahman’s analysis identified two main issues, one with Teams and the other with Android. The Teams app creates a ‘PhoneAccount’ instance whenever it’s cold-launched when the user isn’t signed in. Apps with calling capabilities create PhoneAccount instances so that Android has a list of apps that can handle phone calls. An important part of these instances is that they list other details about what the app can handle — for example, whether it’s capable of emergency calls.
The second part of the issue revolves around what Android does when it checks the PhoneAccounts ahead of placing an emergency call. A very simplified explanation of this is that the check can create an error if there are too many PhoneAccount instances (such as all the instances Team creates with its bug).
Microsoft’s new Teams update resolves the PhoneAccount creation part of the problem. According to Rahman, Teams will now clear PhoneAccounts it created at first launch, which should prevent it from amassing multiple PhoneAccount instances over time. However, that still leaves the Android bug open — it requires very specific circumstances to trigger, so most users probably won’t need to worry about it. Regardless, it’s a problem that needs to be addressed, and Rahman spotted at least two potential fixes submitted to the Android Open Source Project (AOSP). A patch sporting one of the fixes should ship in January as part of the monthly Android security update.
For now, if you have Teams installed on your Android phone, you should make sure to update it to the latest version (1416/184.108.40.2061194504) right away — you can download the update for free from the Play Store.
Source: 9to5Google, Mishaal Rahman