Learning to Build/compile - Epic 4G General

I've had android phones for a while now, and I've always been interested in how to build custom roms, compile kernels, and so on, but no one has ever been willing to point me in the right direction to help.
If anyone can show me some really good info I can use to learn it would be greatly appreciated.
Thanks

BThomas wrote up a good how to for a bunch of stuff.
http://forum.xda-developers.com/showthread.php?t=967290
and there is a another build thread here
http://forum.xda-developers.com/showthread.php?t=968794
Use some of that and search and ask questions. Most of the devs seem to be VERY helpful as long as they are legit questions.

Teaching someone how to compile code is not easy...it's not always the same steps for every type of device. There are any number of things that can complicate the process.
Do you have any experience at all with writing/editing code? If not, you probably don't want to start by messing around with the kernel.

No dev experience or history. I don't care whether its the kernel/rom/whatever, I just want to learn to do this stuff so in the future, I can release good things for our users here, or so if I dont like my options I can always create my own stuff. You know?

Related

want to learn how to do stuff

so i would like to learn how to do things for my phone and possibly help with the dev community. but i know practically nothing about linux or how to do anything useful. i am looking for links or other useful information to help me get started. i have lots of time on my hands and learn pretty quick. i assume i would start with the sdk (would i use the 1.5 one since thats what our phones are currently running on, or is the 2.0 out yet? and would i try from there), but other than that have no idea what else would be useful.
so.... yeah. helpful link to good info or any good e books, or anything like that that will get me going. thanks in advance
i would use the newest SDK, 2.0.1, and make sure that it will function on the emulators for both 1.5 and 2.0.1, frankly if you arent already proficient with linux or java, this wont be a easy thing to get into. However I WILL point out how threads like this are terribly pointless... you arent helping anyone out, and frankly you're asking for information that is quite available.
thanks for nothing. other than making me feel stupid.
Some help, maybe.
ix3u said:
thanks for nothing. other than making me feel stupid.
Click to expand...
Click to collapse
I've been spending quite a bit of time on the threads here, I too am in search of more information specific to the android. I don't know that I'll ever be able to contribute too much to the devs, but at least I can understand my phone better, and help out with answering questions on the forums.
I would think that starting with something like creating a theme would be a good place to start, and would get you a little more familiar with the ways of android. Then I would move up into other things, and before you know it you will be much more proficient. It's all about starting somewhere. (and having a good backup)
Here's some posts / links that I have collected that i thought might aid me when i create some time to start the same endeavor...
* Ratcom's guide to creating Theme's
http://forum.xda-developers.com/showthread.php?t=574167
* An Android Developers Guide (with tutorials, and tons of info)
http://developer.android.com/guide/index.html
* How-to's regarding android application development:
http://www.brighthub.com/mobile/google-android/topics/guides.aspx
* Tutorials and exercises
http://blogoscoped.com/archive/2007-11-19-n27.html
I haven't looked at most of those, but hopefully they will be a good start. I look forward to the day when I start looking at them too.
Hopefully that's helpful, it's all I can offer.
Good luck, and godspeed
-AndyS-
thanks., that is more like what i was looking for
jmhalder said:
i would use the newest SDK, 2.0.1, and make sure that it will function on the emulators for both 1.5 and 2.0.1, frankly if you arent already proficient with linux or java, this wont be a easy thing to get into. However I WILL point out how threads like this are terribly pointless... you arent helping anyone out, and frankly you're asking for information that is quite available.
Click to expand...
Click to collapse
Hmmm. So much for helping someone out who at least has the desire to learn and grow to be more. Communist much? or just a Liberal Democrat? I applaud him for trying. Who knows more about where to get the information other than XDA? Hell a google search on this stuff turns up mostly useless garbage anyways. Why spend hours digging it up when someone else may know a good resource.
Lets refrain from flames/rebuttals please.
I have a few FAQ's and tutorials on my site. Also checking things like my release notes and mind map (linked in v1.0 release) will help. There aren't any full on tutorials but it's just a good place for general info.
Check my sig.
As flipz stated, there's no good centralized place for organized information. The best advice is truly to search this site, and search with google. It's an uphill battle getting that base of knowledge built up to get you going. I know, I'm still working my way up the hill. I thought about putting a site together to organize and share information but that would take away too much from what little time I have to spend on rom developement.
I doub't that is really the answer you were hoping to get but unfortunately thats the grim reality of things. Perhaps someone with a lot more free time than I, will put together a site of their own and compile and organize all kinds of good information in a central place. It would truly be a boon to the android community.
obelisk79 said:
As flipz stated, there's no good centralized place for organized information. The best advice is truly to search this site, and search with google. It's an uphill battle getting that base of knowledge built up to get you going. I know, I'm still working my way up the hill. I thought about putting a site together to organize and share information but that would take away too much from what little time I have to spend on rom developement.
I doub't that is really the answer you were hoping to get but unfortunately thats the grim reality of things. Perhaps someone with a lot more free time than I, will put together a site of their own and compile and organize all kinds of good information in a central place. It would truly be a boon to the android community.
Click to expand...
Click to collapse
I'd be happy to bring some writers on to my site or to host some tutorials or anything that others have written. My job offers me a lot of flexibility and free time, however like you I am spending all of it developing right now. This kitchen is kicking my butt.
Edit: We'll see if I get any hits. http://geekfor.me/news/wanted-writers-for-faq-tutorial-help/
I may be able to help. My freetime seems to come and go, but I’ve always been pretty good at making How-To’s.
What format would be best?
html,pdf,etc…
ix3u said:
so i would like to learn how to do things for my phone and possibly help with the dev community. but i know practically nothing about linux or how to do anything useful. i am looking for links or other useful information to help me get started. i have lots of time on my hands and learn pretty quick. i assume i would start with the sdk (would i use the 1.5 one since thats what our phones are currently running on, or is the 2.0 out yet? and would i try from there), but other than that have no idea what else would be useful.
so.... yeah. helpful link to good info or any good e books, or anything like that that will get me going. thanks in advance
Click to expand...
Click to collapse
Good thread, thanks for starting it.
I'm in a pretty similar spot. 2 weeks ago I had zero exposure to or knowledge about Android or Linux. I'm proficient with Windows. In the last 2 weeks I've rooted, flashed RA 123, 151 & then 152. I backed up, ran an optimizer .zip file, restored, flashed fresh 1.0 and learned some very cool stuff. I'm comfortable in the terminal but I'm getting to where I'm not sure what I should or want to learn next. Also, although I've done these things easily half of it was just copying instructions from one of the fantastically helpful posts on this forum. Before I learn what to do next I'd like to understand the system better. I checked out wiki and ended up bookmarking a page that explains kernal computing, and a few others, lots of reading ahead
As a noob I have tried to learn without getting in the way too much. I'm glad you admitted your noobness and asked for some direction, you're not the only one who could use it!
obelisk79 said:
As flipz stated, there's no good centralized place for organized information. The best advice is truly to search this site, and search with google. It's an uphill battle getting that base of knowledge built up to get you going. I know, I'm still working my way up the hill. I thought about putting a site together to organize and share information but that would take away too much from what little time I have to spend on rom developement.
I doub't that is really the answer you were hoping to get but unfortunately thats the grim reality of things. Perhaps someone with a lot more free time than I, will put together a site of their own and compile and organize all kinds of good information in a central place. It would truly be a boon to the android community.
Click to expand...
Click to collapse
Sounds like what the original replyee said but said much more tact.
I'm hoping that was a compliment in a round about way.
THIS is an amazing resource. I've stopped in there before but wasn't ready to poke around too much.
I'll see you guys/gals in the spring!
I'd like to offer some insight, but there's really not much more I could add than what's already stated and linked above. Everything you need to know can be found (usually) easily on the android developer site, or in a google search. The hard part is putting those pieces together to know what needs to be done in order to accomplish what. That's not an easy task: check out cyanogen's github projects (http://github.com/cyanogen). He's made modifications to the kernel, Android applications, core frameworks, configurations, recovery images, packaged resources/images, and more. It's not just one piece that goes into these builds.
Most of what you see around here (and this is certainly not to take away from all the great work I'm referring to, because this is just as important as everything else), are people modifying what was already done somewhere else, and making it work for their own phone. And really that's all it takes to move progress forward.
You don't have to be a linux whiz or a Java programmer to be able to make progress with your phone- you just need to understand how each particular piece works in order to make progress on that piece. If you want to make a theme, you need to know what jar or apk files contain the resources, and how to replace those images and styles. If you want to add support for the camera you need to know what linux driver it should use, and how Android expects to interact with that driver. Same for supporting accelerometer sensors, etc.
There's no definitive checklist of things you have to know before you can help development, it just depends on what what you want to help with, and your willingness to research how that particular piece works and what it would take to make the necessary changes.
maejrep,
Informative and encouraging. Thanks!

[Q] How to port or improve hero roms ??

Hi,
Right now i am learning programming, I am interested joining hero ROM development. Are there any short tutorials that I could use or something that would help me to start with.
Thank you
There's quite a lot of foundations to build before you will start to see anything above ground level
Cyanogenmod is the foundation of most ROMs. Their Wiki is a good place to start. They have a lot of tutorials on setting up. For example, look for:
Overview_of_Modding
Howto Install_the_Android_SDK
Building_from_source
Howto Install_Kernels
These pages will give you an overview.
In terms of the programming side, this requires a lot of experience. It will take some time for you to be able to make major contributions.
But having said that, once you have a decent knowledge of C and some understanding of kernel source structure, you can read the source. Look at what others have done and try to understand what is going on.
Get hold of a recent book on kernel programming, such as
Linux Kernel in a Nutshell (Greg Kroah-Hartman - O'Reilly)
Linux Kernel Development (Robert Love)
These are not beginners books, but they do get into the subject at a reasonable pace once you have enough knowledge to start. I think anyone serious about doing kernel work is going to have to learn this sort of stuff to really understand what they're tinkering with.
I don't want to discourage you. Just don't underestimate the size of the task. As a beginner, the best contribution you can make is as a tester. Learn the issue tracker system, make a name submitting clear bug reports. This is not glamorous, but essential for a ROM project.
I found this book very interesting:
Linux Device Drivers
http://lwn.net/Kernel/LDD3/
And thanks codeazure, I'll check those two out as well
codeazure said:
There's quite a lot of foundations to build before you will start to see anything above ground level
Cyanogenmod is the foundation of most ROMs. Their Wiki is a good place to start. They have a lot of tutorials on setting up. For example, look for:
Overview_of_Modding
Howto Install_the_Android_SDK
Building_from_source
Howto Install_Kernels
These pages will give you an overview.
In terms of the programming side, this requires a lot of experience. It will take some time for you to be able to make major contributions.
But having said that, once you have a decent knowledge of C and some understanding of kernel source structure, you can read the source. Look at what others have done and try to understand what is going on.
Get hold of a recent book on kernel programming, such as
Linux Kernel in a Nutshell (Greg Kroah-Hartman - O'Reilly)
Linux Kernel Development (Robert Love)
These are not beginners books, but they do get into the subject at a reasonable pace once you have enough knowledge to start. I think anyone serious about doing kernel work is going to have to learn this sort of stuff to really understand what they're tinkering with.
I don't want to discourage you. Just don't underestimate the size of the task. As a beginner, the best contribution you can make is as a tester. Learn the issue tracker system, make a name submitting clear bug reports. This is not glamorous, but essential for a ROM project.
Click to expand...
Click to collapse
Thanks for good explanation Yap I know it's hard to start since I am beginner. But because I have lot of time and Have "HTC Hero" I think I'll go for it...
Thanks again.

How do I get more involved?

My apologies if this thread already exists but I searched a bit and didn't find too much exactly on topic and there are so many threads archived that it's almost impossible to read them all. I'm new here but I've been extremely pleased with the general atmosphere and the attitude of posters. Following guides and using other peoples' images is fun but it would be really cool to get more involved in the development process. Does anyone have some advice for a beginner? I'm fairly experienced in c/c++ and in using linux but nothing close to kernel hacking. I think that once I have a deeper understanding of what's going on that I could contribute but I'm not sure how to get there. If there's a resource on this then I would be grateful to be pointed towards it. Alternatively, I would be happy to do some next to trivially simple but time consuming programming for someone if it means that I'll learn about what's going on.
Thanks,
foobster
Yeah, this is my plan for the summer.
Anywho, learn how to grab stuff from the repo, branch stuff, and whatever else you want to learn. Good starts here:
http://nookdevs.com/
http://git-scm.com/
http://wiki.cyanogenmod.com/index.php?title=Compile_CyanogenMod_for_Encore
Check out the changelog here, and see if you can follow along:
http://cm-nightlies.appspot.com/?device=encore

[Q] Noob question

OK, well I've finally decided to take a dive into the WONDERFUL world of development (specifically android related). i have some experience and know how most things work. I am a bonified flash junkie lol. anyway i'm wanting to learn how to tweak/customize various things, such as porting controls to a status bar, or adding features to the lockscreen ect. However, i don't know what programming language i need to learn or really where to start for research.
Would someone kindly point me in the direction of a good beginners guide on what i need to know.
with regards,
Tiwey, Future developer (i hope)
Java is a good place to start. java java java
Good info on this thread, perhaps we can build it up to be a general beginners dev guide...I think it would help if there was one.
http://forum.xda-developers.com/showthread.php?t=1173176
There seems to be a lot of demand for this. To the point I'm thinking of contacting some colleges in my area to see if they would add an Android course to curriculum and hire me as a lecturer
I like Reto Meirs (sp?) book on Android 2.

Need help building RR

So first, off, I apologize at my anger your gonna see here.....I have been asking and messages devs and others for help on learning to building and no one has really helped me!!! Here in XDA you all say your here to help people and future Devs.....well ****ing help me!!!! I have been asking around for months and only 1 person has tried to help!!!! If u are experienced and know how to build...my email address is [email protected] for hangouts.
@daveyannihilation please help
No one is going to assist you privately - the point of a community of helpers is to make it so that the information is available for any others that have the same issue as you in the future. By demanding someone contact you privately, that information is lost to everyone but you and that person.
I'd recommend you create a new topic, minus the emotions, and follow proper forum etiquette.
Briefly state what you're looking for help with in the subject - don't use abbreviations regardless of how simple you may think they are.
Go into detail in the first post (the OP) as to what you're trying to do - again, don't use abbreviations.
Explain your hardware setup, steps you've already attempted, and ideas you have at things that you believe may fix it but haven't tried yet.
Hi James,
Not really sure why you tagged me in this thread because I have no experience whatsoever in building ROMs, but I will try to help you. I would however strongly suggest building an easier ROM as your first try. Have you had a look at @nathanchance 's Android-Tools guide? That explains exactly how to build everything from start to finish. I suggest having a good read through it and trying your hand at building something like AOSP before you move onto attempting to build custom ROMs.

Categories

Resources