When it comes to Android "hacking" and ROM development, Steve Kondik is a big deal.
Way back in the earliest days of the OS, the man known online as "Cyanogen" created his own ROM for the T-Mobile G1, introducing new features, improving performance and working with the community to fix bugs and make an even better, customized version of Android. That eventually snowballed into CyanogenMod, the biggest independent, user-maintained open-source Android "distribution." And in 2013, after a short stint as a software engineer at Samsung, Kondik co-founded Cyanogen, Inc, with the goal of getting this software onto production devices on store shelves.
As part of Android Central's Android History series, we caught up with Steve Kondik at the Big Android BBQ Europe in Amsterdam, Netherlands to learn about his unique perspective on Android's past, present and future.
Alex Dobie: In the beginning there was the G1 — the HTC Dream — which was kind of unique in being this relatively hackable Linux-powered smartphone with the backing of a major carrier and manufacturer. So how different was it to the devices you'd been using personally at that point, and what attracted you to Android in those early days?
Steve Kondik: I don't think I actually even had a smartphone before then. I wanted one, and everything that was available was... like, at the time, iPhone had just come around, there was a whole bunch of WinCE stuff, all the weird branded stuff... Android was kinda the one to watch. I liked the ideas behind it, open source and all that good stuff. And I'd been following the progress of it and everything, and when the first device shipped I bought it the day it came out.
[The G1] wasn't supposed to be hackable [...] except they did something pretty stupid and left a root shell running behind the console...
And contrary to popular belief, it was not hackable, like it wasn't supposed to be hackable. It was pretty locked down, except they did something pretty stupid and they left a root shell running behind the console, so anything you typed on the keyboard was actually going to a root console.
AD: I remember that — stories about a guy typing "reboot" or something in an SMS...
SK: ... And it rebooted his device. So yeah, you could basically spawn a Telnet server through netcat or something like that and then access the device with root, which was hilarious. And that kind of opened the door for everything.
So I learned that, when Google released the [code] drop of Android, you could actually build it for the device. It didn't really work at all, like there was a whole bunch of stuff you had to do to get it to work, but it was doable. There were a couple of other guys doing it, like Ben [aka JesusFreke] and all these other guys. But the stuff that I was doing, it ended up being Android from scratch essentially.
Then I just started adding shit to it. Like half-decent support for running stuff from your SD card, or trying to squeeze more performance out of it. And in those days there was like a zillion things you could do, and I thought it was awesome that you actually could do it, and you couldn't do it with anything else. It was like the first of its kind.
AD: At what point did you decide you had enough to put out something that was somewhat substantially different from AOSP? Talk us through that whole process and how it played out.
SK: It really wasn't all that different. It had root, some of the launcher UI had changed, it had apps on SD, a bunch of performance tweaks. I just posted it to XDA, I thought "nobody's going to give a shit," and there were like a thousand posts in the next couple of hours, and that was the start. It was really cool to see that.
People would say "this is awesome," or "this doesn't work," and I'd fix it, and people would respond like five minutes later — it was really fast-moving. It was really awesome to see that kind of response to something.
I didn't even know why I did it. Didn't even have a good reason. I just thought it was cool myself.
AD: The Android of 2009-2010 was of course very different to what we have today. What were some of the main areas where you worked to improve Android back then, and have you noticed Google picking any of that stuff up going forward?
SK: Oh my God, like everything. The cool thing about CyanogenMod is that people would come out of nowhere with crazy features that nobody expected. Like somebody came out of nowhere with swipe-to-dismiss notifications years ago in CM. And now that's a big UI thing, right? The "quiet hours" do-not-disturb mode. [Marshmallow] is like all of our features.
[Marshmallow] is like all of our features.
So we do get some new stuff out there, but it's just open-source at work. So if and when that kinda stuff does happen, it means it's just less shit that we have to maintain and we can go and do new stuff.
AD: You don't feel like you were doing Google's R&D for them to a certain extent?
SK: I mean, a lot of people are doing Google's R&D. That's, like, the point.
Steven Smith [Cyanogen community engagement]: The other thing about Android at that time was ports. Like people were trying to port stuff from Android 2.0 to 2.1, and people would try to built on top of that with reverse-engineering...
SK: Yeah, and devices were never updated, right, so... It was hard, at first. It was really hard at first, to learn how a lot of that stuff worked. Especially having no experience of it. But hey, if you know how to take stuff apart and put it back together...
But doing stuff like putting [Android 2.1] Eclair on the G1, that was actually really enlightening, like, what we had to do to make that work. We learned a lot in the process, and it actually worked pretty damn well.
AD: In the early days of Android you must've had a favorite device to work with or to use personally. Are there any early phones or tablets that stand out as a highlight for you? Either because of the technology or because it was just fun to work with or use?
SK: HTC EVO 4G. The Wimax one — the first giant phone. It had some really cool stuff on it. It took us a long time to get everything working right on it, but it was a cool piece of hardware and it was way ahead of everything.
The Nexus One was awesome. The giant glowing eyeball was really cool. And we found out that you could actually make it glow colors and stuff. So all the notifications could be colored with it. That was actually the inspiration for the "quiet hours" feature because that freaking eyeball-trackball, it would light up your whole room at night. *Laughs*
AD: CM grew pretty quickly from being one ROM on one phone to this "distribution" of Android that worked across a ton of different devices with contributors around the world. For you, was there any tipping point where you realised that you'd started something really huge?
SK: There were a couple, I think. I think the most notable one, the one that was a shock, was... So, my wife and I, we had a friend living with us, and she worked at a coffee shop in Pittsburgh. She came home from work, and she's like "dude, there were a bunch of dudes in the coffee shop installing your shit on their phones and talking about it."
She's like, "Dude, there were a bunch of dudes in the coffee shop installing your shit on their phones and talking about it."
And I was in shock and awe right there, because I'm like, "this is actually spilling over into the real world." I didn't think that...
AD: ... It's not just this compartmentalized thing. Real people were actually doing this.
SK: Yeah. It had gone from a bunch of people that I don't know on the Internet to actual people who actually existed. So it was like "OK, I get it."
There's been tons of stuff that's happened. A lot of the talk we've had with different OEMs in the past, and finding out how widely used [CM is] by major OEMs internally for their own work, just because it's easy to develop on for platform-level work.
AD: So you're talking about developers within manufacturers, not just: someone works for a manufacturer and decides to flash CM.
SK: Right, right. They're actually doing their feature development on CM because it's so much easier to develop on than whatever their own individual flavor [of Android] is. Because maybe it takes forever to build, or because the development environment is really awkward, or the source control is something horrific like Perforce.
[OEMs] are actually doing their feature development on CM because it's so much easier to develop on...
So a lot of people would just do it on something like CM because they have more access, it builds quicker, and they port it back after they've done their dev work. But I found that this was happening at like every major OEM, and that's kind of awesome. That was like a big goal to me.
AD: The big step up that made CM different from all these other Android ROMs was bringing everything together into a commercial setup with Cyanogen Inc. Talks us through a bit of how that transition worked.
SK: I'm a tech guy, I'm not a business guy. I probably would've never done it on my own. Kirt [McMaster], who's our CEO — I didn't know him, he kinda just reached out to me one day on LinkedIn, and he had some good ideas. We met up that weekend and threw a bunch of ideas around and kept talking, and before we knew it we were meeting with VCs and doing the Silicon Valley roadshow and stuff. It took us around five months of telling our story, and we closed a round and got to work.
AD: So under the new order of Cyanogen you have Cyanogen OS, which is the commercial part, and CyanogenMod which is the underlying open-source part. How does the mission statement of those two differ beyond just open versus slightly less open?
SK: So the closed-source direction, generally... If we decide that we're going to keep something closed-source, generally it talks to our infrastructure, which we've always kept to ourselves. Even for CyanogenMod I don't think we ever released it because it's not all that useful for anyone. It's not that we had anything to hide, we just never really released it. So if it talks to our backend stuff, we generally keep that to ourselves. If it contains some IP or something that is potentially revenue-generating or licensed stuff we have to keep it to ourselves. Or if it gives us an edge in some way. And [only] if it was developed internally. We don't take community code and close-source it.
The open-source project is sort of like the holy ground. And with a lot of new people at the company you have to teach them how it all works and everything, and sometimes it'd kinda new for them. And it's got to remain: The thing is made by the people who use it — that's the goal there. And anything goes there, essentially, whereas the commercial product is about reaching the world at large.
AD: And not just building something for yourself, and maybe you put it out there...
SK: Yeah, and there are millions of people that use CyanogenMod or a derivative of CyanogenMod, so it's not like it's a big secret. It's almost mainstream now. Hell, it's mainstream in China. The U.S. is a little different.
The open-source project has to have its own set of rules. Sometimes it's almost like tribal knowledge. For some people it can seem unapproachable, but it's really not, it's actually really friendly. You just have to kinda not give a fuck, throw some code up, and we'll give you all the support you need.
And at the company we don't actually fork CyanogenMod, because that would be insane. It's already hard enough to maintain a codebase of that size as it is. So if you're working on our internal codebase, you're checking out CyanogenMod plus like 30 other repositories on top of it and a whole bunch of configuration... So yeah, we build on top of it.
So one of the cool things is, if you do something cool and get it into the open-source project, that could go out to millions of production devices too. Some people like that, some people hate it. But I think it's awesome — if I'm working on something and I give it away, I want to give it to as many people as possible.
AD: In the past year we've seen a really interesting trend towards high quality mid-level phones at really competitive price points. Some of them are running Cyanogen OS. Given the insight that you have, will this trend continue, or will it just become a race to the bottom?
SK: There already is a huge race to the bottom, and that's gonna be where all the next users come from. But, you know, the OnePlus One, right, nailed it with the price point. Also, nailed it at the right time, and everybody was obnoxious enough to get people to pay attention. And whatever we shipped, it was good. It was really good.
The next generation of chips is going to be where the high end gets really awesome.
And, you know, I think the biggest problem with that class of device was the revenue margins were so thin. You're taking it to the limit at that point. So [the OnePlus One] has a pretty high-end chip, pretty good hardware, so the bar is up there pretty high. Some OEMs are re-using the [Snapdragon 801] 8974 chipset. The Zuk Z1 is using it. The OnePlus X is using 8974 too. It's still my gold standard. It's still why I use [the OnePlus One]. It doesn't have overheating problems like a lot of the new chips do. I think the next generation of chips is going to be where the high end gets really really awesome, so I'll probably stick with this until then. But some of this low-end stuff, it's pretty freaking good.
AD: Yeah, the devices I've been impressed with the most over the past year are the Moto G and the Wileyfox Swift — that you can get that class of experience on something that costs not a whole lot.
SK: The Swift was fun, and we found that we can take it even farther on even weaker hardware. I wish I had [a future CM device] with me, but I don't. Unfortunately the timing didn't work out so we weren't actually able to ship on it out of the box, but we're releasing CyanogenMod for it so we'll talk about it. But the cool thing there is the thing performs so good. It's like a gig of RAM, really low-end specs, low storage...
It's really interesting to me because I'm an old-school demo scene guy, like assembly language on old-ass hardware and stuff. Trying to squeeze all kinds of performance out of it, I love that kinda stuff. Being able to take a $75 device and make it perform pretty well. Like, it's not going to win at Antutu, right? But if you just browse the web, use email, basic stuff, take some pictures, the thing works great.
AD: And I suppose there's a lot of commonality in chips among low-end stuff, so that's work you don't have to duplicate.
SK: But I mean on the low-end stuff you need to do a lot of trickery — a whole lot of trickery — to get good performance out of it. And I think that's where we can get a nice win going forwards.
AD: As smartphone hardware becomes more commoditized, software and services are becoming more important, and arguably much more profitable. Can you tell us a bit about Cyanogen's strategy when it comes to bundled services?
SK: For us it's more about integration. We don't want to ship something that has like a zillion apps on it. And there's certain stuff that Google just isn't going to build, right? The siloed apps world is great and it actually gives them a competitive advantage, whereas we're coming at it from a totally different angle so we need to play the game a little bit differently.
We don't want to ship something that has like a zillion apps on it.
That's why we're doing things like making extensible apps, where you can write extensions for the dialer. Like you can write a VOIP extension for a dialer, so you don't have to have like 12 dialers for different services. I don't want to get too much into it because there's a whole thing we have coming up around it.
With CM13, what we're doing is we're making a lot of the lower-level stuff [extensible]. I talked about it a bit in the keynote. There's the CyanogenMod SDK, [in] which we're basically giving more access to some of the platform features and also for the stuff we've built. And we're also using it as a way to clean up our code so we can get to future versions of Android quicker. At the same time we're looking, like, what we can we make extensible out of this.
So there's some cool stuff in there now, it's already available. And then there's this next-level stuff that is all about making apps more extensible — stuff that works at a higher level. And that's kinda the big strategy for us right now. Besides shipping on the right devices, it's gonna be software and how it all comes together, because like I said we're not a hardware company.
AD: Do you think anyone can challenge Google and Apple in mobile services in the West now? Or is that duopoly fixed in place for the time being, and everyone else has to work around it?
SK: Some of Google's stuff is really good. Some of it is just OK. It all works together really nicely. They have good stuff. Is there opportunity for more stuff? Yeah! And it starts to get more interesting when you do have these kinds of extensible apps because even with something like Google Now, you can't really do anything with Now, you can just give stuff to Now.
They're starting to do a little bit more [in Marshmallow], but I think from a business perspective, they want you in their world. And it's not a bad place to be right? I mean, we want you in our world too!
AD: Everyone does. Everyone wants to lock users in.
SK: You know, our way of doing it's a little a bit different, right?
AD: So Cyanogen of course has a wide range of hardware partners among makers of these mid and budget-level devices. But do you foresee a return to traditional high-end phones?
SK: Yes... Yes... /Laughs/. I can't say more than that. I can't say too much about it, but it's going to be awesome.
Steven Smith: I second that. It's kinda ridiculous.
AD: OK. And of course mid-level and emerging markets are hugely important as well.
SK: So the biggest problem for us there is that our partners want to do a lot of devices, like casting the net far. And again, every single one of these things is an enormous amount of work. Because all the hardware's different, and in many cases they're manufactured by different people. You've gotta build relationships with those guys.
So our biggest challenge is scaling that up. And we have some stuff in the works. I think we have a pretty good strategy around it going forward, but there's still a lot of work to do. You'll see a lot more of that stuff from us this year.
If we could scale it up across a lot of partners on [hardware] that's a little bit more common, like kinda narrow the scope, so it's not as hard, and get our stuff into shape so we can essentially deliver something to a factory or OEM where they can just run with it...
You're gonna get good software and it's not gonna be abandonware. Because all that shit is just abandonware right now.
But I mean it's tough. It's fierce. But I think the reason why we'll be different there is because if we can make this work you're gonna get good software and it's not gonna be abandonware. Because all that shit is just abandonware right now. If you buy one of those low-end phones, it's basically like an OEM that doesn't have any engineering went to an ODM in China and said "I want this, I want it at this price point, here's my logo. Maybe here's some other phones that we like the design of." And then they build it, and these guys handle fulfilment and support and all that's it, they're done.
AD: Sure. You see tons of these things on markets in Hong Kong and even at CES every year.
SK: Yeah. Zillions of them. Thousands of them. Yeah.
AD: Security in Android is a huge topic these days, especially with high profile exploits and Google and others moving to monthly security patches...
SK: We're on that bandwagon too.
AD: ... But can anything that's based on Android ever be as "secure" as a closed system like iOS?
SK: I think that's not really how security works.
AD: A lot of commentators like to think that's how security works.
SK: Yeah. There's two ways to look at it. On a proprietary system the thing could be a ticking time bomb — you really have no idea. And it doesn't have the visibility of [open-source]. I mean it does, but you've got to decompile it and it's really hard to find bugs. So I'm way more in favor of security around open-source because you can look at the code and say uh-huh, OK, someone screwed up there.
One of the original hilarious Android bugs which we kinda think they left there intentionally was the original bug that let you root the Motorola Droid. There were two lines [of code]. And one of them should've been slightly different, but it looked like they just copied and pasted it. There was even a comment above it saying "bad things could happen here." So either somebody did it on purpose, or it was hilariously ironic. You could see it was an obvious callout. It literally said right in the code, "bad things could happen here." And you looked at it and bad things were happening because the code was wrong. And that let you write a trivial exploit that let you concatenate two files and it would actually flash the second one with the signature of the first one so you could bypass all security and root the device.
AD: So you were saying today [in the keynote] that you're in a pretty good place with [Marshmallow] right now compared to where [Lollipop] was last year...
SK: [Lollipop] was tough for us. Not only was it a hard upgrade because there was so much UI change, we had a lot of stuff we were trying to deal with at our company. It was the first time that we had tried to do multiple devices simultaneously on, like, a production level. And we had a lot to learn about getting our own process right.
So it took way longer than we wanted. And we had a lot of feature creep, and timing always threw things off. There was like a zillion things that went wrong. But hey, we learned from it and think we're figured it out, and now we can get stuff out there pretty quick.
AD: And finally, a very open-ended question: What will the Android landscape look like at the end of the decade, and where will Cyanogen fit into that picture?
I'd like to see us as the opposite of the walled garden.
SK: I'd like to see us as the opposite of the walled garden. That's kind of the big idea, right? What happens when you do the opposite. Where you become this platform that's extensible by everyone and anyone in all these crazy ways. Like this is our world and if you want to be in it here's how it is. That's where I want us to be.
But it's early days. But five years? I don't even know.
AD: It's an eternity, isn't it.
SK: Yeah. Maybe two years out I could think about some of the tech, but...
Steven Smith: It's one of those things where you can't see more than two months ahead because it's rapidly changing so fast. That's what we're doing with our platform SDK, is to bring in people who aren't just enthusiasts. I went to Hack the Planet in Mountain View back in August and once the students were getting in the SDK they were like "wow." Like [Steve] said earlier there's tons of cool stuff there.
You're going to be able to run some of these crazy deep learning algorithms on your phone soon. That really changes the game.
SK: I think the other interesting thing that everybody needs to be watching are some of these new CPU architectures like [Qualcomm] Zeroth. Zeroth is a cognitive processor, it basically simulates neurons. So you can build some really wild-ass stuff with it.
The use cases for this kind of stuff is going to be, like, wild. We're only really scratching the surface of what's possible with these kinds of algorithms, now that there's silicon that can actually help you... Like, you're going to be able to run some of these crazy deep learning algorithms on your phone soon. That really changes the game. That disrupts the cloud.
Of course you need lots of data. Networks get faster. So I'm interested in what we can do to pull your data closer to you.
AD: So the solution isn't always just to throw it all in a data center and run computation on it.
SK: Yeah — the power tends to consolidate in a small number of places. And it's kinda scary when you think about it. I'm not really a fan, but it's the only way to do it right now.
More Android History
- Read up on the evolution of the world's most popular mobile OS in our Android History series.
Steve Kondik photo credit: SF Android User Group