Nexus devices are usually known for their support from Google, as well the latest Nexus devices are the first to get the latest Android updates from Google. Well, mostly. We, the users of Nexus devices, want the updates as soon as they are released, but Google refuses to do that. Google only pushes the update to 1% of the devices which “check-in” to the Google servers, and everybody else is denied until the next batch even if you go on smashing the “Check for updates” button. This is because Google prefers staged updates, which is why only 1% of the users see update in the first 24 hours. Dan Morrill, Android Engineer explain it as such:
What the percentages mean is that when your device checks in, it has a 1% chance (for example) of being offered the OTA. If it doesn’t (randomly) get an offer, it will never get an offer until the next batch.
IOW, once your device checks in and gets turned down, that’s it until the next batch. Mashing on the “check for updates” button just causes your device to check in again, and get automatically turned down again.
People even found a way to make this process faster sometimes, by clearing data for Google Service Framework. Morrill asks users not to do so as Google’s servers essentially recognize this as a factory reset which might render many apps useless, specifically the apps using Google Cloud Messenging (GCM).
There are many downstream effects of this, but a big one is that this invalidates the tokens used by any app that uses GCM (which is nearly all the Google apps, and a ton of third-party apps.)
How apps react to GCM IDs changing varies by app. With Play Store you have to log out and log back in, I think Gmail usually handles it transparently eventually but won’t get new mail notifications for a while, etc. Some apps you may have to clear data on to recover. All apps will simply stop getting GCM push-messages, until they get a new GCM ID.
So, easier way is to just get the OTA ZIP and push it to your device manually. An average user don’t have an idea on how to do it, but here’s how. The process is simple and does not require a rooted device.
What all will I need?
You’ll just need some basic things to get up a running.
- Android device with update prompt. You do not need to be rooted to do this.
- You do need adb running on your computer with the Android SDK.
- You need to have USB Debugging enabled on your phone. (Check Settings>Developer options)
How to capture OTA for Nexus devices
- When you get prompted to for the update on your Nexus device, plug your phone into a computer.
- From that computer, open a command prompt and locate the ADB directory.
- From the command prompt, type “adb logcat” and hit enter. (On Mac use “./adb logcat”)
- The command prompt will then begin to show you a hell lot of information from your phone.
- Now, tap the “Download” button on the update from your phone.
- Once the download starts, you will be able to find the URL of the file that is downloading in the logcat.
- Check for something like this on the command window:
You can find this by either copying the LogCat output to a text editor, or spot a URL starting with “android.clients.google.com”.
- Once you have the URL, you can either send it to your friends to update, or just let us know via the contact form.
This process is very simple and can be done without root, so go ahead!