New to Android ROM dev, have much kernel/driver development experience. Need protips - Android Apps and Games

Hi, I started researching and messing with custom ROM/Kernel development 3 weeks ago. I've successfully compiled the kernel for my s5 neo Exynos 7580/MALI 200 (no hardware acceleration yet but I'm a kernel developer and reverse engineer so I can get that working given enough time, and have chosen all the apps I want to include in my first ROM. I made the ROM into and Odin flashable image and bricked my phone because I didn't adjust for the differences between the s7 and the s5 neo's power requirements. I bought 3 more S5 Neo's though, fixed the kernel, and all 3 devices have been 100% stable for 3 days with some minimal usage to test all the features. I am a kernel/driver developer, and as of now have taken over a dozen kernel MOD's from other people's kernels, and applied them to mine. There are more mods I could extract and apply, but I don't care to add them because I don't think they suit the goals of my ROM.
I would like to know things that aren't documented or easy to find that I will have to work with as I progress in the complexity of ROM development. So most of my ROM right now is apps I extracted from other ROMs and the play store and f-droid. But I am a coder and am working on my own settings app is suited for my ROM, including providing all the functionality of the root requiring apps I have installed now, also, I have about $80 of premium paid apps in my current setup, and want to put all the things they do into my custom settings app. I eventually plan on turning this into an android fork but for now, I'm starting out with baby steps to learn at a pace I can handle without overloading myself.
Please, any ROM/Kernel/App developers provide me any things you have learned from experience that I can't find on google and will be useful to know for my project.
Also, I have 2 questions. A) is UBER GCC better than Samsung eabi GNU compiler collection compilers?
B) Is deodexing really so good? because I've looked at the pros and cons and I don't think deodexing is worth the tradeoffs, but I feel like there's a reason almost every custom ROM does it. I know the tools to deodex ROM's don't work on Samsung android or other not AOSP based ROMS, but I already wrote a python script that deodex's my phone perfectly, I tried it, but I wasn't happy with the differences in response time and boot time and I believe it was causing a lot more memory to be used although I'm not sure why. Is deodexing better than I think it is, or is it just the cool thing to do for people who don't know how it really works?
Links, tips, polite criticisms, are all welcome. Also, this is my first post and I'm pretty sure these forums are the only place I can find people with the skill level to do these things well or at all.
I see some very knowledgeable people post here so I hope they find my post and reply with some tips. I tried the Freenode android channels and they are all plebs. They actually made fun of me for claiming I could make a custom ROM for this phone, they said it's impossible, and in 3 hours I had a screenshot of my about device showing my own compiled kernel running on my phone, no mods, just proof this been stuff is doable. Then I told them off about pretending to be experts but really knowing nothing and calling me a fool because they are too ignorant, then I left all 3 Freenode android channels and came here. In the channel for android ROM's and rooting, 99% of them were people who needed help rooting their phone or installing a custom ROM, not people I can learn from and grow to become a member of their community like I hope to do here.
if you didn't stop reading by now because of tl;dr, thanks for taking the time to read my post and please respond if you have helpful info. I've already read all the stuff I can find from google and these forums, I'm looking for the tips that aren't documented or that I may have written off as not important.
-zerorax, AKA Will O
Also if anyone wants to join forces to help me, I'm open to contributions and will give credit for them where it is due.

Related

[PLEA] I'm so confused about all the similar ROMs now!

I've been a regular reader of these forums since researching my first Android purchase. Over this time I have seem many new ROM projects born. I would like to argue that many of these projects are so similar that they are pointless.
I'm calling out anyone whoever made a new Hero/HTC-Sense ROM. Seriously. When you saw the 10 other Hero guys out there, what made you think it was better to release your own flavour instead trying to participate in an existing project?
I've taken a look, and as far as I can tell, there should only be 3 non-factory ROM projects:
- CyanogenMod, because of the effort Steve goes to stay 100% legal and teeter on the bleeding edge of Google's source code
- 1 Hero/Sense UI ROM, because we actually only need 1, why don't you guys work together, sheesh
- 1 Blur rip-off ROM, because goodness knows there are going to be people who actually think it's a great idea
Just because Android is based on Linux, doesn't mean we have to make all the same mistakes that has dogged and doomed Linux from the beginning. We don't need to splinter into a billion different distributions, at least not yet. Looking at the feature lists for many of these similar ROMs, the only thing that is different is additional locales or small bug fixes, hardly worth the effort of repackaging. /sigh
*end nerd rage*
i doubt they end. its their project, they build it how they like it and they share it. people do not have to download it. there are many reasons why they release their own, they have more freedom to do what they want. in past rom devs work together then they split up due to differences. working together is all fine and good but this isnt a utopian world haha, people have different opinions on how to move forward with a project.
just because you dont want to download and try different builds dont mean they should stop
jokeyrhyme said:
I've been a regular reader of these forums since researching my first Android purchase. Over this time I have seem many new ROM projects born. I would like to argue that many of these projects are so similar that they are pointless.
I'm calling out anyone whoever made a new Hero/HTC-Sense ROM. Seriously. When you saw the 10 other Hero guys out there, what made you think it was better to release your own flavour instead trying to participate in an existing project?
I've taken a look, and as far as I can tell, there should only be 3 non-factory ROM projects:
- CyanogenMod, because of the effort Steve goes to stay 100% legal and teeter on the bleeding edge of Google's source code
- 1 Hero/Sense UI ROM, because we actually only need 1, why don't you guys work together, sheesh
- 1 Blur rip-off ROM, because goodness knows there are going to be people who actually think it's a great idea
Just because Android is based on Linux, doesn't mean we have to make all the same mistakes that has dogged and doomed Linux from the beginning. We don't need to splinter into a billion different distributions, at least not yet. Looking at the feature lists for many of these similar ROMs, the only thing that is different is additional locales or small bug fixes, hardly worth the effort of repackaging. /sigh
*end nerd rage*
Click to expand...
Click to collapse
I understand how you feel, but isn't that what this site is for? If we only had those three ROM's, then this would be a very boring site. I personally like when people take other ROM's and tweak it to their liking. I don't have a clue on how to cook ROM's, but others do, and they might make one that fits my needs. Just my opinion though....
jokeyrhyme said:
I've been a regular reader of these forums since researching my first Android purchase. Over this time I have seem many new ROM projects born. I would like to argue that many of these projects are so similar that they are pointless.
I'm calling out anyone whoever made a new Hero/HTC-Sense ROM. Seriously. When you saw the 10 other Hero guys out there, what made you think it was better to release your own flavour instead trying to participate in an existing project?
I've taken a look, and as far as I can tell, there should only be 3 non-factory ROM projects:
- CyanogenMod, because of the effort Steve goes to stay 100% legal and teeter on the bleeding edge of Google's source code
- 1 Hero/Sense UI ROM, because we actually only need 1, why don't you guys work together, sheesh
- 1 Blur rip-off ROM, because goodness knows there are going to be people who actually think it's a great idea
Just because Android is based on Linux, doesn't mean we have to make all the same mistakes that has dogged and doomed Linux from the beginning. We don't need to splinter into a billion different distributions, at least not yet. Looking at the feature lists for many of these similar ROMs, the only thing that is different is additional locales or small bug fixes, hardly worth the effort of repackaging. /sigh
*end nerd rage*
Click to expand...
Click to collapse
As a regular reader you should know that there are about 5 different versions of Hero floating around to base off of. There are 2 different versions of blur. There is also pulse, donut, cupcake, and variations on them.
Hero includes: Tattoo (a specialized mix of donut and sense), the sense ui merged with magic, the official release Hero, the non-official beta Hero, and the Sprint Hero. (And if you ever read the threads, we do all work together) There are also multiple opinions on BFS and a2sd, which allows for variations.
Blur has both a Hero and a Cyanogen based version, depending on which way they decided to go to get the supporting files for the main system.
The rest are obvious, and I don't feel like going into that much detail.
If we all followed your beleif, updates would take twice as long and not have nearly as many features. Rather than Drizzy, JustAnotherCrowd, Cyrowski, and myself all waiting for the one day we all have 2 hours to meet on google talk, share files, and build an update... JAC relelases an update, Cyrowski writes a new boot image, I restructure the way a2sd operates, and Drizzy comes along and adds in some new apps he restructured to work on that build. Some people choose to stop somewhere along the path and stick to that ROM, others go all the way down the road. If there were only one update, most Devs would spend half the day just telling people how to disable, remove, or add the feature they integrated.
I just dont see how less is more in this case. If you don't like all the updates, do what I do. I have the ones I actually read followed, and I only ever take a quick glance at the first page of posts before checking those. If I miss anything important, it is only ever by a day. If it's that important, it inevitably gets bumped to the first page long before it becomes so old that I surely learned it somewhere else.
*end informed response*
twistedumbrella said:
*end informed response*
Click to expand...
Click to collapse
Hehe.
Okay, I get that there's a matrix of every possible version of Android against every different sort of UI (ie Hero+Donut, Blur+Cupcake, etc). My shortlist is obviously too short. But it's difficult to pick out, for example, the best Hero ROM. And I can see the same thing happening with Blur as it becomes more and more in vogue.
Watching 3 different Hero versions, you might decide that ROM A almost perfectly suits your needs except for the bug that only got fixed in ROM B. And ROM C has both the features and the bug fix, but has an ugly custom UI somewhere. So then you think to yourself "why don't I just make package D?". The only way you'll know anything for sure is to spend time trying out however many different ROMs knowing very well that there's a chance you'll be forced to compromise. The only differences between many of these ROMs seems to be the Android version, pre-installed applications and custom kernels.
I know I came off fairly irate and impetuous in my original post. But when you can see all these talented developers producing so many different forks and reproducing so much effort, it can be very frustrating for an enthusiastic end user.
twistedumbrella said:
As a regular reader you should know that there are about 5 different versions of Hero floating around to base off of. There are 2 different versions of blur. There is also pulse, donut, cupcake, and variations on them.
Hero includes: Tattoo (a specialized mix of donut and sense), the sense ui merged with magic, the official release Hero, the non-official beta Hero, and the Sprint Hero. (And if you ever read the threads, we do all work together) There are also multiple opinions on BFS and a2sd, which allows for variations.
Blur has both a Hero and a Cyanogen based version, depending on which way they decided to go to get the supporting files for the main system.
The rest are obvious, and I don't feel like going into that much detail.
If we all followed your beleif, updates would take twice as long and not have nearly as many features. Rather than Drizzy, JustAnotherCrowd, Cyrowski, and myself all waiting for the one day we all have 2 hours to meet on google talk, share files, and build an update... JAC relelases an update, Cyrowski writes a new boot image, I restructure the way a2sd operates, and Drizzy comes along and adds in some new apps he restructured to work on that build. Some people choose to stop somewhere along the path and stick to that ROM, others go all the way down the road. If there were only one update, most Devs would spend half the day just telling people how to disable, remove, or add the feature they integrated.
I just dont see how less is more in this case. If you don't like all the updates, do what I do. I have the ones I actually read followed, and I only ever take a quick glance at the first page of posts before checking those. If I miss anything important, it is only ever by a day. If it's that important, it inevitably gets bumped to the first page long before it becomes so old that I surely learned it somewhere else.
*end informed response*
Click to expand...
Click to collapse
twisted your roms are always the most polished and daily functionable
i appreciate your input on these forums as well as drizzys and jac's
im glad there are multiple possibilities so i can see which one runs the best for my intended uses
party a may use their phone for internet texting and facebook
when party b may use their phone for calls email and business
party A is using XXXHerorom that runs his needed functions the quickest and most efficient way possible
party b is using XXXherorom that runs his needed functions the quickest and most efficient way possible
jokeyrhyme said:
I've been a regular reader of these forums since researching my first Android purchase. Over this time I have seem many new ROM projects born. I would like to argue that many of these projects are so similar that they are pointless.
I'm calling out anyone whoever made a new Hero/HTC-Sense ROM. Seriously. When you saw the 10 other Hero guys out there, what made you think it was better to release your own flavour instead trying to participate in an existing project?
I've taken a look, and as far as I can tell, there should only be 3 non-factory ROM projects:
- CyanogenMod, because of the effort Steve goes to stay 100% legal and teeter on the bleeding edge of Google's source code
- 1 Hero/Sense UI ROM, because we actually only need 1, why don't you guys work together, sheesh
- 1 Blur rip-off ROM, because goodness knows there are going to be people who actually think it's a great idea
Just because Android is based on Linux, doesn't mean we have to make all the same mistakes that has dogged and doomed Linux from the beginning. We don't need to splinter into a billion different distributions, at least not yet. Looking at the feature lists for many of these similar ROMs, the only thing that is different is additional locales or small bug fixes, hardly worth the effort of repackaging. /sigh
*end nerd rage*
Click to expand...
Click to collapse
I don't agree and don't understand your frustration. You use what you want to use, let other people make their own decisions.
I happen to prefer Enomther's roms because they are more customizable in terms of what is included on the rom through the expansion pack and expension pack setup. I don't like arbitrary modifications as I prefer to have my phone close to vanilla Android but have performance improvements added. But going by your opinion it should not exist. Who are you to determine which rom's are pointless? I really don't understand the fuss. Different people have different preferences. If you prefer limited/no choice get an iPhone.
Unfortunately each Rom runs differently on each phone. My friend has the blurry screen problem while I dont. He can only run a few selected roms some of which doesn't do what he wants to do. I have gone though about 30 different roms before settling on one and quite frankly I think its pretty fun. I am on the bleeding edge of. techology.
I wish I would make a Rom. I have so many ideas for one.
The concern about multiple builds makes sense, but other folks have mentioned that different builds fix different things.
I've tried many of the Hero flavors, but sadly (unless I simply missed it) none of them have fully gotten bluetooth to work. I prefer using bluetooth for calling, and so far only Cyanogenmod's roms seemed to be able to nail this on the head. It's what I've been using for quite some time, and has proven to be the quickest and most stable.
It would be great if they all worked on just one version of the Hero rom, but it won't happen. Just imagine how many more are going to pop up when the official SenseUI shows up for the Saphire.
Eh
I completely disagree with the OP. Everyones needs are different and having a build thats just right for you is a luxury that you wouldn't get on most other types of phones. I really don't see an issue with having multiple builds even if they are fairly similar. Its not like we are wasting development time, there is no downside. Some may argue it makes it harder for users to find a good rom, but the bottom line is anyone who is flashing their android phone has an interest in technology and is going to enjoy trying out different builds. And once you've tried a few builds you get a pretty good idea of what your looking for in your ideal build making it much easier to choose. Using your Linux example, between work and home I use 3 different distributions everyday, the reason being each has strengths that make it ideal for specific applications, its not a problem or a mistake, its simply not everyones needs are the same.
Even for the novice like me it is not too hard to make sense out of what is available. I never liked when people do not read full thread before posting a question. Is it a problem of impatient generation or just a simple laziness? IDK.
Also, it has been a exiting jorney for me to learn everything about my phone and tremendous possibilities. Fear of bricking and yet the desire to try new stuff.
There are useful bits and pieces in almost every thread except yours, sorry to say that. There is nothing that can replace user's feedback and their own disoveries that are not necessarily coming from devs or people remotely in the field of android development.
Cease the proliferation of similar ROMs!
Click to expand...
Click to collapse
I also disagree with this thread. More choice is better for everyone!
Also if there are 2 similar roms, as a user rather than a dev you can still take the bits you like from both and make it your own.
jokeyrhyme really? have you made any roms or customized anything for your personal use? if so did you like it? if not, how come you didnt make one custom rom? is it because you dont know how or just rely on others to do it for you? there are soooooo many ppl with different "styles, perceptions and ideals" that one extra rom might be their next rom of choice!! whats wrong with a larger amount of variety? who gives you the right to try and call everyone out when they are the ones spending the time to learn, make and fix all the bugs for everyone when it started off for them selves?!?!? this thread is a joke and is taking up space in development. request for it to be moved to the trash or general. which ever is easiest.
WTF?
Ok at this point i'm kinda getting sick of this whole android forum. Way to much fighting, ignorance, complaints like damn who gives a **** (sorry just vex) who does what or doesnt do what or makes what or doesnt make what. If you dont like something...move onto the next. I mean those who alert the devs/cookers (whatever you choose to call them ) to issues with the rom only for the betterment of the rom are in the right. But when i see dumb **** like "this person's rom does this and that" i get pissed..just reflash that rom sit down shut up and think about that little life of yours that obviously is worthless since you can spend time downing people's work and yet you can make a rom or troubleshoot a rom on your own. Y'all need to relax yourselves find **** that works for you and stick wit hit. If it aint what you want..move on silently. dont fault the creator just move the hell on. Dont post dumb threads like this and most off DONT SAY ****!!! it's these very same forums dedicated to development of our devices that make our devices that much more amazing so dont flood the forum with dumb ****!!!. Show respect to our developers, give em props for taking time out of their lives to make our android experience benificial and super amazing.
I also disagree with OP's sentiment. I'd rather there be as many ROMs as possible than to have my choice restricted to a handful.
And daeshawn you're right, some people are so rude and unappreciative. I just ignore the douchebags and try to contribute as positively as I can.
I completely understand what you're saying. These forums can be really overwhelming at first. But honestly, I enjoy switching between different builds of Android just to see what they're like. Some people want APPS2SD, some don't. Some people want to split FAT32/EXT3/Swap, some don't. There are simply too many combinations for a small set of ROMs to handle.
sigh..... guess well never find the middle of the tootie pop
If a middle ground were to exist it could go something like this:
Everyone can do whatever they want as far as their ROMs go. Perhaps, for new people who might otherwise be overwhelmed with choices, the Q&A (if it doesn't already) could link to a few long-running, stable ROMs that typically accomplish the very basics. And once people get a chance to try those, figuring out what you want becomes a little simpler and the tons of threads start making some coherent sense.
It's like "which is better, Cyanogen's rendition or Enom's" and the answer, for a lot of people, is that it depends. There might be similarities and both ROMs ultimately accomplish a lot of the same things (root, A2SD, compcache, linux swap, etc.) but preferences remain. I like one, you like another. There's no reason both developers, each of whom presumably likes their own, can't go on making what they want to make and offering it out there. More over, the experienced users are already aware of the alternatives.
It's really newbies that might find the choices overwhelming.
As for reinventing the wheel with every ROM, many threads already provide credit to a variety of developers, so clearly the work gets around. Just because they all do it at their own leisure and in the order of their choosing doesn't mean the developers are living in closed bubbles. Maybe the colab work that needs to be done is already being done even if it's not obvious. More over, even if two ROM cookers decide to both implement similar changes apart from each other, the choice to do so is totally in their court. Their time and their money and their brains.
There is kind of, for me, a question of stability. I have a fair confidence, for example, that Cyanogen is not going to drop Android development entirely any time soon and his ROMs will continue to exist with updates and bug fixes. Other developers share this sense of stability, but it's not an all around type of thing. There are ROMs out there now that are interesting because they are cool and new, but will they still be maintained a year from now is another question entirely. And I think that's a legitimate concern and reason for wanting at least a few long-lasting ROMs. Because, essentially, if 5 devs work on something and one gets bored, there's still 4 left. Conversely, if there's only one dev and he/she decides they're done, now what?
Just my $.02
I've no issue with the number of roms.
however, what is missing is a simple resource that lists them and a summary of features.
trying to wade through all the post to see what does what is a total ball ache. I think this is more the problem than the number of roms.
An up to date one pager that showed the current status of what was available would be perfect.
Well, I totally deserve all the hate this thread has brought my way.
*bows head in shame*
I agree that if there was ever a place to test out dozens of difference features, then this is that place. So it's totally appropriate to have as many different ROMs as there are demands for different features and such.
I do think more could be done to draw new users towards stable and long-term projects, as has been suggested by sleepykit and moa77. Maybe that's really the solution I was after. An update to the listing or something perhaps?
Sorry about being a poohead, I'll be good now.
*hugs all round*
PS. I changed the topic title to be less evil and more open.

Making Roms....

This maybe premature but I figured I would throw it out there; is there any devs who could tell me about the skill level or difficulty level of making new roms or tweaking existing roms? I'm learning about java programming and using j creator and eclipse. I'm still new but I'm a fast learner. I want to help out the charge community by keeping an active dev. I'm still a time away from that but want more insight..... Please no sarcastic remarks.... Thanks.
Sent from my SCH-I510 using XDA App
I'm attempting to start teaching myself this as well. The advice I've gotten is to start ofs theming. That way you can break open the apks and see what's inside, get a feel for how to change things and reassemble packages without doing any major work, and then expand from there. I'm in the process of changing jobs and cities, but I'm going to start playing around with things after I get settled.
a lot depends on what you want to do
developing for oem skin (touchwiz roms in this case) is a lot different than aosp
aosp requires a lot of java knowledge, and depending on the phone can be somewhat easy (nexus phones source will boot without changes) to nearly impossible (this phone)
touchwiz roms require some basic tools (7zip, smali/backsmali, apktool, rom kitchens or terminal knowledge) as well as some smali knowledge and countless hours of just figuring stuff out
many of us got our start as themers, from which you (over time) gain knowledge on rom layouts, where things are located, xml/smali editing, making update.zips and updater-scripts, and the like
you dont *need* to necessarily use linux to work on tw roms, but it certainly helps imo...although most of the tools out there work in windows too
my suggestion?: download a stock rom and download a heavily modded one of the same build (infiniti/gummycharged) and compare them with kdiff and decompile the apks to get an idea of what was changed
its a good starting point
Sweet, thanks for the advice. I am learning java pretty quick but realistically it would probably be a year before I'm proficient. I also just added computer programming as a minor. I would like another phone, the nexus obviously, but I need to chill on buying phones. I love aosp- if that was possible that would be great, but getting started anywhere is good. Thanks for your help fellas.... I'll keep you all posted here on my progress...
I know that the java language will help-but comparing will help me get acquainted with android. So far I've learned everything from forums so this is a new direction...
Sent from my SCH-I510 using XDA App
For those following who may want this information. I had a response from imnuts in RootzWiki where I posted this same question. Here's what he said as well. He complemented the answers already given- I also followed up on a list of software to help get started.
http://rootzwiki.com/topic/11184-new-roms/
Thx for starting up this thread. I'm actually lookin into rom dev as well and this thread has some great starting blocks in it +1 for u dude

Cyanogenmod Info.

I've heard many things, all great, about CM since the beginning of time (...well, close to it.). Frequently, before a real android phone was obtainable via the average pathways here in the U.S. of A, and the iPhone was the only real option for a smartphone, I found myself pulled towards CM-even though I had no way of actually using it at the time. The open-source, power-to-the people feel has always appealed to me...and my journey, starting from the age of 12, when I started crashing my parents computer so I could spend more time with the boutique builder that would fix it, later fixing it myself, then exploring the down-and-dirty innards of my gadgets-- this journey, has always felt like home to me.
My personal tinkering with phones and the like started with my sisters HTC Tilt, which I skinned to look like an iPhone for her. This was one of the first phones with Wi-Fi (Ha!), and trying to get it work was just as fun as using it.
Moving on, I received, for my birthday, a palm PDA (one of the first with a camera and a color screen...the device itself was blue), but I had to return it due to an exploding display.
Finally, a couple years ago, I got my first smart-phone. An iPhone. And within an hour after getting it, I had it jailbroken and themed. But the innards were still off limits. While searching under terms lie? "Hack phone" and "tethering, I always came across posts speaking of Cyanogenmod...In fact, I'd say that an astounding 50% of my searches relating to customizing or modifying--in some way or another, led to a post or thread--sometimes a whole article, on how to do something with android, and specifically CM. This proved fruitful for my later endeavors.
When I was doing better financially, I bought my first android device, and have never felt so empowered, and have never had such a strong ownership of my devices. That device was the Transformer.
Again, after just an hour of owning the device, I was looking up terms...and searching XDA for every bit of relevant information I could find. Some of the questions I had: What is Clockwork Mod? What is Clockwork Mod Recovery? What's the difference? NVflash? What's a B70 serial number mean for my prognosis? What's a Nandroid? How do I choose a ROM?
Although there was a metric ten of terminology I needed to learn to know what I was doing--and even though there was almost a complete vacuum of centralized information--- at least authoritative information (any questioned asked in forums led to me being booted and marked as a noob), things eventually worked out.
I learned about the Boot loader situation for the transformer, the status of honeycomb as a sort of non-open-source open source operating system, and about the battery issues....about kernels, and speaker mods, about modules and root apps-and along the way I learned almost the full metric ton of terminology, and had a metric ton of fun...with you guys.
Which brings me to today...I own a brand new galaxy note, but am once again in the dark. Only this time, its far worse...because my questions pertain to CM, the gold reference when it comes to running a custom rom, and its structure...that is to say, the structure of the ROM, the team that builds it, and the community that helps support it...all relevant to understanding the dearth of work and choice that we find in this very forum. And because its been around for so long, the staple that CM has become, assumes that all things and all people know what's happening.
Which brings me to my real questions....which I've searched, and searched, and searched again for answers to, but have found no conclusive, or concise and relevant answers. I've searched the cyanogenmod site, the forum, this forum, and Google. And while I found half-answers, and although I'm confident I can root any device I, or my friends can buy, and I can install custom roms, edit props, change permissions, dump radios, flash pre rooted kernels and other kernels, and backup and edit every settings app and image I can find, I still find myself lacking a fundamental understanding of Cyanogenmod and Cyanogenmod work, official, and unofficial--information that would make my life complete, and help me bear the fruit of this journey I'm on.
That journey ends with a device that I own...one with cyanogenmod on it...specifically...a device in the near future that runs a version of CM that I helped contribute to-either officially or unofficially to.
And the beginning of the end to that journey, and the desired end game--developing, begins here. With my ASUS Transformer. And my questions.
Note: I illustrated this story in-depth, for a reason. To let you know that I've searched long and hard for clear answers, and that I plan to contribute significantly in the future to Android, and to XDA. I just need a teeny bit of help...a little direction. And so do a lot of us. I haven't found anywhere, a discussion of this subject--a significant one when it comes to understanding our community, our choices, and how to contribute...that subject is the structure of Cyanogenmod: the ROM, the team, and the community that constitutes them. The following questions are relevant to, and seek to address this fundamental lack of understanding.
Since the release of IcS, we've seen an explosion of CM in the Transformer forum. And while I understand how to read a change log, and a list of "what's working" and "what's not working", and can rely on a search find out what "Cornerstone" is, its still damn near impossible to define the relationship that constitutes all of the CM builds that are available. It might be clear, after a search, what the term "Kang" is, but what isn't clear, is what this means for the end-user. Its not clear what's official, what's parallel work, and what makes up the night lies that we can find on the CM repository. Is it one man aggregating work from forums like this, and throwing all of the features and fixes into a centralized build? Are the ROMs that we find in the Development section of the Transformer section off-shoots of CM to be worked on and differentiated in the future? Because where it stands now, I don't see a ton of differentiation. Maybe its because there's just been a new release, and I'm seeing the beginning of a process here. But I'm still unaware of what makes up a CM team. Its not clear how these things work-- if there is one man from the team working on the transformer, another working on the Epic 4g...and so on, or if everyone works on the same thing, and the feature or fix is distributed by a magic machine, or if each person on the team works on the same thing, and then a designated person ports it to his device. It's context like this that makes an informed overview of the current situation possible. And without that context, I'm stuck.
Most know that nightlies come before the release candidate(s), and that a stable release follows. But what I don't know, is why I never hear about an actual release, and almost always hear people speak of night lies, and in general, they're almost categorically excited.
So, if we were to examine my complete and utter lack of knowledge together, wed conclude that it's impossible for me to understand where XDA, and the ROMs that are available in the development section fit in to the grander-scheme of things. Is it better to get a nightly from CM? Is the nightly made up of the very fixes and developments we find in the various ROMs here in the development section?
How does someone go about deciding which of the dozen ROMs to install? Because the threads for ROMs don't explain anything when it comes to explaining an end goal, and a developers intent for the ROM, and the reasons why he/she is making one, I find myself stuck in the quick-sand of change-log after change-log, feature list after feature list.
Give me the 411. Explain to me what I'm missing in my Rosetta stone of the big picture..the grand scheme of things. Maybe I'm looking at this all wrong...maybe I'm just an idiot. Maybe you'll rage at me. But maybe, just maybe, I'm missing only, one small, key, piece of information here, and I spent a couple pages typing on the touchscreen of my transformer for thirty five minutes to find the answers that I badly need.
I'm sorry if I wasted your time. Thank you very much for reading this.
If you have a problem with my post, or a suggestion, attack, or complaint, please Private Message it to me...unless it pertains to the questions I posed...in which case I would very, very much appreciate your comment, your input, you sharing your knowledge, or even a question of your own.
Thanks.
Seriously? All that wall of text to ask the same question that everyone else asks?
This is how you divide up the custom ROMs to make your choice easier:
Do you want cornerstone or no?
If you want cornerstone, you pick between Team EOS or CM9
If you don't want cornerstone, you have these to pick from(in no particular order):
Revolver
Android Revolution HD
Codename Android
AOKP
CM9 no cornerstone version
Just try them and see what you like. I don't understand why people are so cautious before picking a ROM as if it's a permanent choice that can't be reverted.
If you don't like it, you can quickly flash a different ROM.
It's better for you to make your own decision based on your own experience with the ROMs rather than rely on someone else's recommendation whose needs and personal preference might not match yours.
Thank you, actually a nice read, there is also official cm support for our tf, on the cm website, last i seen there were 3 nightlies, since ics iv flashed the official cwm modded rom, then revolutiin, then team eos, then cm9, back to revolution, then codename android, now back on krakd hc rom until jcarrz releases his ics rom.
Sent from my R800i using xda premium
You gotta keep in mind that all ICS development now is in an early stage. Every rom is new, we don't have a solid stable one. Even stock asus have problems with rebooting, dock integration and so on.
CM is fragmented in 2 or 3 builds, and what diferentiates then is only the commits from CM repository and some dev preferences, like cornerstone or full support for the dock.
All roms that aren't Asus based (AOSP) suffers from some aditional issues, like:
- Dock won't be fully working, except on CM9 by ricardopvz and Codename Android. The touchpad still works different from stock asus.
- Some Wi-fi and GPS issues, probably driver related
- Screen rotation have a lag issue (all AOSP roms)
- Dock battery info missing, even with widget.
- Battery drain issues.
I have tested almost all roms and can say most of then is pretty usable. But if combined with overclock kernel, you can certainly expect problems.
[noobquestion]What is this cornerstone everyones talking about? lol [/noobquestion]
Im personally running team EOS nightly build (no cornerstone) with blade's OC kernel running at 1.4Ghz.
I think the ROM works very well. It hasnt really given me any issues except 2 random reboots and 1 semi-freeze (all on the same day lol). Its been running perfect for 3 days now though.
Don't worry about hondroid he is kind of a troll no hard feelings
I have not used CM for quite some time but here is my understanding from having worked with the captivate and transformer for over a year now.
Cyanogen mod is based off of the true source code of andorid taken directly from google and with no OEM's getting their greasy little fingers over them and polluting them with bloatware and skins. From there cyanogen set up a git repository where they have the main android tree as pure as it is and then branches for each device. Then there are plenty of devs working directly on the tree optimizing the core android and adding features which can then be accepted or regected by the otehr devs. Then there is a smaller team of devs on each "Branch" which normally consists of a certain type of processor or chipset. Ex Hummingbird or Tegra 2
The job of the devs there is to integrate that to make it work smoothly and they have the same peer approval system. There are also smaller branches which contain the drivers for most pieces of hardware (Speakers, Screens ect). Then finally there is the device dev there are normally about 5 from my experience but once all the work is done the team can be cut to 1 or 2. They are the people that get it up and running on the device writing missing drivers fixing device specific bugs ect. And once they are done there work they can compile it all together and there we have our nightly.
Then if there is a change in the core all the device devs have to do is recompile and build the rom and there is your next nightly.
The RC happens when they hit a stable nightly or when development has slowed enough that all of the bugs have been fixed
Hope this is helpfull
Thanks to all of your for your responses. I think this is a beautiful conversation that isn't happening enough. All of you have provided great information, that when combined helps to depict the structure of the community we have all grown to love.

Getting Started with ROM Development

I've been around for a while, and flashing ROMs all the time, but I was wondering what it really takes in order to really get going with ROM development. I would really like to put together my own PAC/Rootbox/ReVolt-style ROM, but I don't really know where to get started. I have done a very small amount of Android app development, but I do have experience with Java. Does anyone have any pointers for where to get started, best practices, etc...?
Also included in this question should be this: I have a little experience with Github, but haven't really ever used it do pull requests, forking, and such, and I've only ever really used it for hosting my own projects. Is there a good guide on how to understand that type of stuff, as well as where to do builds, nightlies, and hosting? From what I've gathered from various ROM devs so far is that if you host on Goo.im, that will let you take advantage of GooManager for OTA updates, right?
drinfernoo said:
I've been around for a while, and flashing ROMs all the time, but I was wondering what it really takes in order to really get going with ROM development. I would really like to put together my own PAC/Rootbox/ReVolt-style ROM, but I don't really know where to get started. I have done a very small amount of Android app development, but I do have experience with Java. Does anyone have any pointers for where to get started, best practices, etc...?
Also included in this question should be this: I have a little experience with Github, but haven't really ever used it do pull requests, forking, and such, and I've only ever really used it for hosting my own projects. Is there a good guide on how to understand that type of stuff, as well as where to do builds, nightlies, and hosting? From what I've gathered from various ROM devs so far is that if you host on Goo.im, that will let you take advantage of GooManager for OTA updates, right?
Click to expand...
Click to collapse
As far as the github, you can fork the CM link directly for The GNote 2 as it's supported by them. If it were not you would have to fork a dev that has ported it over. Once you setup your box, ( there are numerous "how to compile custom roms" ) you can compile your rom. Easiest would be to ask somebody that has a "clean" (no customizations) CM build that you can use, and make your own mods. After that. It all counts on how good you are with coding and making your own mods. Hope this gets you started. Youtube and google are good places to start. I always refer Android Dev section for my repos and how-to's.
It takes, above all else, patience. start here
http://forum.xda-developers.com/showthread.php?t=1946481
Chasmodo dev gives me a link where you can see tons of guide and tutorials… good for noobs but also for advanced devs… I would like to compile an aosp for n5100 that is unsupported by cyano team at the moment… so I think that is too hard
http://forum.xda-developers.com/showthread.php?p=41491498
Inviato dal mio GT-N5100 con Tapatalk 2

I need help of all of you, please

I've been around in this community since 2009 if memory serves me correctly.
All this time I learned a lot from you, the community. I thank because it has served me well and thank you 1 million for the help and what they learned on the road since I joined this prestigious community.
I nedd some help.
I have long flashing, rooting, restoring and etc.
I have the full knowledge of everything about android now I want to go further and enter into the world of cooking roms
I need a mentor and people who can help me, pleasem is very apreciete
EddiePR said:
I've been around in this community since 2009 if memory serves me correctly.
All this time I learned a lot from you, the community. I thank because it has served me well and thank you 1 million for the help and what they learned on the road since I joined this prestigious community.
I nedd some help.
I have long flashing, rooting, restoring and etc.
I have the full knowledge of everything about android now I want to go further and enter into the world of cooking roms
I need a mentor and people who can help me, pleasem is very apreciete
Click to expand...
Click to collapse
You are most likely not going to find someone to show you the way. What I would recommend to you is get a nexus device or a phone that has good, solid aosp, cyanogenmod or whatever builds you are interested in and start building. When you are compiling builds from source it can be as simple as copy and paste commands into terminal or you can actually learn what each command is doing, such as make or make clean/clobber, it's up to you. You can also cherry pick certain features you may want or exclude those you don't etc.
I would not recommend the note 5 as a phone to try and learn on as you are pretty limited in what you can do currently, unlike a nexus device or something else that's supported you are not compiling with Samsung builds but rather taking a clean base and adding or removing, porting features etc. It's either a stock build, a build that has everything plus the kitchen sink tossed in or a build that's been cleaned out of stock or bloat apps/services. That's about all you can currently do with the note 5.

Categories

Resources