[Galaxy S6 Edge+ Android Development] arter97:
/* To kang or not to kang */

I prefer "open" to all stuffs, explicitly except for my personal kernels.

I've once used to use private Git repository for my kernels and just release the source-codes as a tarball,

which means that other developers who are interested in my kernel's changes would not get the specific changes they want while not violating XDA forum rules or GPL.

That was almost 3 years ago which by then, I was a newbie developer on XDA.

I was afraid other big developers merging all of my changes and I'll get buried down.

However, I've changed my mind and opened up my Git access to everyone after thinking my previous actions did not belongs to XDA's spirit.

That was a big move for myself of re-thinking what should be open.

Later down on the road as I gained more development skills, I've contributed into CyanogenMod and other's custom kernel and ROMs for fixing stuffs, introducing new concepts or improving performance.

During such process, there were quite a lot of occurrences where I was actually the first one to do those things.

For those who're familiar with "temasek ROM", you may know that after I became a contributor, temasek rose even more into the center of other AOSP ROMs' attention, as I was the first to introduce new exciting stuffs such as compiler changes or f2fs. And I quickly gained dozens of followers on my GitHub account.

And eventually, people *kang*ed my changes. Sometimes invalidating my authorship.

It surely is not a right thing to do, but I let it slide as it didn't matter that much. I believed that if my changes are good enough, it'd be better to end up with a larger user base rather than being a **** trying to hunt down every ROM developers who're doing it wrong.

Same story goes to my ROMs.

My real first popular ROM was back-to-n00t, which is a ported ROM from Galaxy S3 LTE to provide stable Touchwiz KitKat experience to the Galaxy S3 3G users.

I opened up everything to GitHub. And I even encouraged that other ROM developers to use my ROM as a base to work on their own ROM as I knew there are a lot of Touchwiz ROM cookers who're way better than me on modifying SystemUI or frameworks(via smali) BUT aren't too good on porting ROMs. I hoped that my ports can be a great base for others to work on their own modifications.

Now those spirits repeated on the Galaxy S6, I opened up everything about back-to-n0t3.

However, I do not do or believe those same things with the kernels.

There are far less kernel developers on XDA compared to ROM developers. ROMs are much more appealing for an "Android newbie" to go tweak. You can modify UI, enable some hidden settings and even port features from another devices.

So when ROMs gets copied off, users can easily distinguish if that was stolen or not.

Let’s say a well-known developer A ported S6 designs and features to the S4. Next day, less-known developer B uploads a ROM on XDA that claims to do the same thing. First thing that comes to the users’ mind would be ‘Is that guy a thief?’.

However, same thing cannot be said on the kernels as they work on a much lower level. You can’t distinguish individual custom kernels just by staring at your phone.

If a ROM developer choose to go use other’s custom kernel and integrate it into their ROM, it’s most likely that users won’t appreciate that custom kernel developer whose work powers that ROM. Let’s face it, not all users care about “Thanks to”, “Credits” sections, and let me tell you, those are the majority. Now some custom kernel developers might be OK with that. However, I’m not. Unlike most developers on XDA, I got fascinated to Android because it runs on Linux kernel. Modifying Linux kernel was the first thing I’ve done on my Android device, not modifying ROM. And I spent years and years on gaining information on Linux/Android kernels and tweaking, coding myself. While I don’t necessarily care users choosing to NOT use my kernel, I cannot stand that my kernel would be installed on one’s device which its owner don’t even know which kernel, which developer who made that kernel is. That is why I’m against with the idea of integrating custom kernels into custom ROMs. If you want your users to have a custom kernel, let them learn themselves what that kernel really is, what does it offers, and who developed it. “For the ease of flashing/installation” is not an excuse for me. Take yourself a few more minutes to download a kernel from the web, and a few more seconds to flash a secondary ZIP file from the recovery. Is that hard? Time-consuming? Absolutely not.

I hope everyone gets the idea why I'm sticking with the idea of "don't integrate my kernel into others".

Cheers.