One of Android's big plus-points is the bubbling cauldron of developer innovation -- unpaid hobbyists who while away their evenings writing code to improve and enhance stock Android. Chances are, if you've ever rooted a phone or flashed a ROM, you've been the beneficiary of their hard work. So, we sat down with a few of the best-known devs to get a sense of what they do and why they do it. Turns out, things aren't quite as rosy as they seem in the happy world of Android.
The open-source nature of Android has, ever since its inception, been pretty much a magnet for aspiring modders who tinker to improve performance, the looks, or add missing features. Sometimes this takes the part of an app; more often, the tweaks take the form of a full-on custom version of Android.
The spiritual home of Android is XDA forums, a site that started as a place for people to talk about mods for HTC phones, which has grown since then. According to its stats, it's got a nice round 9,464,190 members registered to the site, with tens of thousands online at any one time. It's a collosal community, then; even the number of really active developers reaches into the thousands. They've all got one thing in common, though: they're not quite your stereotypical geeks.
Chainfire, the developer behind the world's first Wi-Fi tethering app, and author behind the popular CF-Root series
For someone to spend their spare time working for free on a smartphone, they've got to have been programming pretty much since they graduated from Postman Pat, right? Actually, it's surprisingly not quite the case. Sure, there are some -- like Chainfire, the developer behind the first ever Wi-Fi tethering app -- who reckons he wrote his first program at the tender age of seven, but equally, there are other big-name developers I spoke to who only got into programming in the last few years.
Equally, in real life, backgrounds are more diverse than you'd imagine. The aforementioned Chainfire is a freelance software developer in his day job; most of the other devs I spoke to, though, are in fields unrelated to programming -- business analysts, IT system engineers and accountants all moonlight as big-name Android software devs.
So what drives them to spend their time working on open-source coding projects? It's a serious amount of time they spend on what is, after all, a hobby. Most of the devs I spoke to reckoned on spending between 20 and 40 hours per week on their various projects; another dev, Pulser, the dev behind VillainROM, says that some of the devs "are never off XDA except for sleeping", and even then precious little of that.
For some, the motivation is altruistic: for the aforementioned Pulser, "it's a case of trying to give something back to the community". For others, it's a mixture of things. Dees Troy, author of the ubiquitous TWRP recovery ROM, has conflicting motives:
"I like TWRP, I believe in it, and I like to make a good thing even better. I've learned a great deal already and I'm sure that I'll continue to learn more as I go. I think in the long run it'll also be good for my career."
Of course, with so much time being spent working on these projects, money becomes a talking point. The devs I talked to all worked (though some not exclusively) on projects that they released for free. XDA tries to compensate them to some extent, however, by allowing grateful users to donate to a particular developer. Of course, it's not going to make a living, but with millions of people using code like TWRP and SuperSU, it still adds up. Communists will say that money brings disharmony, and that does seem to be the case in the world of Android. There's a rift developing over donations, but more accurately, over 'kanging'.
Kanging, according to the hive mind of XDA, is taking one developer's code, copying it, and then modifying it slightly/not at all, and claiming credit for the whole thing. It's plagiarism writ large and audacious. Pulser has first-hand experience of the damage it can do:
"Someone used to just go about mirroring anything I did, trying to claim it was better. Then it emerged he was just doing what I did, as he didn't know what to do. The community dislikes that kind if thing. In another case, a guy was claiming his rom was better or faster -- it was identical, with a different name in the about menu -- and with a few bloated apps added. Literally binary identical."
Of course, copycat behaviour is a problem that's emerging for the whole technology industry. But it's a particularly gnarly problem when you're dealing with a community where the majority of projects have open-source code -- rather than features or design ideas being copied, whole chunks of code are being ripped off.
The real problem comes, though, when you try and nail down exactly where the line falls with kanging. Elements of Android software, in particular the underlying Linux kernel, are licenced under the 'General Public License" -- that is, the code has to be publicly available for correct use and modification.
Given, then, that the open-source code is meant to be copied -- as Chainfire puts it, "isn't that the point of open-source?", drawing the line between what's kanging, and what's building and improving on other people's work, as per the ethos of open-source software, is difficult.
This is where it comes down to a difference of opinion, and this is where you find a schism. Adam Outleris responsible for jailbreaks on a bunch of Samsung phones; from his point of view:
"99.9 per cent of any ROM is kanged. If you look at the kernel, the ROM and all the supplemental things that come with them you're talking about tweaks. So really... when someone says they made a ROM at all, they're kanging. Then someone takes an feature for which the license was never specified and the kanger becomes the kangee."
Dees Troy echoes similar sentiments, but is acutely aware of the problems copcats pose: He and the TWRP team chose to go with GPL for their project "because... we don't want anyone taking our source into their own closed-source project for their own financial gain".
Pulser, though, reckons that kanging is more of a problem for the Android community. Kanging diverts donations and credit from the devs who did the actual work; it also presents a potential threat as a home of malware, but more worryingly, it may also be driving a trend for projects to make their code, or elements of it, closed-source.
Closed-source code is a worry because the entire point of Android, and the XDA developers community, is that open-source code is essentially the best way of doing things. Outler's an outspoken advocate of open-source code:
"When Windows XP took a dump on me, in 2008, I plugged in a thumb drive with Linux and started using it. I learned things about Linux that were not possible to learn on Windows. As I learned, I realised this information I was learning was only possible because of Open-Source. I also learned that Open-Source code is immortal. Long after I die, someone may pick up my source code, repurpose it, and it will live on."
Clearly, then, kanging is a problem for the Android community. But tackling it presents another problem -- you can't just make all the code closed-source, as that would ruin the entire point of the system. XDA developers are trying to tackle the problem by introducing a scheme that rewards 'elite' developers -- so not the leeching kangers, then -- with devices to test on and dedicated forums. But before the problem's solved, there needs to be an agreement as to what the actual problem is.
Ultimately, then, the Android developers community is at risk of becoming a victim of its own success. What started out as a hobby to improve people's phones has grown to a stupendously large community; donations and credit for projects are significant enough to cause major spats, and lead to fallout that can damage the whole community. Given that millions of Android users benefit from -- and, in many cases, are quite reliant on -- this free software, it leads me to believe we should be more aware of the problems that the unsung heroes behind the keyboard face. After all, as Pulser says, the best solution to kanging? "Users being more street-wise".