Interview with OmniROM Developers Max Weninger and Jake Whatley – Origins, Custom ROM Development, Tips and More!
Recently I had the pleasure of talking with two OmniROM developers — Max Weninger (maxwen) and Jake Whatley (Gandalf). OmniROM has been part of the Android development scene for four years now and it offers a distinct and polished Android experience, with a history of introducing excellent features with tons of customization options. Innovation, transparency, community, and freedom are the founding ideas behind the project!
In this interview, we’ll be exploring how Max and Jake got started with Android development, what makes Omni ROM a different and an interesting alternative, how to get into the scene, hardware and much more!
XDA: I’m Tomasz Kondrat from XDA. Please tell us your XDA story! We want to know what dragged you into Android development. How did you get started?
Max: Being a software developer for over 25 years for Wind River and Intel in the embedded industry. Started with kernel development for HTC One V. You will find my first traces here at XDA in those forums. Since last year, I am a freelance developer enjoying the possibilities to work on everything that comes into my mind.
XDA: Why aren’t you a Recognized Developer here on XDA?
Max: I never really cared about these titles. I prefer to provide support in my threads and stay low profile.
XDA: Fair enough. And how about you, Jake? What is your story?
Jake: Growing up, my father built a home network using OpenBSD, so I grew up putting computers together and writing small programs on OpenBSD systems I had scrapped together from spare parts lying around.
As far as Android development goes, I purchased my first Android device (the original Motorola Droid) shortly after it was released. I had done some tinkering with jail-breaking an iPod touch when I was in high school, but I was very unsatisfied with the amount of customization and opportunities. I also did some modding of a PlayStation 3, I believe it was a Linux-based project that I tried to get running on the console; I thought it was awesome that I could run Linux, which (at that point) I had only ever seen on computers, on a gaming console. I remember trying out different custom ROMs on the Motorola Droid and thinking “wow, this phone is so much better now”. I was rooting and installing custom ROMs on every phone I had after that. I remember seeing an article on XDA that discussed this new project called “Omni”, and I thought the concept as it was described in the article was absolutely awesome. Unfortunately for me at that time, Omni didn’t support the device I had. I started following guides across XDA on how to build your own custom ROM from source (mainly following CyanogenMod building guides). I ended up building and flashing CyanogenMod for the device, but I /really/ wanted to try out Omni. With a lot of help from a co-founder of Omni, Entropy512, on IRC, I was able to (with ZERO programming knowledge whatsoever; I could barely navigate a console) get the Galaxy S4 (somewhat reliably) running Omni.
XDA: Your username is intriguing. Why Gandalf?
Jake: Gandalf, because when I was a moderator we all had superhero or fictional character names. And Lord of the Rings is awesome 😁
Max: Not many things changed and not much will ever change here. If you can write code you will always find yourself a home in the areas you are interested. Only the tools will change and you always have to be open to learn new things.
Jake: The biggest change I’ve seen in the Open-Source Android ROM community since August 2013 is the size of the community. With the explosive growth of popularity for Android and Android devices becoming more and more common, the community has definitely grown quite significantly. In fact, I’ve run into people locally here in Philadelphia who are running some custom ROM on their device.
XDA: When did you join OmniROM? Was it your first big project?
Max: I was one of the founding members in 2013. Did my own ROM builds for HTC and Oppo Find 5 before.
Jake: Unlike Max, I joined Omni a few months later. I first started contributing to OmniROM’s Gerrit in August 2013. Not only was Omni the first big project I contributed to, it was the very first project I contributed to. Back in those days, I worked on the Samsung Galaxy S4.
XDA: What makes OmniROM so special, and what makes it different from other ROMs?
Max: Why differentiate? We do not try to be special. In the end, we do all of this for fun. And cherry picking the same things over and over again is simply no fun. Following that strategy, you will automatically build up a set of features that you think make a complete package that people will enjoy.
As a general rule of thumb we try to think outside of the box and stick with our decisions – just because every other ROM out there has a feature does not mean you have to add it too. Or if you want to add it, think about ways to improve it.
But above all of this our #1 priority is stability!
Jake: Don’t be so modest, Max! Omni is special and I think what really differentiates it from other ROMs is the fact that we are directly transparent with the community. Feature added/removed? Here’s why. We made this change or that change? Here’s why. All of the Omni team are a great bunch of guys that are extremely knowledgeable and talented at what they do. To top it off, everyone works together phenomenally well, and it’s an honor to be able to work in a team with such strong cohesion.
XDA: Thank you for your thoughts! Tell us a bit about the project. What features or enhancements are you most proud of, and why?
Max: I have a hard time using the term “proud” when it comes to development. It is always a team effort so the thing I am “proud” of if any is that we are able to ship stable ROM builds since Android 4.3 for nearly 5 years now! So all my kudos to our team for their endless free hours they put into this. Without them, it would not be possible.
Jake: I personally like Omni’s “OmniStyle” that maxwen and darkobas have been working on. Since Marshmallow, Omni has built its repertoire of customization and UI features significantly, and most of them are housed in “OmniStyle”. Also, not so much an enhancement or feature, but more so a concept: I love that nearly every single change on top of AOSP that we make for Omni is controllable by the user. You have complete control to modify pretty much anything, enable any feature independent of other features.
XDA: We often see that many people think Android development is heading in the wrong direction. What do you think about that?
Max: I do not care a lot about what other people think. And you also do not have to follow a wrong [path] if you do not like it. So what the point here?
Jake: I don’t agree, but I don’t disagree. I think that the mindset of some members of the Android community is in the wrong place. Yes, many of the ROMs that are available are essentially a derivative of another ROM, but that is the beauty of open source.
XDA: What projects and developments do you think are invigorating the Android development scene?
Jake: All of them. Each project offers its own unique contributions to the Android development community.
Max: I hardly look at other projects because I have enough things on our own TODO list but there is a fine group of people working on DU, PureNexus, Evervolv, AICP and other innovative small teams that I enjoy working with. When it comes to device bringup times you can hardly go by LOS because they simply have the most experienced people working on such low-level stuff.
But unlike some kernel developers think there are a lot more people out there who know more about “ROM development” than just teams like PA, [for example].
XDA: There are a lot of aspiring developers on XDA. What advice can you give them to become successful custom ROM developers?
Max: The job “ROM developer” is actually something that does not really exist. So you have to specify what you mean by that, because building a ROM consists a set of very distinct knowledge areas. Just as a few examples:
- Framework development
- Application development
- Device maintenance and bringup
- Device kernel development
- Device HAL development
Do not get overwhelmed by the pure amount of code and complexity. Try to understand how different parts are related and follow the control flow. Pick small features and do them yourself looking at other people code. Doing a clean implementation of a feature by yourself is worth way more than cherry picking.
And building a good base of programming knowledge in at least Java and C/C++ upfront helps a lot. But you would be surprised how many “ROM developers” out there lack even the most basic understanding of this and still ship their builds on XDA 🙂
Be open and communicate with other people from other projects because the ROM development “scene” is a snakepit full of egomaniacs and showboats. So do not think you are a ROM developer if you start your own builds and cherry pick features. While this is a very important step it is just the first step.
Jake: I can only add one thing — be patient. Patience is critical. The Android ecosystem is enormous, as well as the Linux kernel. A general knowledge and understanding of software engineering and familiarization with Unix systems is crucial. Nearly every obstacle you will meet has been encountered before, so the most versatile tool available to you is the Internet.
XDA: Let’s talk about news. A lot of people keep talking about Project Treble’s impact in custom ROM development, What’s your take on it?
Jake: Project Treble will be great for custom ROM development.. for devices that support it. Project Treble is a multi-faceted concept. Once OEMs start shipping Project Treble-enabled updates, it should (theoretically) increase the lifetime of supported devices quite significantly.
Max: I have never looked into the future and will not start now. We anyway have to take what Google will give us and then it is early enough to start thinking about it. So I have no opinion at all on this at the moment.
XDA: Tell us a bit of your hardware. What is your setup? How do you test new builds and features?
Max: Whatever is needed to build as fast as possible 🙂 When possible, feature development is done on emulator because it is much faster, and only finishing tests are done on real devices. For release builds, we have dedicated build servers.
Jake: I currently do a decent amount of development on a small Asus laptop that I connect to my home network. My desktop packs some pretty impressive power with an Intel i7 4790K 4.00 GHz with 32 GB RAM and several Samsung SSDs in a RAID-10 array. I also have a small home firewall server I built from extra parts I had left over from upgrades to my main machine. I am currently using CentOS 7 on all of my machines.
When building and testing I generally stock up on energy drinks and don’t leave my office until I get to a point of good progress for the day. I hate leaving a problem once I’ve started working on fixing it.
XDA: Any hardware announcements or software improvements that you are personally excited for?
Max: No, I am not really following most of these things.
Jake: The iPhone X is my dream phone and I am leaving Android forever!
XDA: iPhone X? Seriously?
Jake: No 😛
XDA: You almost got me! Last question: do you have any other hobbies? We would love to know!
Jake: Hiking, camping, backpacking with my dogs.
Max: I love my dogs.
XDA: Thank you for your time and good luck with your projects!
Max: Thank you, Tom — take care!
Jake: Thanks for having me!
There you have it! We’d like to thank Max and Jake for participating in this interview and sharing their work. OmniROM is free to use, free to modify, and free to share — if you want to learn more about OmniROM, you can check out their website and if you want to try out their work, you can check out their supported devices page. Finally, if you want to explore and engage in discussion, you can check out their Official G+ Community, or the OmniROM forums at XDA.
Feature Image Credit: Adam Lapinski