I want rollback for Android apps blog home

Posted Thursday, 31-May-2012 by Ingo Karkat

my baby daughter Hannah with an old mobile phone in her pocket

I guess my age shows (I'm no teenager any more :-), but I still own my first smartphone / second mobile phone overall, an HTC Dream, a.k.a. G1 (the original "Google Phone"), and despite its sluggishness, I like it for its superior hardware keyboard. Too bad that the manufacturer stopped supporting newer Android versions a long time ago (ostensibly because they don't fit onto the device, but this seems to be general neglect as soon as subsequent models are on sale), so I'm stuck at Android 1.6, but I'm not missing much.

What I'm suffering under is increasing risk during app updates (that is, when there's enough free phone memory for the update; I've pretty much pushed the envelope on what fits onto the phone). It first happened with VVS Mobil, which some months ago would only display an exception message after an update. I went so far as to install the Logcat app to view the detailed error message, suspecting that some component wasn't compatible / available on Android 1.6. (As of today, it's Google Play page lists requirements of Android 2.0 and up — they seem to have finally noticed.) In theory, the app developer would bump the minimum required version once such an incompatibility is introduced, and old phones would continue to work with the old version. In practice, this is easy to overlook, the testing effort would be too much for your average hobbyist and too costly and cumbersome for outsourced corporate development, so it doesn't happen.

The next case of app-gone-broken was wetter.info, an app that felt crappy from the very first minute (because most of the time it only manages to start on the second try), asked for dubious permissions, then disrupted the user experience by making a superfluous flip animation unbearably slow with one version update. And one later update, it stopped working at all. Okay, I found a much better (but to my chagrin also much larger!) alternative, but the time spent troubleshooting (uninstall, reinstall, reboot phone, delete SD card data, reinstall again) makes me wonder whether I wouldn't live a happier and more productive life without this technology. (Hey, weather forecast runs every hour on the radio, or is just a bookmark away on my desktop!)

my daughter Hannah pretend-phoning with an AC adapter

Yesterday, I lost an important app for me, QuickDic. Again, went through half an hour of troubleshooting, to no avail. Is it possible to downgrade? This Android issue asks exactly for that. Could I have prevented the problems by making a backup beforehand, allowing me to restore the previous version, like I do with my desktop computers (think drive images and restore points)? Turns out that I would have to root my phone to do that, and it's a manual (again time-consuming) process that requires an extra app called Titanium Backup. Meh.

Because QuickDic is developed under an Apache License 2.0, I searched for a download archive on its Google Code site, but only the dictionaries were listed there, and a former project page (that is marked deprecated) only had two nondescript APK packages on offer, the last over a year old and half the size of the current app. More frantic searching lead me to various mobile app hosting sites, neither of which had a version archive, and only offered a single version that was in the best case identified by a date and archive size. After a mandatory registration, forced 20 second wait (upgrade now to a premium account!!!), I managed to get hold of a recent version from 24-Mar-2012.

After all that struggle, the rest was a piece of cake: Since I already had the Android SDK installed, I just had to enable development mode on the phone, connect it to my computer, and one adb install QuickDic.apk later, I had a working version on my phone again!

my daughter Hannah presenting the iPhone (not hers)

We all know that on Windows, third-party software updates are still an inconsistent and ugly mess (but they mostly work); Linux, thanks to its open source roots, has had much less (legal and business) difficulties to come up with a centralized repository and update process. In Ubuntu's synaptic tool, I can lock versions, uninstall, and rollback so easily that, once the basics of the package manager are learned, I consider this a solved problem. Since Android is based on a Linux kernel, I would have thought the bright guys at Google would have nailed it from the start. Apparently, they haven't yet.

Oh and BTW, who came up with the renamed Google Play? Play as in "easy as child's play" (hardly so, after my rant here) or "mostly for stupid games, anyway" (I understand that I'm not in the core audience any more)?! I searched back and forth for Android Market on my wife's new phone; if the Google Play icon hadn't just appeared shortly before, I would never have imagined it to be Google's new app store.

Tomorrow, I will suggest some improvements to the app update mechanism.

Ingo Karkat, 31-May-2012

blog comments powered by Disqus