Kernel development questions - Galaxy Note GT-N7000 Q&A, Help & Troubleshooting

Hello. I don't know if this is the correct forum to post my question (I would rather put it in the Android Development section) but as I don't want to contaminate the quality of that forum with (maybe) stupid questions, I will ask here. If a moderator feels it's not the right place, please feel free to movemy post wherever.
I started building Galaxy Note's (N7000) ICS kernel following the Howto from here XDA forum.
I am looking for the JB Kernel source at samsungs website but couldn't find it. Just ICS and GB versions. Where do the developers get the JB kernel source from?
I also would like to integrate CWM recovery on my kernel build, but couldn't find any info/howto/tutorial.
I guess I have to integrate the sources found at https://github.com/ClockworkMod/www.clockworkmod.com with the kernel. Could someone point me in the right direction?
I have Linux experience and had build custom kernels for my own computers, so that, linux batch scripting, C/C++ is no problem.
Thank you very much in advance.

Related

[Q] Android development

Let's say that I wanted to get into android rom development, what would be a good place to start to learn. I've downloaded several e-books about android development, but they all pertain to writing applications for android OS, not really getting into modding the OS itself. I suspect I'd need to learn about linux then translate that knowledge to android?
Anybody have any good places to start or good reference materials?
It appears that none of the cyanogenmod team is even going to do anything with the Captivate, they're all working on I9000 and Vibrant, totally ignoring the Captivate. So, I thought I'd get in there and try and learn.
Building Android from source - their own site is the best for instructions on how to build android: http://source.android.com/
Building Captivate requires downloading the sources, building the kernel using the build_kernel.sh after you've fixed the toolchain paths. Or you can just use the usual linux kernel building method that the script actually does underneath.
Then you need to build eclair (or froyo). Samsung has opensourced most of the code but not all so you need to figure out how to merge vanilla eclair source into Samsung's tree, and build it. There is a readme in the source from Samsung about what to change in the build files.
You're going to be doing a lot of googling . . . I haven't figured out all the details of the Samsung eclair build so you're on your own there. Maybe others can chime in.
-Atin
atinm said:
Building Android from source - their own site is the best for instructions on how to build android: http://source.android.com/
Building Captivate requires downloading the sources, building the kernel using the build_kernel.sh after you've fixed the toolchain paths. Or you can just use the usual linux kernel building method that the script actually does underneath.
Then you need to build eclair (or froyo). Samsung has opensourced most of the code but not all so you need to figure out how to merge vanilla eclair source into Samsung's tree, and build it. There is a readme in the source from Samsung about what to change in the build files.
You're going to be doing a lot of googling . . . I haven't figured out all the details of the Samsung eclair build so you're on your own there. Maybe others can chime in.
-Atin
Click to expand...
Click to collapse
Thanks. Thats what I'm talking about, a lot of what you said seems Greek to me. I'd like to learn how to do all that. I guess, just read a lot from the google source website?
My advice would be to first learn how to go muck in the linux kernel and the Android sources in general. The Captivate code has been hacked some by Samsung so it doesn't quite follow all the rules about where files are supposed to go (there is no vendor tree for example) but at least it is a start. The google source site is the best for instructions on how to do vanilla stuff that's not hardware specific. Google around for more specific instructions related to the particular problem you are trying to solve after that.
Building working stuff at this level isn't easy. Unless you are somewhat experienced or willing to spend a lot of time learning and making mistakes, I'd say leave this to people who have some experience at this level and come back to it when building for the Captivate is well understood and the knowledge has been distributed enough so lots of people can help you when you have specific questions (no one likes answering general "how to" stuff on a device specific thread).
-Atin

[Q] How to get started making captivate roms

Hey Guys,
I'm a developer for a living, and I'm interested in possibly working on a custom rom for my captivate. I was doing some research on how to get started, but the stuff I found was for HTC phones and involved using a starter that only works for HTC stuff.
Where can I go to find information on doing this? I'm largely interested in trying to port gingerbread, but my understanding was that until we have the full source this wasn't really possible (at least for something actually useable on a daily basis). I see supercurio is working on gingerbread, so information specific to this would be really helpful.
Thanks guys, and sorry if this should have been put in the QA section, I figured it was related to development, and could possibly be a sticky if it leads to useful info.
Pretty broad question. First requirement, is obviously...learn java.
I'm not sure if there's any specific "HOW-TO CODE YOUR OWN CAPTIVATE ROM" threads anywhere; there's general information available on http://developer.android.com , but modifying ROM's depends on the device it was written for.
As far as porting gingerbread, it will be very difficult without source and will definitely require quite a bit of kernel work. For information specific on this, supercurio would be the one to ask. Of course, the IRC's are also a great place to get information.
By the way, welcome to XDA! And I commend your motivation to develop stuff for the community here.
http://forum.xda-developers.com/showthread.php?t=869614
Doc over in the I9000 forums has the above thread started. I look there.
geokhentix said:
Pretty broad question. First requirement, is obviously...learn java.
I'm not sure if there's any specific "HOW-TO CODE YOUR OWN CAPTIVATE ROM" threads anywhere; there's general information available on http://developer.android.com , but modifying ROM's depends on the device it was written for.
As far as porting gingerbread, it will be very difficult without source and will definitely require quite a bit of kernel work. For information specific on this, supercurio would be the one to ask. Of course, the IRC's are also a great place to get information.
By the way, welcome to XDA! And I commend your motivation to develop stuff for the community here.
Click to expand...
Click to collapse
Again, I am a developer for a living. I know Java, I'm not looking for coding tutorials. I'm looking for information specifically regarding the captivate.
As far as gingerbread, it sounds like what you are saying is that what people like supercurio are working on is not really gingerbread? More of a Frankenstein created with the sdk, mashing together 2.2 kernels and what has been released for 2.3?
lbbo2002 said:
http://forum.xda-developers.com/showthread.php?t=869614
Doc over in the I9000 forums has the above thread started. I look there.
Click to expand...
Click to collapse
Looking at that thread, it appears the roms being made are just edited versions of already compiled roms? Is samsung not required to post the full source of their roms?
I'm assuming the issue with starting with the original android source, is that we wouldn't have drivers for half of the hardware in the phone. Is the only choice then to load the already compiled drivers from the samsung builds into the rom?
epoplive said:
Again, I am a developer for a living. I know Java, I'm not looking for coding tutorials. I'm looking for information specifically regarding the captivate.
As far as gingerbread, it sounds like what you are saying is that what people like supercurio are working on is not really gingerbread? More of a Frankenstein created with the sdk, mashing together 2.2 kernels and what has been released for 2.3?
Click to expand...
Click to collapse
There are different levels of making ROMs IMO.
You can combine work from others and make your own ROM. This requires no coding experience. For instance, I took JH7_OTA, dropped in Atinms Voodoo 3 kernel, removed bloatware, added my own custom framework (icons), etc., signed it and flashed it.
Then there is the whole Kernel side of things that requires an entire development environment (Linux) and C/C++ programming skills. I'm trying to get to this point. You can start by downloading the source and building it in your own environment familiarizing yourself with the codebase.
Indeed. Packing a ROM and making the contents of the ROM are two different sides of the spectrum. Even some minor framework modifications can be performed by the most tech-inept, as long as they have a good resource to work off of.
epoplive said:
Again, I am a developer for a living. I know Java, I'm not looking for coding tutorials. I'm looking for information specifically regarding the captivate.
As far as gingerbread, it sounds like what you are saying is that what people like supercurio are working on is not really gingerbread? More of a Frankenstein created with the sdk, mashing together 2.2 kernels and what has been released for 2.3?
Click to expand...
Click to collapse
I was only prodding fun when I mentioned learning Java, just to break the ice. All I'm saying is trial and error is the best way to learn Android if you're already a decent programmer. Without knowing what the source code looked like before Samsung owned it, we don't really have a base environment to work off of, which means we are modifying work that was already modified from stock; which is why it will be pretty hard to find a lot of definitive coding information about the Captivate.
Supercurio isn't making a frankenstein 2.2-2.3 hybrid. The kernel is where all of the information about your hardware resides. Supercurio needs to take the Gingerbread kernel from the Nexus S, and modify it to run with our hardware. You can't run a 2.3 ROM without a 2.3 kernel; so we CAN'T use a 2.2 kernel to run full gingerbread; and since a 2.3 kernel doesn't exist for the Captivate, he is using the Nexus s's kernel as a base, or as a reference to merge the differences between the two, creating a kernel that will support the Nexus S ROM on a phone that isn't the Nexus S.
epoplive said:
Looking at that thread, it appears the roms being made are just edited versions of already compiled roms? Is samsung not required to post the full source of their roms?
I'm assuming the issue with starting with the original android source, is that we wouldn't have drivers for half of the hardware in the phone. Is the only choice then to load the already compiled drivers from the samsung builds into the rom?
Click to expand...
Click to collapse
Correct. We don't have the source code for Froyo yet for the Captivate(or an OTA for that matter ), a lot of ROM's being made are based off of the SGS I9000 2.2 source, and because we have that source, we have a pretty much fully functional "captivated" i9000 kernel.
geokhentix said:
Indeed. Packing a ROM and making the contents of the ROM are two different sides of the spectrum. Even some minor framework modifications can be performed by the most tech-inept, as long as they have a good resource to work off of.
I was only prodding fun when I mentioned learning Java, just to break the ice. All I'm saying is trial and error is the best way to learn Android if you're already a decent programmer. Without knowing what the source code looked like before Samsung owned it, we don't really have a base environment to work off of, which means we are modifying work that was already modified from stock; which is why it will be pretty hard to find a lot of definitive coding information about the Captivate.
Supercurio isn't making a frankenstein 2.2-2.3 hybrid. The kernel is where all of the information about your hardware resides. Supercurio needs to take the Gingerbread kernel from the Nexus S, and modify it to run with our hardware. You can't run a 2.3 ROM without a 2.3 kernel; so we CAN'T use a 2.2 kernel to run full gingerbread; and since a 2.3 kernel doesn't exist for the Captivate, he is using the Nexus s's kernel as a base, or as a reference to merge the differences between the two, creating a kernel that will support the Nexus S ROM on a phone that isn't the Nexus S.
Correct. We don't have the source code for Froyo yet for the Captivate(or an OTA for that matter ), a lot of ROM's being made are based off of the SGS I9000 2.2 source, and because we have that source, we have a pretty much fully functional "captivated" i9000 kernel.
Click to expand...
Click to collapse
Ah, thanks, that's pretty much the information I was looking for.

Budding dev needs some help

Hello all. I've recently been trying to get into Android development, more specifically Kernel development. I've played around with some kitchens and looked at the GB kernel sources from Samsung and tweaked it around.
Previously I previously learned Java to a point where I can put basic lines down and also more advanced stuff but with a bit of help here and there.
I have one question though, what would be the recommended path for creating an ICS Kernel. My plan is to start of with something "stock" and build up but I'm not quite sure what to consider stock seeing as the S1 never got ICS officially. Would I have to use CM9's Kernel sources and if so where do I acquire them.
I also have a good understanding of Ubuntu and its terminal and have a functional idea of what I'm doing there.

[Q] GT-P1000... ICS or ... not ?

Hello everybody...
I have a Galaxy Tab P1000 working on 2.3.3 and CWM installed.
I want to go on ICS but, honnestly, I really don't know what to do
Cyanogen, AOKP, Overcome... :silly::silly:
So, what's the differences ? I'm reading, reading, reading... and it seems to be hard to understand what bring each mod instead of installing one (your tutorials are really easy to understand for a newbie like me).
I don't want a mod where something doesn't work. My tablet is working fine actually and I don't want to screw something so... what's the best ICS mod for a P1000 ?
Thanks for your advices (and sorry for my poor english )
Two major problems.
1) best rom thread isn't allowed in xda. Try them out and find out yourself.
2) there is a q&a subforum for questions (but not for best rom question)
Sent from my GT-P1000 using xda app-developers app
priyana said:
Two major problems.
1) best rom thread isn't allowed in xda. Try them out and find out yourself.
2) there is a q&a subforum for questions (but not for best rom question)
Sent from my GT-P1000 using xda app-developers app
Click to expand...
Click to collapse
I tend to disagree with your response priyana. He is not asking for the "best" rom, just the differences. My suggestion is to read the development thread for each and try them out for yourself.
The best way to work out the one for you is to dive in and try them out.
Sent from my GT-I9000
Well, if your are asking for stable roms, then cm 9.1 and aokp milestone 6 are the options. dont ask for best roms.
I agree with stimpz0r that this isn't a best ROM thread, the OP is just asking the differences between the types of ROM. As long as it stays that way and doesn't become a best ROM thread then it's fine to stay. Have moved to Q&A where it belongs.
In answer to the question, as tiresome as reading and testing can be, don't give up with the reading as it's the most important part of being on XDA as so much information is available. The 1st few posts of the development threads tend to give you an overview of what's included but the main ROM types you get will be:
Custom stock - based off official ROM's with tweaks
AOSP (Android Open Source Project) - based off Google source code
CM - which is a modified AOSP experience with customisations, bug fixes etc
AOKP (Android Open Kang Project) - similar to CM as uses lots of aspects of CM but offers far more customisation options for the user
Ahem... 1st post, 1st fault
I wasn't asking for the "best rom over all the others", but more for a little help to know what kind of rom I have to look for, really sorry for the mistake.
Usually, I try to learn by myself reading on forums or on the net, but the hard part with Android (at least for me) is that a rom can work with a device but not with another who has the same Android version :silly::silly::silly:. It's not like a video game console, a PS3 is a PS3, a Wii is a Wii, no major change between the 1st and the last serie.
Thanks for your answers. I'll keep reading , but this time I'll look toward CM and Aokp first .
We all learn by reading and you'll see in my post I was siding with you
The best part of this forum is how much you learn off other members and the like-minded people you get to talk to. We were all new once so once you pick up things slowly but surely you'll also be able to share what you've learned back with so many new users always joining :good:

Android overclocking and kernel customization.

Hello! I've taken an interest in kernel and rom development, so I'd appreciate it if someone could give me tips and/or link/write tutorials that explains things about kernel modification (overclocking, bug fixing etc), custom rom making (how to add features, bug fixing etc).
Also is it possible to update/make a newer kernel from the source, like source is available for 4.5, would it be possible to update it to 4.6?
Any help/tip/tutorial is appreciated.
Ps: I don't know if this thread belongs here, as I'm new here.
Thanks, .

Categories

Resources