Developer Spotlight: Steve Melkus of SmelkusMOD fame
Developer Spotlight is a series where we shine the spotlight on some of the developers who make our favorite ROMs and tools. This week, we’re looking at Steve Melkus, developer of the SmelkusMOD flavors of Amon Ra recovery.
For those of our readers who don’t know you, how would you introduce yourself?
I’m Steve Melkus, a.k.a. smelkus on XDA, Rootz and Androplasty. I’m best known in the Android community for releasing a themed and modified Amon Ra-based recovery for the HTC EVO 4G. Outside of the community, I’m best known as ‘Dad’ to my two year old twin boys.
What do you do for a day job?
I’ve worked in construction and engineering procurement for about ten years. I started with Lockheed Martin out of college and got to work on some pretty cool projects, including renovating the command center at US Strategic Command and converting the old Atlas rocket manufacturing facility into the next generation GPS III satellite processing facility. Once my wife and I had the twins, we decided to get closer to home and now I work for ConAgra Foods in Omaha, NE.
Affiliations in the Android world?
While I was working on the recovery, I got to know Ropodope, JamieG, atyoung and Mazda. So, from those relationships came Reloaded (LOTK), Mason kernel and Team Dirt themed recoveries. Beyond that, I spend way too much time following all things Android and Linux on Google+ and Twitter. I’ve always enjoyed the banter on koush’s G+ feed, Amon Ra’s take on Belgian beers and technology, and Linus Torvalds being Linus.
How did you get into the EVO world?
I finally took the smartphone plunge in November 2010. I came a little late to the party because you weren’t allowed to carry cell phones in the Lockheed Martin and government buildings where I worked, and I couldn’t justify the cost of a smartphone to have it sit in my glove compartment every day. Once I moved back to Nebraska, I knew I wanted to go with Sprint based on cost. All my research pointed to the EVO, so I didn’t even bother holding anything else.
The hardest part was holding off on rooting. Ever since getting into Linux back in 2007, my wife noticed every piece of technology we owned slowly running “something different.” Old laptops were on PuppyLinux or Xubuntu, newer stuff on Ubuntu or OpenSuse or Mandriva or Fedora. Our routers moved to DD-WRT. Needless to say, I was spending a fair amount of time on technology-related things. After our kids were born and I bought the EVO, I agreed to leave it alone for a year, given my track record.
Almost a year had passed when my brother and I went to the Nebraska – Wisconsin football game in Madison. He had a Thunderbolt and I had my stock EVO. We left the hotel at 8 a.m. for a night game. As you might guess, our batteries were toast well before the game even started. I ended up rooting a few days later and, as my wife predicted, have spent many hours delving into Android ever since.
Favorite hobbies that are non-Android related?
Years ago, I bought an Audi A4 after a very pleasurable experience of driving one on the Autobahn. After my first massive repair bill, I got into working on German cars mostly out of cheapness. I’ve done nearly all the maintenance and repairs for close to ten years now. I own reverse engineered Audi software and can go into every sensor and mess with settings on the car’s computer, which is a lot of fun. I also enjoy skiing (snow and water), camping, hiking, and wakeskating. I play golf despite hating that infernal sport. When I have the time, I also really enjoy brewing beer.
What are some other things you’ve worked on or created?
Early in 2012, I was usually running kushdeck’s latest ICS ROM, and somewhere during that development a2sd support dropped out, which would normally be a deal breaker for me. atyoung came up with a fix for prebeta5, but at some point that stopped working. I kept digging into that until I finally came up with a flashable zip using evervolv’s custom a2sd by drewis. Evervolv had it baked into the ROM, so it took some effort to figure out how to make that a flashable zip, but I finally got it sorted. It was nice to have around, because it usually worked on ICS ROMs of that time when dark tremors a2sd beta or stable wouldn’t.
On my Nexus 7, I usually run ParanoidAndroid or AOKP that I compile myself. I don’t really modify it much, but like building my own because it’s a great way to learn. Plus, it is fun running with the latest commits while the xda thread fills up with people asking when the next release is coming. I haven’t released a ROM publicly because I haven’t really changed enough to make it worth it, but building from source, learning to code and how to use git and gerrit is fun enough.
How did you get into modding a recovery?
It was late December 2011 when I started using drellisdee’s Amon Ra. There were a couple of nights when I was lying in bed after setting up a new ROM waiting for a backup or restore to finish and I’d fall asleep. Recovery would do its thing and then patiently wait for sleeping me until the battery died.
Back then I was a complete noob, so I would get pretty worried about the phone dying in recovery. I started reading through the source code and noticed that the nandroid script already included an option to autoreboot, but it wasn’t available in the gui. Rather than just asking drellisdee to add it, I spent a lot of time reading the main recovery code and attempted to add autoreboot to the gui myself. I modified the file as best I could and PM’d it to drellisdee. He never responded. That was actually great because then I set out to learn how to do it myself. It took me the better part of two or three months (especially with toddlers at home) to learn how to setup the Android build environment, use Eclipse, etc.
Through that process I picked up on a lot more than was needed to just build the recovery. I continued to send questions that seem silly now to drellisdee during this time and he continued to not respond. First I would unpack his recovery .img and change the graphics and repack. Then I finally figured out how to modify and build the recovery binary mostly thanks to a lot of online knowledge. koush had some stuff about building CWM, and I finally stumbled onto a pastebin an IRC between Amon Ra and someone explaining how to port his recovery. After that I was finally getting there and it turned out the file I originally sent drellisdee months prior was 90% spot on.
I released the first version on Vaelpak and RootzWiki. I missed a flag on the boardconfig.mk and didn’t properly address autoreboot between the nandroid script and the recovery binary, but it kind of worked. drellisdee must have been watching this whole comedy unfold or it was just a complete coincidence, but he finally did respond to me once I got that far and noted my errors, which thankfully fixed everything up. After getting autoreboot working, I revamped the wipe menu and incorporated calkulin’s scripts directly. While I was at it, I made different themed versions with each basic color scheme because why not? It was a great experience.
What languages and programs did you need to do that?
Recovery is written in c. Nandroid is a shell script. To make the recovery, you just need to setup the android build environment, pull in a CM source tree (my recovery was built in CM7), replace CWM source at bootable/recovery with Amon Ra source, and ‘make recovery.’ It’s crazy to think how long it took me to learn all that, but that’s the fun of Android.
What’s your home website/where you hang your hat at?
I’m on Google+, Twitter, XDA, Androplasty and RootzWiki. I don’t say much, but I’m always reading a lot.
What device are you currently working on? I seem to remember a statement that you were more known for the EVO than for something else you were working on.
I own a Nexus 7 and just upgraded to the Galaxy S III on Verizon (yuck) to get me some decent coverage and LTE in Omaha. Both are unlocked and rooted. Right now, I spend more time learning than releasing anything, but when time permits I hope to contribute more. I’m always building something for my own testing and education. I also love following CM, AOKP and PA on gerrit. It is a great place to learn the details about custom android development.
Any developers you think we should be paying attention to?
I would echo others sentiments about preludedrew and evervolv including drewis and the rest of their group. When I was in the process of upgrading, the sales rep at the AT&T store was stunned I still had an original EVO and spouted off about the terrible battery life and gingerbread. I simply turned my phone around and replied, “I’m on Jelly Bean.” He was all sorts of confused. Thank you Evervolv!
I think Steve Spear has been great on AOKP and if you haven’t seen what Adam Outler from XDA has done to Verizon bootloaders on the Note II and Galaxy S III, even if you don’t have Verizon, you should check it out.
Favorite root application?
ROM Toolbox Pro by JRummy is excellent particularly because he is very involved with the app and its users. Solid Explorer is also my favorite file manager.