Originally Posted by StNickZA
I'm a long-time Omni user on my Nexus devices. My wife recently got a Samsung Galaxy Note 10.1 2014 Edition (LTE) as part of her contract, and I cannot begin to explain how frustrating it is to be back in "Samsung's world". The hardware is incredible (Snapgragon 800, 3GB RAM, 2560x1600 display) but it is loaded with bloat on an outdated 4.3 ROM (only the wifi-only model (Samsung Octa) has Kitkat so far).
Now I know that for a device to be supported, it needs a maintainer. This is a very expensive, niche device, and I presume that there are not many users out there that will be suitable. So my question is, what does the job of a maintainer entail exactly? I've built CM for a couple of devices from source before, but that's about the extent of my knowledge with regards to custom ROM development. Is that sufficient?
I'm thinking that this device should be a fairly easy bring-up, being based on the same SOC as the Nexus 5 (amongst others).
How can I make this happen?
Being a maintainer takes a LOT of reverse engineering skills. Integrating the OEM's blobs with "normal" AOSP or CAF sources can be a royal pain.
The best bet is to try and start your bringup by using a similar device as a starting point. Same platform is OK, same platform AND OEM is better.
For example, all of the Exynos 4210 devices (except the Tab 7 Plus/7.7) share a common device tree and kernel nowadays (the 7Plus/7.7 were too different from others in the family)
All of the Exynos 4412 devices have a common device tree that's inherited, and a common kernel.
Unfortunately, unlike the Note and Note 2, the Note 3 is significantly different from the GS4. However, your device might be similar to a Note 3, so you MIGHT be able to get started by adding Note 10.1 2014-specific parts to the Note3 kernel and modifying the device tree in a similar fashion.
The best way to learn maintainer skills is to find a device that is semi-supported and start working on figuring out how to fix its features that aren't quite working right. (In my case, I worked with atinm on resolving I777-specific issues to get that device lit up, then started working on remaining I9100/I777-common issues in CM back in the ICS days, then started on the Note which was similar to I777/I9100)
Expect to spend a LOT of time Googling stuff and searching through code. "grep", "strings" and "readelf -d" are your friends. (grep is for searching anything, strings is for looking at the strings in a blob, readelf -d shows you what libraries a blob depends on)
Even an experienced maintainer spends ****-tons of time searching for things and digging through data.
Patience is the most critical thing for a maintainer to have.