Android – Just pull out the fork already
As mentioned in this post, I have an HP Veer cell phone that I bought last year when we were in the States on furlough. Despite (or maybe because of) a 2.6″ display and tiny keyboard, I’ve found it a joy to use, but its operating system, WebOS has one major drawback. Apps-wise, it’s dying.
My wife has an LG P500 with half the Veer’s RAM, a fraction of its flash, an ICS ROM that the good fellows over at AOKP have managed to hack together, and an up-to-date version of Skype, Whatsapp and any other app she desires. I, on the other hand, have a version of Skype that doesn’t log in unless I reset my user information, an impressive but buggy implementation of Whatsapp that seems to suck the ole’ power out of my phone, and a small list of apps that’s slowly but surely shrinking.
Over the Christmas holidays, I thought I would see what it would take to get some form of Android on this phone. There seem to have been a couple of attempts, but no source code that I could find, which brings me to my first complaint.
<rant>
What is up with Android ROM developers who take thousands of man-hours of somebody else’s work, add a few hours of their own, and then act as if they’ve invented the wheel and they need to keep it top secret? Maybe it’s the fact that I’m coming from the Fedora community where the concept of working as a team is an ideal even if it doesn’t always happen in fact, but the isolationist attitude I see in the different Android communities is quite depressing. I believe it’s one of the main reasons that participants in the Android community can be quite harsh with each other, much harsher on average than I see in the Fedora community.
</rant>
So I go to AOSP, download the platform and build it with no problems. Yay! Then I need to get the kernel source. From where? I start with https://android.googlesource.com/kernel/msm.git. There are four branches, three which are supposedly 3.0 or 3.4 JB kernels. And I can’t compile any of them. Some of the problems are configuration issues (the config.gz from WebOS’s 2.6.25 kernel is only a starting point), but there are also simple typos that are preventing compilation. Not exactly confidence-inspiring.
I decide to check out Cyanogenmod’s kernel, but it looks like it hasn’t been touched in forever. A closer look at Cyanogenmod’s github repository shows 10… no 20… no a hundred kernel forks for various devices? And all this brings me to my second major complaint.
<rant>
Why on earth do we need a different kernel fork for each device? All I want to do is build straight from kernel.org. Is that so wrong? When will the forking stop?
</rant>
Seriously, though, forking the Linux kernel to build it for your device seems a bit overkill, but it’s par for the course for the Android community. Is there any way to get this stuff back upstream? Or at the very least, could AOSP (or possibly Cyanogenmod) use one “official” kernel tree with patches sent back from these forks?
Anyhow, now I’m off to see if I can get one of the Cyanogenmod kernel forks to build. I’m sure I saw one in there for a msm7x30 chipset. Maybe I’d be better off just waiting until I can get a Nexus 4. Happy new year, everyone!
Edit: A couple of weeks ago, I got a Samsung Galaxy S3 Mini, as they are available and cheaper here in Lebanon than in the States. It may not be the best phone out there, but it’s a great size and easily does everything I need. Goodbye WebOS. It was nice knowing you.
Comments
eischmann
Wednesday, Jan 2, 2013
Adam Williamson
Thursday, Jan 3, 2013
Android dev really is a whole different world, and very hard to figure out just by looking at git. You really want to get on the XDA forum for your device and poke some of the experienced devs there, if there are any, and see if they can guide you. If no-one’s done anything on the Veer, try and find a friendly dev for a similar device.
I know there are some moves within CM and AOKP to try and reduce the silo and fork problem; for instance, I know CM is working towards a ‘unified’ build for all the devices that use the particular MSM variant in my phone. But this isn’t just a third-party problem, it’s how things are being done by the first parties. The phone manufacturers usually do release the source for their kernel modifications, eventually, and that’s what the third party projects work from; but each device is inevitably given a separate code dump, there is absolutely no co-operation between manufacturers or even co-ordination by manufacturers between their different phones. It’s not like Samsung has a public git repo for their kernel stuff where they have the source for all their devices with minimal branching, or anything like that: they just toss a tarball over the wall for each device, every so often, and that’s what you get. Like I said, different world.
Jonathan Dieter
Tuesday, Jan 8, 2013
Jonathan Dieter
Tuesday, Jan 8, 2013