Just over a year ago I wrote This is not the Android you want and as I’ve been spending time with android again I find it a little depressing how little progress has been made. Google have made their publishing process for AOSP slicker and quicker, the interfaces have gotten better and generally Android is much improved, but still things feel closed.
The recent release of the Ice Cream Sandwich (ICS) code has led to the usual raft of releases of third party ROM’s based on the ICS code, but for many devices the changes have been too large to allow easy transitions. The complete change of the camera interface has meant few older phones have decent camera support and the utter lack of information from the manafacturers means this isn’t likely to change anytime soon. The kernels need to be updated, the AOSP source needs to be tweaked and lots of patches and work arounds need to be found – all of which delays the adoption of ICS for older phones. In fact the adoption rate on more recent phones via updates from the phone manafacturers hasn’t been great either. Change is good, but the cost appears to be great.
I have some sympathy with the hardware manafacturers as we, the end user, are not their customers. We didn’t pay them money or sign contracts with them, we bought phones that had been developed and built using their components. Companies like Qualcomm guard their IP closely and whenever they are asked for details of their devices they defer saying that they can’t release details as they are “commercially sensitive”. They release binary files that require specific versions or patches of kernels to work and claim to be “doing their bit”. HTC are no better and in many cases even worse. At least Texas Instruments have actually released source for many of their components and even have it included in the AOSP tree as it’s needed for the Google phones.
A simple eearch on Github will reveal a huge number of forks of forks of forks of the AOSP code and even more of the same for kernels to support AOSP builds. There are so many to choose from it’s a little bewildering. Some are very old and abandoned, some are kept up to date, most are somewhere in the middle. If one of the strengths of git is that it fosters a culture of easy forking and branching, that’s also one of it’s real weaknesses when it comes to developing a consistent codebase. I can understand why AOSP is focussed in the way it is, but surely it would be in the interest of Google and Android to have a central repository of all things Android? Take the AOSP tree and accept patches and improvements from the open source world. There are a lot of people spending a lot of energy to get older devices working, often with very little attention and with their work repeated or forgotten as it’s easy overlooked in the noise that is the AOSP ROM universe. A single, definitive repository with a well explained path to submit patches would allow everyone to participate.
Like many people, I won’t submit a patch unless I can test it, a requirement that makes any direct involvement in AOSP less likely as the source tree I have is actually a collection from CyanogenMod. The Gerrit instance for patches isn’t AOSP, it’s CyanogenMod’s. While AOSP is a good thing, it’s more fo a half way house and really could be so much better.
In todays world people expect updates. One of the attractions of an Android phone is the promise of updates and improvements. Each release gets a lot of attention and hype, but it’s always accompanied by the knowledge that by the time it arrives on your device the next version will be arriving. It’s not what people expect and damages the Android brand.
My last 2 phones have run Android and been made by HTC, but my next one probably won’t be from HTC and may not even run Android. The idea behind Android is amazing, but the vision is not being matched by reality. Until the manafacturers start to be more open and Android itself becomes more coherent it will fail to be what it should be. Qualcomm may take pride in their hardware, but their attitude towards openness and community means that my next phone will not feature any of their products. I’ll vote with my money and would encourage others to do the same. In some enchanted land, far, far away, if enough of us did it they would change their ways 🙂