Where to begin? ...
I'm going to take all your questions and combine them into a really, long, TL/DR worthy post mmmk? thnx.
I certainly haven't advanced into a career from my experience and participation with XDA. However, I have definitely made a hobby and place for myself here and it all started back in the day (which was a Wednesday by the way).
I had finally upgraded my and the wife's devices to a "smart" phone. We were no longer part of the dumb phone crowd anymore so it was time to grow up.
She had a Droid Eris, and I the amazing Droid Incredible. Although the phone was cool and visually appealing, I felt it was lacking something.. It wasn't as fast as I wanted. In my mind, you should be able to press a button and BAM, you're there. So I began looking on-line for ways to make the device faster.
I started out by visiting the different threads for my device and gained an understanding for what rooting a phone means and how one goes about doing it and what SuperUser is for, etc.
After a few scared posts to test the public forum waters, I through bit lip achieed my first root. I thenk joined the rom flashing community jumping from rom to rom trying to find the best one for myself. This carried on for a bit.
At some point, I decided that I wanted to take the stock rom, and cater it to my specific needs and desires instead of flashing other people's roms. I started using titanium backup to freeze or remove apps because I wanted my rooted stock rom to be debloated. Through a grueling process of trial and error on every file, I found what breaks when what is removed and documented it on paper.
Once I was comfortable and familiar with what each apk file did (or didn't do if removed) I moved on to modifying them directly through the rom zip file on my computer with 7zip. This opened up a new world of hurt because now I was exposed to libs, drivers, audio files, xmls, docs, etc. So that took a long time opening things up and trying to understand what they did. At one point it was a brain overload and I almost gave up interest because it was just too much.
One day, I learned how to change lock screen unlock rings and how changing the pngs can change the image and I began learning what images were called on when what gets pressed or moved on the screen. I was fairly decent with photoshop and offered my services in a thread talking about lock rings. Another XDA member requested I modify a TRON disc to be his lock ring which was coincidental as that was the exact thing I wanted to do to mine! I soon became friends with XDA member (My first buddy on XDA) @synisterwolf
and we teamed up in our own HTC Incredible thread (or Rezound.. I actually forget which device we started all this on) making built to order lockscreen rings for people. That was a big hit and we started moving into some other theme type elements like changing the blue navigation chevron in maps to spaceships or tron cycles, etc.
Taking a step into the theme world however meant that I would need to learn how to decompile and recompile apks so I began my learning process in that. To my dismay, a decompiled apk (down to smalli) is incredibly full of stuff I had not even imagined and to this day I still have issues understanding most of it. I did however manage to change smalli in my code, line for line, from a different device to my Rezound which succeeded in giving me the first 5-point AOSP lock system which at the time, wasn't available to the device.
Learning later to make changes in the res and res/values folder taught me how to theme system level elements to the apks and what they did in rom.
I also did a lot of internet searching on how to make roms faster and came up with all kinds of build.prop edits or files you can add into the rom and I experimented a lot.
At one point, I took notice of a talented individual name @chad0989
, who together with another talented member @tiny4579
worked on advancements to roms and a kernel which included a voltage modifying app titled Incredikernel. This app (if kernel permitted) allowed you to undervolt each frequency voltage value in an effort to improve rom performance, or save on battery. Now, Chad had his own custom flashable voltage presets that ranged from certain levels to most extreme but I felt the extreme could go a little further. So what I did was Lock my phone at each possible frequency (both min and max) and under as much heavy load as I could put it under, modified down the voltage value just 1 step above what would cause the phone to lock. I spent hours forcing my phone to ride just 1 frequency at a time and placing it under major load just so I can get the lowest possible minimum values. When I was done, it was completely stable and far below what I had imagined. I shared the modified values with Chad and everyone else interested.
I finally came to a point in my android fun where I wanted to share with the public a stock sense rom that I'd personally modified for myself to what I felt was best suited for performance and battery with as little bloat as possible.
I soon came to find out however that I would have to come up with my own files without using files from other individuals so I couldn't just go out and ask somebody for their stock base to use...
Thus, I was lead by someone to the DSIXDA Kitchen by XDA Developer @dsixda
. I found out through some friends that you could take the Official RUU for your device and run it through this "kitchen". The kitchen would then decrypt it, deodex it, generate a manifest, and an updater script for you! It was amazing. For such a noob like myself, this was gold.
The learning curve with the kitchen if you've never used it takes time. It forced me to have to fully understand adb which also required me to learn about having the have the latest android tools and sdk. I also inevitably found out that I needed the appropriate java on my pc to make everything work (this includes decompiling and recompiling stuff too). Trying to get the kitchen set up and learning how to use it was frustrating for me at first, but I eventually got there.
After I had what I felt was officially mine to distribute, I used all those small skills I'd acquired to date and with the help of questions being answered by others who'd released roms, I released my first Sense rom (for the HTC Rezound) and called it NeoMAX.
At this time however, I wasn't too confident about myself and was afraid I'd remove stuff people need so I left a lot of things in to keep people happy. The rom however was a big hit for the device.
Over time I gained some guts about me and "took it to the next level" and modified NeoMAX in a way that I personally felt a rom should be for best performance and battery life and released ADRENALINE which was completely debloated and became the smallest sense rom available (which was apparently a big deal for a device with little memory). People loved it.
I then had a moment where I went crazy with it all and released two more roms similar to ADRENALINE only this time they were "De-Sensed" roms in which I tried to make them as close to AOSP as possible. "Simplistic" was the sense-free version of NeoMAX and Injection was the sense-free version of ADRENALINE.
So now I had 4 roms and felt everyone was waiting for the next big thing.
Chad at one point however, broke the ice and got a working AOSP rom for the HTC Rezound which I'd never run on any device before. I'm not sure if any of you have ever had the Rezound before but even running my fastest rom at the time, it was nothing in comparison to AOSP.
I ran AOSP for the first time and was blown away at home fast it was in comparison to Sense and I soon became a strict AOSP follower after that.
I wanted to release my own AOSP rom but learned that I would have to learn how to compile code from source in order to have my own and at the time, I knew absolutely nothing about linux. I was a born Windows user and had never touched linux.
So I had a crash course with my buddy PonsAsinorem and he mentored me for some time in hopes that I would take over and maintain his CyanogenMod project but it was too much for me to handle at the time. I literally had headaches trying to understand any of what he was trying to teach me. Kinda like when you get a new job and the first day, you're blown away by all the stuff you need to learn.
Some time later another friend of mine @mbobino
helped me to figure out how to set up a build environment with java and toolchains and walked me through to my first rom compile of CyanogenMod.
Not wanting to release a stock AOSP rom though, I soon learned that, like smalli in Sense, you could modify the source code to add or change things in the rom. Not being a code pioneer, I learned of a huge pool of "cherry-picks" by others more knowledgeable than I that you could look through and drop into your work. All I had to do was walk the custom code isles and cherry pick all the cool features I wanted!
So I had a huge page of cherry-picks and learned how to pull them. Unfortunately, I soon found out that you couldn't just simply pull everything in and expect them all to play nicely... Especially if one pick modifies the same files of another and that second pick assumes the file being changed was unmodified.. This forced me to have to understand how the changes work and I had to learn what needed to be "fixed" in order for all my changes to work together.
I did a lot of growing up with aosp fixing merge/cherry pick errors and trying to fix compiler errors as well. It was no quick process and took me nearly a year to gain a full understanding of how to do it with minimal effort.
I stayed in the AOSP game for the duration of my influence on the Rezound device. I released roms based off of CM, PAC, and AOKP and made many more friends like @apophis9283
, @Miss Dragon
, and @XRaptor29
. I was even the first at one point to get either PAC or AOKP working on one of the new android platforms for the device.
At some point I was nominated for Recognized Contributor, which made me more proud to be a member of XDA. I can't remember who it was who nominated me at the time, but thank you again.
I soon found out that you could modify build flags for rom opimization on system level and read through a fat GNU page listing all the possible build flags you could use. I did my best to learn (or understand for that matter) what flags I'd want to use and how to add them in and what they broke if used (like using a compiler flag for thumb flags at -O3 broke Camera Viewfinder on screen for the Rezound).
After learning compiler flags I began learning toolchains and got into the whole Linaro and SaberMod chains game. At one point, not knowing any better, I forked SaberMod toolchains over to my github and renamed them Linaro
I was approached later that night through hangouts by the creator of the chains @sparksco
which was something like "Hey.. You forked my toolchain and called it Linaro.. It's not Linaro dude" lol. I got to know this developer over time and he helped me a lot with understanding how toolchains worked and the compiler flags I was new at. People who knew of him referred to him as the "toolchain god" so it was good for me to learn from him (even if he didn't want to be a teacher at the time :P).
At some point I got frustrated with having to modify a ton of things every time you wanted to change a chain though. I found that a certain tolchain may work best for kernel but another worked best for rom so I wanted to use two separate chains. Following a similar example by another dev, I created what's known as the GCC FREEDOM initiative (which I'm proud to say many rom teams use and still use today). As a matter of fact, sparksco has continued to improve on the initiative and continues to improve and update it.
I soon noticed that people began writing articles about my work on other Android Forums and I seized that opportunity to apply for Recognized Developer and got it.
I then spent my time mentoring other potentials (many of whom are now XDA Developers or Recognized Contributors) teaching them how to build and diagnose problems, theme stuff, etc. This kept me sharp and I also learned a few things from each of them as well as they learned things along the way that I had missed. I gained rapport with many of them and the android community and we all helped each other out when there were issues. This, in my opinion, is what android should be about.
To this day I'm still learning from others who have been in longer and are more knowledgeable than I. Github was no walk in the park to learn and I still struggle with it from time to time. In fact, there was a time Chad had mentioned that Github was harder to learn than android.. I still agree with that statement.
For a few months, my friends wildstang and tonystark kept nudging me to apply for Forum Moderator. They told me I had what it takes to be a mod for XDA, so finally I applied (not really expecting anything and half interested). However, once I received word several months later that I'd made "The Final Cut", I yearned for the position lol. I soon after became mod, and have built up friendships with many of them over time. It truly is like a family and we work together to ensure that XDA remains a peaceful place where Android Enthusiasts can come and enjoy sharing their works, ideas, and conversations with Android.
One day I finally purchased my HTC One Max (at the constant heckling of my close friend Flyhalf205 with promises of ruling the galaxy and stuff), I fell back in love with HTC Sense. He told me he would win me back over to Sense and although I told him it wasn't possible, it happened. I realized that my love for AOSP was strictly due to the fact that it made the device fast and now it no longer mattered.
I finished out the Rezound with my signature rom "TACHYON" which I could boast was the fastest rom for the device to date, and left (might still be).
Once on the Max, I realized a freedom I hadn't felt since the HTC Incredible days.. I was just a device owner. Very few people knew who I was on the Max. I was no longer stressed about pushing roms to the public or fixing aosp builds or helping others with their problems. It was then that I found out that I was completely burnt out and almost left android development for good.
One day, for myself only, I took it back to the beginning and went with Adrenaline again only this time, I applied all my accumulated knowledge to that point to make it something much more special. I learned through a friend @Jm@n
how to theme the SystemUI and create my own themes in the built in theme chooser which I surprisingly liked more than doing roms :P I liked it so much that I did 33 themes which may seem excessive to many, however I like options. After Flyhalf hounded me for months to release the rom, I finally did.
I stayed on the Max for maybe 6 months and my friend @dottat
was generous enough to gift me with a htc m8.
I have been on the M8 now for maybe half a year and it's been fabulous. I had intentions of releasing so many roms and cool things but in the end, I only released a single ADRENALINE rom, which I'm ok with.
I actually had every intention to stay on the M8 through the middle of 2016 as my contract wouldn't be eligible for an upgrade until that time. However, through the generous efforts of my very own HTC USA Moderator team, I came to own a HTC One m9 as of today
Thank you guys for that
Long story short, there is not just 1 person who has made an influence on me here. It is through the efforts of several people, whether intentional or not, that I am where I am today..
I came here as a troll, looking for fun, and found a home.
Love you guys,