musings between the lines

there's more to life than code


| Comments

It was bound to happen…

Sooner or later, it’s going to happen. No matter how careful, no matter how diligent, you’re going to drop your phone. And it’s going to crack the screen. More so with these new phones, like my Moto X, which are just screaming to be carried unadorned by a case because it’s just so nice to see (yes, I guess I could have gotten a bumper style protector for it).

So I dropped my Moto X, and it managed to both crack the screen and render the touch interface useless. That put me in a pickle since most solutions I saw were for mirroring your phone to your computer but still assuming your phone had retained its touch capabilities. I had lost both.

So here’s what I had to do to recover from that. But first, if your Android phone is in a situation where it could be damaged (cough, that subtly means everyone), there are some simple steps to take ahead of time that will let you avoid detrimental failures of data access should your phone get damaged.

Prepare: Enable USB Debugging

This is perhaps the most crucial thing you can do for your Android phone to enable post-destruction data access. This basically allows your phone to be accessed by your computer via USB cable. This has to be enabled for quite a lot of the solutions out there for data access to work. Do it now. Do it as the first thing you do when you get your new Android phone.

Really. DO IT NOW.

  • Goto: Settings > About phone (this may differ based on you phone)
  • Touch “Build number” 7 times till you see “You are now a developer!” pop up.
  • Go back to: Settings
  • There should now be a “Developer Options” section.
  • Enter “Developer Options” and click “USB Debugging” checkbox under the “Debugging” section.

Now a step often not mentioned:

  • Go plug your phone into every machine you have and touch “Yes” when prompted about allowing this machine to access your phone.

Tools change, and tools are written for specific platforms. This simple act will make sure you can access your phone properly on any machine in the house. Once again, if you do nothing else, DO THIS NOW.

Recovery: Get your data out

In my situation, I wasn’t as keen on performance as mere access. I just wanted to get hold of my data and export it so that I can keep things like SMS messages and other items that just are not automatically backed up (why Google, why not?). There are quite a number of solutions out there that will mirror your screen to your computer, but most of them relied on touch still working on your phone (mine was not) and often times if it did provide control, it was not at all done in a usable way (sorry Touch Control for Android).

But I stumbled upon this gem by Marian Schedenig: ADB Control

What’s nice and hacky about ADB Control is that it simply takes periodic screenshots of your screen, presents you with it, and listens for mouse and keyboard inputs. Which means it’s slooooow, but it works and does everything you would do with normal touch control including swipes. Nothing special needed, just switch from finger to mouse.

Once you have something like that working, you can use something like Helium to backup your data to your local machine (or the cloud or wherever you want). You can even continue to use your phone “normally” to do things while you get your replacement phone (although it was a lifesaver to have Moto X’s voice actions still work).

Addendum: Android backup/recovery is seriously fubar

Despite having a recovery process in place, especially in Android 5.0, I’m still quite disturbed by how poorly it works. Not only could I not get the Lollipop recovery process to recognizes any previous devices to recover from, when I tried the NFC data transfer, it really only partially worked. Lots of apps were left off and it felt really immature.

Then there are things like adb backup which seem to work great, except for a few things it cant backup (like SMS messages). I was a bit confused by that (or maybe it was my incompetence at using the tool). Either way, Google, if we use Gmail, we do have some space to leverage, why not just allow us to automatically snapshot everything periodically to somewhere like Google Drive so that we have everything backed up and ready to recover should we need to? In the meantime, Helium can do that exact job, but I just wish it was part of the whole ecosystem so that when we activate a new device, we can make a full data recovery right as the device is being initialize. And I mean full. No need to fuss with any details. Turn on new device. Specify what image to back up from, and voila, completely functional new device based on old device data. I feel like this is what the Lollipop on boarding process is supposed to do, but I just couldn’t get it to do that.

Anyway, for now, Helium is the way to go for data backup and recovery. ADB Control is wonderful for giving you virtual access to a broken phone to make it completely usable, albeit no longer “mobile”. It’s a small trade off. These two should be enough to get you by while you get your phone replaced and are back up and running again.