Would Virtualization Improve The Android Update Process?

The Android upgrade process is getting a lot of attention because users are becoming more vocal with their displeasure that their phone has not been upgraded, and a number of technology web sites have focused on the topic. For example, Todd recently pointed out an article on how Computerworld grades handset manufacturers on how quickly they released Android 2.2 upgrades for their phones.

Bare in mind that Android 2.3 is the most current version of Android, and there has been much talk about future releases of Android that could come in a matter of months. TechCrunch drove this point home, noting that 90% of iPhone users are likely running the latest version of iOS, while only 0.4% of Android users can say the same thing.

While most of the articles that I have seen are about the problem, few are offering possible solutions. ZDNet’s Jason Perlow is an exception because he wrote an article specifically proposing that virtualization would solve the problem. The idea is to develop a standard hypervisor that sits between Android and the handset hardware, which would enable Google to produce versions of Android that are guaranteed to run on all handsets that use the hypervisor. The handset manufacturers would be responsible for making sure the hypervisor worked with their hardware.

Presumably the hypervisor and the underlying device drivers would not have to change frequently, and because Android would not directly access the device drivers, it would always works so long as it communicated with the hypervisor properly. A hypervisor might change only once a year, while Android could change three or four times a year and Google could directly release Android without having to wait on the handset manufacturers.

Perlow’s idea assumes that the big hold up with getting new versions of Android pushed out to existing smartphones is the time spent building and testing the device drivers for each handset into the Android OS. The problem, though, is that another hold up are the changes handset manufacturers are making to the Android UI and its set of applications.

Samsung is not treating new versions of Android like it treats Windows. With Windows Samsung just makes changes to drivers to make sure Windows runs on their hardware, but with Android Samsung is taking the Android open source code and customizing it to essentially build a Samsung version of Android. Perlow’s idea would require handset manufacturers to only focus on hardware level software and I contend that if they did that with Android right now we would see faster releases of upgrades.

Another time factor that Perlow’s idea does not address is the mobile carrier’s certification process. Today before the carriers release a phone they test it to make sure it won’t adversely impact their network. Carriers will want to perform that testing for every release of Android and not just the hypervisor because the software in Android could affect their network.

I am not completely discounting Perlow’s idea because I think it has merit, but it’s a technological solution to a business problem. I think the real problem of Android releases is that there are to many different handsets from too many manufactures on too many networks. As James Kendrick suggests, with that many cooks involved, not all of them will be equally motivated to get new releases pushed out to phones.

Neither the handset manufacturers nor the carriers make more money when they push out a new version of Android. Both the handset manufacturers and carriers make money when people buy new phones. Until there is an incentive for both the manufacturers and the carriers to get Android upgrades released faster, I doubt little will change with the current process unless Google were to make drastic changes.