Some Weeks…

Android_BellyUp

…It ain’t easy being Geek.

I’ve had my Motorola Droid Razr Maxx cell phone for nearly a year and I love it. However, it shipped with an outdated version of the Android OS named “Gingerbread” when the next version, called “Ice Cream Sandwich” was already being rolled out. Verizon sent out the ICS upgrade within a couple of months; but by then the NEXT version, known as “Jelly Bean,” was being rolled out. I’d been waiting anxiously for JB for months when Verizon announced they were releasing JB a few days before Christmas last year. After a short time they stopped because the update was bricking their customer’s phones. (Oops.) Fortunately I didn’t get that upgrade. I settled back into waiting mode again and twiddled my thumbs.

Several weeks ago I heard that Verizon was rolling out JB again, this time for real. I checked for available updates on the phone and was told it was ready to download! I allowed the download (at about 40 minutes) and then attempted the upgrade. Everything looked good until I saw the picture of an Andy the Android on his back, chestplate open, with a red triangle with an exclamation point beside the hole in his chest. The phone rebooted and gave me a message that the update had failed. No reason given, just failure.

I went online and discovered that I wasn’t the only one. The main failure reason being posited was that the end user had disabled some apps on their phone. I’d rooted my phone after getting ICS and disabled a number of Verizon bloatware apps like their navigation service and music apps, so I re-enabled them and attempted the update again, still unsuccessfully. I was getting frustrated.

(Before I continue, a few words on rooting are called for. Rooting a phone gives the user access to areas of the phone’s operating system that they normally can’t get to. This allows a finer degree of control over how the phone operates. It also allows the use of utilities like “Titanium Backup” which allows me to make back copies of my phone’s data and apps. I also installed a WONDERFUL app called AdAway, which allows the blocking of streaming ads, including those within other apps. TB also allowed me to disable apps and, in some cases, completely delete them. Rooting also allowed me to transfer custom ringtones into the same directory where the phone’s ringtones are kept, which allows all ringtones to show up in the same list. I highly recommend the practice if you’re savvy enough to do it.)

Next, I decided to try a “sideload” installation, wherein you download an app (or an OS upgrade) and force an install from the phone’s SD memory card. I found the official Verizon Jelly Bean update and downloaded it, then tried connecting my phone to my PC after loading the necessary Motorola USB drivers. That was an exercise in frustration as I had to try several different sets of drivers. The phone had to be placed into USB “MTP” connection mode, and the PC didn’t find the necessary drivers among those I’d downloaded. After several hours I finally got the correct driver and Windows was happy. Then I copied the file to the phone’s SD card and powered the phone off. Then while pressing and holding the phone’s power button as well as holding down the Volume Up/Down buttons I got a special boot menu. I navigated to “Recovery” mode, and then chose the proper file on the SD card. The upgrade progressed as before, except this time I got verbose feedback on what was happening. The upgrade failed again (of course), but this time I got a long message with the phrase “assert failed: apply_patch_check” saying that the upgrade program couldn’t find an app called “Music2.apk.”  Now I was getting somewhere.

I remembered that I’d been playing around when I’d loaded Titanium Backup and used an option to completely remove a few programs. That had obviously been a bad idea. Now I had two options: I could either find the appropriate .apk files on the web (because I knew I’d get a different missing app error after this one was re-installed) or I could perform a “factory reset” and wipe the phone back to out-of-the-box condition. Because I didn’t want to do the latter, I found and installed a program called “Android Commander” on my PC. That program would allow me to look at the system file areas on my phone and copy programs into the normally-inaccessible system areas from the PC. Next I found and downloaded the missing Music2.apk file, used the file selection windows in AC to find the file on the PC side, then chose the appropriate directory on the phone side and tried to perform the copy.

Android Commander told me I needed ROOT level access. What? I was already rooted, you stupid program! Indeed, TB said I was rooted. Android Commander didn’t believe I was, and it wouldn’t allow me to copy a damn thing to the phone. An investigation led me to a FAQ on AC’s site that explained there were two types of root access. The first type gave apps on the phone itself root access to the phone’s system areas. The other type, which I needed and didn’t have, allowed access to the phone’s system areas from a connected PC. To get that type of access, the FAQ explained, I’d have to download the phone’s boot image, decompile it, change a line in a configuration file, then re-compile the boot image and upload it back to the phone. While I have some ‘mad skillz’ this is not one of them at this point in my life and I did not have the time to learn. By then I had gone into the next phase in my frustration, one that a careful geek avoids at all cost if they want to be successful.

I was pissed. I just wanted to load the damn OS upgrade, and I was tired of being denied. I decided to do the factory wipe. At least I had the foresight to load the Verizon Backup Assistant to dump my contacts to the cloud, but didn’t give a thought to my pictures or any other data on the phone. I was syncing with Google so that should be taken care of, right? I knew that my apps would automatically download back to my phone from the Play store so I believed I was set. I booted the phone again using the Vulcan Nerve Pinch, then chose Recovery mode and the option to do a factory wipe. I clicked through the warnings and let the wipe proceed. After all was done and I was back with a working phone with ICS again, I decided to attempt the sideload upgrade again. You can probably guess what happened next.

The upgrade failed. Again. With the same missing app error. When I deleted the apps from the phone using TB, they were completely wiped from even the backup image. I was right back where I started. Why the hell was this program attempting a selective “upgrade” rather than a complete OS install? Then I realized it was probably to ensure that the customer’s data was retained.

Now I knew what I needed. I’d have to find some way of installing the OS, this time as a complete load regardless of what was on the phone. It took a little while but I eventually found what I needed. A user with the handle mattlgroff on droidrzr.com had written a program called “Matt’s Razr Utility” that would do just what I needed. Version 1.82 is for the Verizon Razr and Razr Maxx ICS version, but I wanted to go right to Jelly Bean so v1.83 was what I needed. I downloaded and installed the program, then followed the prompts and connected my phone when told to do so. The utility did its magic, and in no time I was running Jelly Bean v4.1.2. Hooray, finally. Now I could re-install my apps, contacts, and calendar.

Well, my apps and contacts at least. It seems that the phone’s OS comes with its own Calendar app which stores information on the phone itself by default. The Google Calendar app, which is downloaded from the Play store, will sync with Google. I had inadvertently been storing all my schedule information on the phone and it was totally gone. I made sure to download the Google Calendar and set it up to sync with Google, then disabled (not uninstalled!) the phone’s calendar app. It took a while to re-enter my schedule but I was finally good. Over the next few days I had to open some apps and re-accept their terms-of-service as well as reset their preferences.

I also discovered that AdAway hadn’t re-installed. After more research I found that Google very recently had removed all ad blocking apps from the Play Store, sending their developers a notice that they had violated a clause in their Developer Distribution Agreement.  Apparently they didn’t like the fact that these programs interfered with the possible revenue stream from streaming and in-app ads. That explained why I couldn’t find Adblock Plus in the store either. Fortunately I discovered a link for the F-Droid App Repository which allows the download and installation of AdAway. Adblock Plus can be downloaded directly from the company’s website and sideload-installed, so I got that program next.

After going through this hell I now have my phone loaded with the “latest” version of the Android OS, Jelly Bean. I used the quotes because, as it happens, v4.1.2 is NOT the latest version of JB. Version 4.2 has increased speed and more features—and Verizon blew an opportunity to get their users current. Well, I’m done with waiting on Verizon. When I can find one of the Razr enthusiast sites that has version 4.2 of JB I’m going to install it. I might as well get used to it; I seriously doubt that the next iteration of the Android OS (known as Key Lime Pie) will be made officially available for the Razr / Razr Maxx.

Advertisements

Leave a comment

Filed under Projects

Leave a Reply

Please log in using one of these methods to post your comment:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s