[Need] AOSP Reading Materials - Nexus S General

Hi all,
I'm looking for recommendations on reading materials. I have been rooting and modding since my Epic and am looking for books on working with AOSP. I want to learn the correct way to do things so I figured there is no better place to go but than to my fellow XDA brothers for advice. Thanks

Everyday I look thru the cyanogen GitHub commit history and study yhr code changes. I also look thru the official Google repo.
Nothing helped me learn more than setting up my own build environment, pull down the source, compile and flash to my device.
Then practice making code changes and compile and test.
Cyan is best place to start.

Related

[Q] Is there a full detail guide to rom building?

Hey guy's (please don't flame me to bad still a little new to the forums) I have looked over many guides but they don't really go over Samsung mostly HTC. I have the source from Samsung for the 2.1-update-1 and have been looking at it but not sure what i am really looking at. If anyone can maybe shed some light on it...of course i could be just confusing myself and its simpler then i think. I have been reading a paper on how to build linux from scratch to get that understanding considering Android is linux in all reality...
Thanks ahead of time guys.
Not to be mean, but unless you understand the code, all you'll be doing is copying/pasting into terminal to get a build. Which isn't very useful if you are trying to learn something.
If you are actually looking at building the OS and manipulating the underlying code, go ahead and grab a C book. It'll take even an intelligent person a good deal of time to understand it all.
As far as putting some APKs into a zip file and calling it a rom, well there's tons of stuff on that laying around, most of that is scripting. If you get into rebuiling the APKs with Smalli - there is code involved there - but you will need to know how java works for it to make sense to you there...might as well learn that while your at it.
Well i know C++/C# and java (took them in college and currently use them for my job) so it shouldn't take too long..i guess i just need to dig into the code and go from there. I don't want to copy past thats definitely out of the question. Have any pointers where i should start and see if i can grasp this or just stick with using other custom rom's which in the end if thats what i do that's fine by me just wanted to get into it myself.
PS: didn't take what you said as mean lol any criticism or help is always appreciated.
^
What he said.
There are a bunch of mini-guides to teach you to copy and paste some stuff, but little in terms of a clear concise guide. I've been working on learning to do a rom myself, but I learned to program in C and Java on unix and linux machines in college. You're going to have to spend a lot of time reading and learning things that you won't be sure you'll ever really need to in order to do any meaningful dev work with that source.
Start using linux on a home machine. Start learning C. And pick up a book called "Advanced Programming in the Unix Environment" to begin to understand how the low level parts of a linux operating system work. Then you will be much better prepared to see how it all works together.
edit: Looks like we both replied at the same time. I guess you can ignore the above post.
lol, i will look into that book for sure though. I have been slowly getting back into linux i use to use it all the time then somethings i was working on and a few apps i was using i had to switch to mostly Microsoft and lost a lot of my Linux knowledge (which sucks) but i will start there thanks again!
I think if you are familiar with the code you are ready for what you want to do. Seeing as how you are reading htc development guides tells me your searching cause that's all that you can really find online. You dont know the steps to take to actually build that source your looking at. First thing is you need your development machine set up to build. I hope youve done that already if not, source.android.com will get you through that. You need the sdk and all that. Next you hook the phone up usb debugging and from within your android folder (mydroid) run extract.sh that willful the samsung files into your environment. From here it will be similar to the htc guides for building but you have the files in front of you to edit you just need to research the structure of linux and those files. Also you need to get familiar with building a kernela well to see how they interact. Good luck
Sent from my SPH-D700 using Tapatalk

[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.

[Q] developing roms, where to start?

With the newly deodexed honeycomb I have gotten the itch to start looking into how to create/develop my own rom.
What is the best way to start learning, is there a good starting point, I have been doing some reading but it just seems so overwhelming.
I do have basic Linux knowledge and can whip up a linux VM in no time to get crackin. I have been modding my EVO for the last year so i know how to be a "user" and have tinkered with the xoom but have only scratched the surface.
So my question is just this, Where to start??
any input would be helpful.
+1!
need a little walkthrough too :S!!
and someone can say what files NEVER EDIT to not brick the xoom!!
i too would be highly interested in learning what steps to take.
bossjeeves said:
With the newly deodexed honeycomb I have gotten the itch to start looking into how to create/develop my own rom.
What is the best way to start learning, is there a good starting point, I have been doing some reading but it just seems so overwhelming.
I do have basic Linux knowledge and can whip up a linux VM in no time to get crackin. I have been modding my EVO for the last year so i know how to be a "user" and have tinkered with the xoom but have only scratched the surface.
So my question is just this, Where to start??
any input would be helpful.
Click to expand...
Click to collapse
Get that VM set up, and get your environment set up so you can build AOSP.
Look through the source so you know what parts of Android are found where in the tree.
Learn a little about the platform, what does what...
Basically, just get your hands dirty.
ydaraishy said:
Get that VM set up, and get your environment set up so you can build AOSP.
Look through the source so you know what parts of Android are found where in the tree.
Learn a little about the platform, what does what...
Basically, just get your hands dirty.
Click to expand...
Click to collapse
so this is kind of what I expected for an answer but I would like a little more if you dont mind.
Like maybe a couple of links pointing in the right direction, like what does the environment need for tools etc.
ydaraishy said:
Get that VM set up, and get your environment set up so you can build AOSP.
Look through the source so you know what parts of Android are found where in the tree.
Learn a little about the platform, what does what...
Basically, just get your hands dirty.
Click to expand...
Click to collapse
That's like saying jump in a lions den and see what ticks him off. Can we get more details please? I want to get into theming and want to know the ideal OS to do it on. I was hoping on doing it in Linux but want advice from themers.
IV been playing hippie for a couple of weeks so I don't know if I missed something but, unless the full AOSP source has been released, a deodex rom will help with nothing but theming.
You can't do much to customise a ready built rom, and you would be wasting your time to try anything but the simplest of mods.
That being said, if you're happy to play with smali you might achieve a little more.
Sent from my HTC Desire using Tapatalk
alias_neo said:
IV been playing hippie for a couple of weeks so I don't know if I missed something but, unless the full AOSP source has been released, a deodex rom will help with nothing but theming.
You can't do much to customise a ready built rom, and you would be wasting your time to try anything but the simplest of mods.
That being said, if you're happy to play with smali you might achieve a little more.
Sent from my HTC Desire using Tapatalk
Click to expand...
Click to collapse
this is exactly what I am talking about here, This is kind of why I brought it up in the xoom forum, since we dont have source and we do have a deodexed rom wouldnt playing with that be a great place to start? if so like what would be the best place to start, you say play with smali, now I know I can google and get tons of answers but I am asking to explain a little more because I trust the feedback from here and I think others might benefit also
bossjeeves said:
this is exactly what I am talking about here, This is kind of why I brought it up in the xoom forum, since we dont have source and we do have a deodexed rom wouldnt playing with that be a great place to start? if so like what would be the best place to start, you say play with smali, now I know I can google and get tons of answers but I am asking to explain a little more because I trust the feedback from here and I think others might benefit also
Click to expand...
Click to collapse
Smali is a tool that will reverse engineer (baksmali) dalvik byte code into (barely) human readable code. If you can learn to understand this you can reverse and modify stuff with it. If i remember right, brut.all is the guy responsible, have a read around, but i warn you, its not for the feint of heart.
Macbots drool as I XOOM through the Galaxy to my hearts Desire.
bossjeeves said:
this is exactly what I am talking about here, This is kind of why I brought it up in the xoom forum, since we dont have source and we do have a deodexed rom wouldnt playing with that be a great place to start? if so like what would be the best place to start, you say play with smali, now I know I can google and get tons of answers but I am asking to explain a little more because I trust the feedback from here and I think others might benefit also
Click to expand...
Click to collapse
Here is one of the best sources I've found....... made by cyanogen himself, tonnes of info here.
http://forum.xda-developers.com/showthread.php?t=667298
I did come across this link http://simply-android.wikia.com/wiki/ROM_Development
looks like something that would be a helpful start. thoughts?
ps thanks for the replys
I think the best way to learn anything is just to read a lot, and to search for any questions you have. There are a thousand ways to learn to hack, but they all require the initiative to find answers on your own.
Sorry if this sounds patronizing. I always hated it when I get on a board and ask for something, and some curmudgeon geek tells me "Google is your friend". But it's true. You get better answers faster, as you can avail from the entire Internet, as opposed to the small number of people who reply to your query.
Thanks to the dude who linked to the Cyan advice post. My takeaway is this one line:
"There is a *ton* of information out there but any kind of "step-by-step rom cooking guide" is going to be a complete fail- it's too broad of a subject."
IMO if you are serious about ROM hacking, you need a dedicated linux environment. Cygwin is OK for run-time stuff, but too limited for anything else. If you only want to run basic bash commands, a simpler solution is win-bash (http://win-bash.sourceforge.net).
I'm kinda in the same shoes you are. Android interests me, although I don't have a Xoom or an Android tablet for that matter. Was gonna get a HC tab to tinker, but HC is still too green, so decided on a Nook Color for educational purposes. It's been out a while, and has many hacks already done that I can peruse. That, and it'll be useful for my "read a lot" mantra above.

How can I become a Developer for the Galaxy S3?

I have done some basic programming in the past, but what knowledge is needed to jump into custom developing, I am not interested in developing apps per say, I am more interested in developing like Cyanogen Group and many of the awesome Devs on here making Kernals, and Custom Roms, etc. I tend to have some free time on my hands lately, and I figure, instead of waiting for everyone else to do the work, maybe I can do some work and contribute.
If you have any information, please point me in the right direction, with tips, advice, videos, and warnings.
Thank you in advance. :good:
Hey man, i too am interested in developing i use eclipse and can do quite a bit of java and im ok with debugging, if you ever have a project you want to start i would be interested in helping. watch videos on steve kondik. cm has quite a few urls. but from what ive been told is get a rom and import it into eclipse and make some changes and put your own stuff up on xda.
check out this screen shot, has the cm urls on it and the video of steve kondik who talks through tips of building cm and how to start and what it takes hope it helps
twayneo said:
Hey man, i too am interested in developing i use eclipse and can do quite a bit of java and im ok with debugging, if you ever have a project you want to start i would be interested in helping. watch videos on steve kondik. cm has quite a few urls. but from what ive been told is get a rom and import it into eclipse and make some changes and put your own stuff up on xda.
Click to expand...
Click to collapse
twayneo said:
check out this screen shot, has the cm urls on it and the video of steve kondik who talks through tips of building cm and how to start and what it takes hope it helps
Click to expand...
Click to collapse
Thank you, I will check those out. I realize this maybe way over my head, and by the time I can actually program something worthwhile on Android, there will be a Samsung S8 ... lol, but you have to start somewhere, I would like tips by those who have progressed.
I like the idea of simply editing a already made rom, this would be more like tweaking, but at least I could see some action.
maybe you can try to gather a group of 8 more developers, or people who want to learn, and you guys can all create a "circle" on google plus, and do a Google hangout where you can verbally talk with each other, ask questions, and share your desktop so others can see you working/creating a rom, so that way, all 9 of you future devs will have a visual and audio learning experience. that's the fastest/best way to learn and progress. so if you're interested, post your google plus profiles and people who are interested can post their profiles and everyone who is interested in doing this can add each other and make it happen. i personally have no interest in developing/creating roms. just throwing this great tool out there for those who are interested. Maybe a new pioneering team, will form out of this? maybe a cyanogenmod equivalent, or a team kang equivalent.
My suggestion is to learn to theme first. Theme something that isn't dependant on 9.pngs cause those are a bit more complicated. Building custom Roms is fun, but very detailed and time consuming. After you get the theming down, cut a stock Rom up a bit and theme it and presto, custom Rom. I learned from a thread by theimpaler. I think it was called, "so you want to learn to theme".
Sent from my SCH-I535 using Xparent ICS Tapatalk 2

Building a rom from scratch

Hi everyone.
I'm typing this from a phone so sorry about spelling.
I have some dev experience mostly in c# and a bit of java a long time ago.
As a project I want to build my own Rom ground up.
I realize the immensity of the task and I know you also have the xda university as a resource.
I want to primarily develop a Rom user interface first then begin developing integrated apps. I realise I could use a stock Rom for this too
Tldr: can you recommend a recent cheap phone with nfc which Is easy for Rom development
I believe Moto G3 should be right for you (don't know if it has NFC).
The source ,drivers etc are easily available.
It should make everything easy.
Also I would like to add don't try to build a UI from scratch, instead build from your device source from CM or elsewhere.
And buddy you posted this in the wrong section.

Categories

Resources