Losing the cellular connection on your phone, even briefly, can be a potentially serious issue. It might come at the moment you need to call for emergency services, or when somebody is trying to call you. Today, we're going to talk about a pair of issues on the Nexus 4 that can send it into radio silence for as little as a few seconds, or as long as it takes for you to notice it.

The first issue is likely to have gone unnoticed by most users, unless they've set a PIN code on their SIM card. The symptoms are simple: from time to time, purely at random, the connection will drop for several seconds, then come back online. The reason a PIN code makes the issue so much more visible is that the phone refuses to reconnect until the code is re-entered after a lost connection, which the user is prompted to do when the screen is unlocked. Unfortunately, this can lead to the phone sitting without service for hours if its owner isn't regularly using it.

Only the Nexus 4 is affected, and only when it is running Android 4.3. Otherwise, it can happen on a phone regardless of mods, root, or custom recovery. Some people have also complained about rapidly draining batteries and increased temperature. However, one interesting theme emerged amongst the complaints; almost all of them came from European countries, particularly the Netherlands.

It turns out that the problem is actually a combination of two bugs, one in the Android framework and one in the radio software, each ultimately causing the radio to crash and restart. The bug in AOSP occurs when the Nexus 4 connects to a carrier network that supports MVNOs (Mobile Virtual Network Operator). A quick fix for this crash has already been posted and is scheduled for a future release of Android, but Robert Greenwalt also points out that more changes are planned to fix some related issues. No details were given about what was wrong with the radio software, but the bug reports have been submitted to Qualcomm - and judging by the wording, it sounds like a fix is coming.

If you are suffering from this bug, there are some workarounds available today. To begin with, many people have been able to prevent this issue by setting the radio to 'WCDMA only' instead of the default 'WCDMA preferred'. Keep in mind, this setting will only last until you restart your phone, at which time it resets back to default. Here's how:

  1. Open your phone dialer
  2. Enter: *#*#4636#*#*
  3. Tap on 'Phone information'
  4. Find the 'Set preferred network type' dropdown
  5. Change the selection to WCDMA only

As an alternative, if you are comfortable with flashing firmware to your phone, the radio used in the Mako factory image for Android 4.2.2 does not contain this bug. If your Nexus 4 is already OEM unlocked, and you've already got the latest Android SDK installed, here's what you can do:

  1. Download and extract the 4.2.2 factory image from here
  2. In a terminal/command line window, change to the directory of the extracted image
  3. Attach your Nexus 4 to the computer with a USB cable (check it with 'fastboot devices')
  4. Enter: 'fastboot flash radio radio-mako-m9615a-cefwmazm-2.0.1700.48.img'
  5. Wait until the radio is flashed, then enter 'fastboot reboot'

Earlier, I mentioned a second issue which poses a similar problem for the Nexus 4. In this one, the phone loses connection with the cellular tower at the end of every single call, but it doesn't reconnect. This seems to be a very uncommon issue, as there haven't been very many complaints in the issue tracker, but there aren't really any details to make an educated guess about the cause. The good news is that Robert Greenwalt has also marked this issue as fixed in a future release. Judging by the mention that bug reports have been sent to the radio vendor, and at least one person has fixed the issue by returning to the 4.2.2 radio, this appears to be another oversight in the radio packaged with the 4.3 update.

Both of these issues were first reported just a few days after Android 4.3 rolled out, and naturally you might wonder if the recent JWR66Y update might include a fix. I'm sad to report that it does not; the radio packaged with the recently refreshed factory image is identical to the one found in JWR66V. Both issues were only marked as fixed on August 19th, the day before JWR66Y began to appear in the wild, suggesting the updated code changes may have come too late to be included. This gives us another thing to look forward to with either Android 4.3.1 or possibly another incremental OTA like the one we just had.

[AOSP Issue Tracker #58317, #58495]