• After 15+ years, we've made a big change: Android Forums is now Early Bird Club. Learn more here.

Root How to make ROMs?

tusing

Android Enthusiast
Hello, everyone.

A few posts here have got me thinking about getting into the ROM-making or ROM-building community. As I don't have the necessary experience to participate in helping build ROMs (heck, I can barely use Github without a guide), I would like to know what I need to do, and where I can accumulate the experience necessary to help build ROMs and take an active part in development with the rest of the community.

Any ideas?



EDIT: I'm not that new to computers, though. I'm comfortable with booting into different OS's, with building computers, I know how computers work, can navigate around most GUIs.

I just can't use the terminal without a guide, and don't know any programming.
 
Stock based or from source?

From source.

I would love to know the basics. Anyone can follow a guide about Git and punch in a few commands.

But I want to know HOW to make a ROM- How did tickerguy hand-design the code needed for the CM7 ROM? What are the principles behind the source code in a ROM? Stuff like that.

After dabbling in HTML for a few weeks, I came to this conclusion:
Anyone can follow a guide on coding. But does that mean they really KNOW programming? To my understanding, no.

I want to KNOW about the process of making ROMs, how it works, what the source code does, and what it means. Any place I could find out about this stuff would be great! What did people like Whyzor, Tickerguy, Mantera, and Isaac use to learn their stuff?
 
From source.

I would love to know the basics. Anyone can follow a guide about Git and punch in a few commands.

But I want to know HOW to make a ROM- How did tickerguy hand-design the code needed for the CM7 ROM? What are the principles behind the source code in a ROM? Stuff like that.

After dabbling in HTML for a few weeks, I came to this conclusion:
Anyone can follow a guide on coding. But does that mean they really KNOW programming? To my understanding, no.

I want to KNOW about the process of making ROMs, how it works, what the source code does, and what it means. Any place I could find out about this stuff would be great! What did people like Whyzor, Tickerguy, Mantera, and Isaac use to learn their stuff?
well im not much help in that department, but hopefully one of them can give you the information you need. :)
 
Anything you can help in will be great!

well the only thing i built from source was a froyo kernel. and it was from b_randon's source. he also had everything setup so all you had to do was type 3 commands and it would build :D

i can help with theming though...
 
I'm in the same boat. I want to know how the inner workings work. I read that Whyzor IS a programmer with years of experiance and is playing with his ROM for his bennifit mostly. I work over 50 hours a week and have a life with my family so it's hard to weigh the idea of learning a couple of program languages.

But on the other hand, I seem drawn to it, so I think I'll download a book or two on the subjects.
 
I would love to know how to take device from it stock rom and pull the stuff from cyanogenmod and make my own rom from scratch.
I mean If I bought a new phone how would i start compiling for cm7?
I mean I can sort understand since I have been building for 3 diff phones for the last 2 years but im still confused on how it all goes together, and there arent a whole lot of guides.
 
In my experience, alot of what I have learned about all this has been from merely reading the code and making connections through the paths in the source. Now, I know it takes a really long time to read through the stuff in the source, but there's also our BEST FREIND... Google. Every time I've needed an answer for a question regarding a ROM issue, or building issue, I usually use google for answers. Sometimes I strike gold, sometimes I'm swimming in shite. That and having a knowledgeable C and C++ programmer in the family. Also, let me not forget the assistance of the devs here and elsewhere to get things going smoothly.
 
When I rooted and flashed a custom ROM for the first time, I was pretty much just following a guide step for step. But eventually I got the hang of it and now I'm kind of an "expert" at that kinda stuff (not really, but you know what I mean lol). I'm sure getting into ROM development is kinda the same way. I know there's a few guides here on the MT forums and I'm sure there's plenty on google. I've been wanting to eventually dive into it at some point. Maybe even some app development as well.

In my experience, alot of what I have learned about all this has been from merely reading the code and making connections through the paths in the source. Now, I know it takes a really long time to read through the stuff in the source, but there's also our BEST FREIND... Google. Every time I've needed an answer for a question regarding a ROM issue, or building issue, I usually use google for answers. Sometimes I strike gold, sometimes I'm swimming in shite. That and having a knowledgeable C and C++ programmer in the family. Also, let me not forget the assistance of the devs here and elsewhere to get things going smoothly.
I have some limited experience in C/C++. Is that mostly what this stiff is related to?
 
I have some limited experience in C/C++. Is that mostly what this stiff is related to?

There's java mixed in there too, but you would get what I'm talking about... It's all about reading the code, comparing (for ports) and trying things (trial and error-- alot of error lol). Eventually things start to work. Also has alot of searching involved to find exactly what you're looking for. I'm no expert, but I can decifer code to an extent. I've been able to half learn smali to get the gist of how apk files work. Esentially, its a different form of java. Designed to function in Android.
 
Most of what I learned in college about programming only applies when there's a bit of new code I need to write. It's like learning advanced algebra in grade school, but not using it actively, just knowing the theory helps figure things out. Otherwise everything is learned by following guides, start with the basic ones like building for CM7. Then when you hit a wall, google for answers. Or look at github for others modifications to try to understand what they did. You can't run before walking first.

In a few years there may be college-level courses for this kind of stuff, but this is mostly new territory. I'm pretty sure most of the devs here have worked in a job programming for 1-2 years at least (Mantera, progmanos, yumbrad, maybe except Isaac, who I believe is getting a computer science degree). Tickerguy, who did a lot of the hard stuff, has the most experience in embedded systems, which is what this stuff is.
 
*off topic*
Whyzor, I just did a new build based on your and mantera's setup (CM7) with a sync. Do you think the little weird things that have been happening are fixed? It did pull alot of new information down on the sync, even though I had to do it a few times.
*/off topic*

And yes, I do agree with your post. For me it's been alot of trial and error, and learning what/how to do things along the way.
 
I don't have any "weird things" when I sync & build :) Feel free to ask questions in the build CM7 thread.

Some of us also have picked up experience over the years working in the field, and can spot problems or troubles based on something similar in the past. It's harder for someone with little/no experience to pick things up since every minor problem is a huge obstacle to get past, there's a very steep learning curve. But it's good to learn new things and keep skills sharp, it may help you land that next good job.
 
I don't have any "weird things" when I sync & build :) Feel free to ask questions in the build CM7 thread.

Some of us also have picked up experience over the years working in the field, and can spot problems or troubles based on something similar in the past. It's harder for someone with little/no experience to pick things up since every minor problem is a huge obstacle to get past, there's a very steep learning curve. But it's good to learn new things and keep skills sharp, it may help you land that next good job.


And that's why I'm here.... I watch alot of your posts and write down things that may be useful later when I might become the great rom porter or android 6.0 jelly bean
 
android 6.0 jelly bean
This reminds me, Google say there trying to stop the breakage in android, to many fragments with 4.0; but how are they going to update android when Google creates new features. There will always be breakage...
 
This reminds me, Google say there trying to stop the breakage in android, to many fragments with 4.0; but how are they going to update android when Google creates new features. There will always be breakage...


Good question... as long as were better than ios, I don't care lol :D
 
The only true breakage they're solving is with tablets and smartphones....

The main reason why it's called 4.0 instead of 2.4...since tablets are 3.0
 
This channel might be a good start. Saved this one a long time ago for future use (thanks Reddit :D)

TheNewBoston - Android Application Development - YouTube

It's not really a guido guide to ROM building but I'm sure there are things in there that could definitely help...especially if you're planning to develop apps in the near future. It's quite an amazing video tutorial channel. I tend to watch them now and then but due to lack of experience I get lost pretty easily. >.<

I suppose the official Cyanogenmod development forums would be a great start too for guides and advice on rom building.
 
Back
Top Bottom