Sunday, January 31, 2016

adb

If you don't know what "adb" is just quit reading and go back to Facebook.

The first Nexus 5 I bought was a refurbished 16GB model. I've been using a 32GB 2013 Moto X. When I bought the Nexus 5 I didn't see a 32GB model.

Even before I received the 16GB Nexus 5 I saw a 32GB model for $20 more.

I ordered the 32GB Nexus 5 and thought I would return the 16GB one.

When the 16GB arrived it was still in a sealed Google box. It clearly was brand new.

I started playing with it. That story is here.

The 16GB Nexus 5 was too nice to just send back so I gave it away.

Then the 32GB Nexus 5 arrived. I started down the road to updating it.

But...

The OTA updates came to a screeching halt after 5.1.1 LMY48B. None of my normal activities (e.g. power cycle, factory data reset, cache wipe, etc.) would get it to update further.

I posted my dilemma on reddit and began a very helpful dialog with raxiel.

raxiel walked me through sideloading the OTA updates with adb. I had trouble getting Windows to recognize the driver from the SDK folder usb_driver and had to create a new android_winusb.inf file using the information in this post. Even then I had to force Windows Device Manager to use that driver.

I sideloaded a couple of OTA versions but the Nexus 5 still wouldn't automatically apply the subsequent OTAs.

I began a non-productive dialog with the retailer about returning it as defective. This encouraged me to look for an alternative.

raxiel was hanging in there with me. He suggested that I just flash the factory image for 6.0.1 MMB29K. While that would have gotten the Nexus 5 current I wouldn't have known whether subsequent OTAs would apply.

So I flashed the factory image for 6.0.0 MRA58K.

The complete list of available factory images and flashing instructions is here.

That page makes it sound simple to flash factory images. The reality is that it's tricky. For example, if you haven't already unlocked the device's bootloader, when you do that it does a factory data reset on the phone and you have to go back and re-enable Developer Mode and then USB Debugging. Then you have to confirm the RSA signatures again.

In the end I found this YouTube video that walked though the process.


One slight twist that I made is that when I extracted the factory image from the download I copied the extracted folder to my desktop. Then since fastboot needs to be available for the flash-all script I copied (didn't move) the contents of the platform-tools subfolder installed with the SDK install into the new folder on my desktop. Read that twice before you do it.

Understandably this video edits out the elapsed time. And the adb output on the video shows a time of 122 seconds. I don't know what that time represents. Mine was 144 seconds. More importantly the total elapsed time was almost 10 minutes with long periods that appeared to have no activity.

When I completed the flash I re-enabled Developer Mode and then USB Debugging so I could relock the bootloader. And then a factory data reset to disable Developer Mode.

The good news is that as soon as I connected to Wi-Fi the Nexus 5 began an OTA of 6.0.0 MRA58N.

Whew!

No comments: