[Q] Want to start compiling android from source. - Android Q&A, Help & Troubleshooting

Hi,
After I got annyoed of my sgs ii, and samsung does not provide the things needed for the devs to port ICS to that (awesome) device, I bought a Galaxy Nexus, cause it's a developer phone and yes - I want to start on android developement.
So, let's just begin, I ordered my Nexus some hours ago, but I my internet connection gives me just 120 kb / s, so I started now with setting up ubuntu and a build environment & downloading the source.
I think it should take some days...
I made it with this tutorial:
http://source.android.com/source/initializing.html
http://source.android.com/source/downloading.html
... okay, now the questions, if building like it is written in here, I am stuck on building ICS only for the Nexus. I know it's nonsense building something else, but I don't know what I could do as a "learning project", so I decided to port Gingerbread to the Galaxy Nexus would be the first big "goal"...
I don't think I really understand how bulding android really works, or better, I don't understand how git works... it's not the classic "./configure" , "make"
as I understood from here: http://source.android.com/source/building.html
I can choose a "build target", so if I select the Nexus as a build target, it will automatically compile ICS, and if I select the Nexus S, it will automatically compile gingerbread?!?!
tl;dr
I don't understand how the code-tree works
I don't understand how to select wich source to build for wich target
I know... it's redicolous, but I just wanted to start...
also I hope this is the right forum

Related

Forking and porting CM7 to an unsupported device? (Gio GT-S5660M)

Hello,
So far, I have:
A working Android build environment (Ubuntu 11.10 x64).
Managed to build, install and boot AOSP on my Nexus S. (I have downloaded but not attempted to build CM7 yet.)
Created a Github account.
Samsung's open source files for my target device, the Galaxy Gio GT-S5660M.
I've read some documentation and forum posts about Github, but I remain unsure as to what I should do to fork in a way that:
I'll be able to keep on syncing the remainder of the code.
My new device directories and modifications could be brought back (pulled?) to the main CM7 code base.
Will avoid needless frustrating re-downloads of the source code.
Thanks in advance,
Darkshado
After some further reading, I'm beginning to grasp some git basics...
I've forked two CM7 repos so far, added them as remotes in the appropriate installations. (Instead of forking and cloning, since I already had repo sync'ed the whole CM7 source. My commits show up on Github like they should, and I should be able to merge in commits to the origin remotes.)
I'm not going to do any pull requests until I've managed to build and boot.
By the way, yesterday I attempted to build AOSP with a bunch of files overwritten by the Samsung sources (that's how they tell you to do it!!) and this failed, as I expected.
Goodbye,
Darkshado
Update: I'm currently trying to port CM7 to the Gio 5660M. Still attempting a first successful build as I'm writing these lines.
My main issue so far has to do with the camera. I get the following error message:
make: *** No rule to make target « out/target/product/gio5660M/obj/lib/libcamera.so », needed by « out/target/product/gio5660M/obj/SHARED_LIBRARIES/libcameraservice_intermediates/LINKED/libcameraservice.so ». Stop.
After toggling off the camera by using the stub, I hit the same error further into the build with this:
make: *** No rule to make target « vendor/samsung/gio5660M/proprietary/wifi/ath6k/AR6003/hw2.0/athtcmd_ram.bin », needed by « out/target/product/gio5660M/system/wifi/ath6k/AR6003/hw2.0/athtcmd_ram.bin ». Stop.
I know this has to do with makefiles, but that's about it...
Thanks in advance for any help,
Darkshado
hi i'm interested too.
hi I found your github because I also interested poriting cyanogemod to galaxy gio korea(SHW-M290K). the device hardware is different from s5660. so I need some modification.
and your libcamera problem is that there is some reason that the make system can't find libcamera.so, so they cannot compile libcamera service. it should be in ./vendor/samsung/gio/proprietary according to your extract-files.sh .
have one cuorisity. I searched gio android device make file. and none of them are relreased source code. how did you make them?
I found this information. it may help you.
http://processors.wiki.ti.com/index.php/TI-Android-GingerBread-2.3.4-DevKit-2.1_PortingGuides
I'll have to update my Github, hadn't been in a rush due to lack of progress, but now my problem lies with libaudio instead.
I got the Samsung sources for the 5660M on their open source website, although I mostly worked with the CM7 ports for similar devices like Tass and Cooper as well as a Gio source provided by Phiexz but it didn't build either.
Thanks for the link, I'll check it out.
proprietary does not help
do you have any progress since last time?
well, I admit that proprietary files does not help.
does your s5660m hardware identical to s5660v?
becasuse galaxy gio in Korea(shw-m290k,shw-m290s) does different hardware.
well in this case, like me, you need to hack into not only android pdk, but also android kenel.
I have seen that phiexz has released kernel with latest cyanogenmod kenel in his github and I am modifing it to shw-m290k. there are some hardware differences i have to apply to.
I suggest you to compare phiexz's kernel and samsung original kernel from samsung opensource homepage.
My problem right now is that I don't have that much spare time to put into this, and that I'm very much learning as I go, so progress is not always that quick. Also, I'd like to get my Touchwiz based ROM updated and working properly before trying to build AOSP or CM again.
Another thing I want to try is building the kernel (probably based on Phiexz's) that will support ext4, and compare performance of the Touchwiz ROM on ext4 versus RFS.
As far as we can tell, GT-S5660 (Europe/Asia) GT-S5660M, L and V are identical except for the radio firmware. People with the 5660M initially encountered issues after flashing 5660 ROMs because they also contained the AMSS image.
my cyanogen kernel is based on samsung open source kernel
because cm-kernel on cyanogenmod github dont support our device, if we wnt use that kernel we must add some hardware pofile & board for galaxy gio
so alternative is make samsung's open source kernel compatible with cyanogenmod
Wouldn't it be much better from a code maintainability standpoint to make the CM kernel work on the Gio? (Also if you ever hope to get official CM team support, that's a given.)
The way I understand repo and git, you could create a github repo for your device and board configs and add those to your repo manifest so the whole CM7 source and your modifications all sync properly.
I've forked the CM7 manifest files off github, added my gio files and removed all those extra devices I didn't need, so my repo syncs are much faster too. (The idea comes from http://slightlymorethanworthless.blogspot.com/2011/05/remove-unwanted-devices-from.html)
hey a quick question...
just starting out here..
i'm on win7 32 bit, going to run ubuntu on virtualbox.
shud i choose ubuntu 32 bit or 64?
sorry for OT.
doesn't really matter
roofrider said:
hey a quick question...
just starting out here..
i'm on win7 32 bit, going to run ubuntu on virtualbox.
shud u choose ubuntu 32 bit or 64?
sorry for OT.
Click to expand...
Click to collapse
doesn't really matter. but compiling process needs much cpu power. so 64x would be better.
Well, im not a dev or a user of gt5660m, but good luck to you, hope u can finally port it
Sent from the GUN in my pants
darkshado, if you have same problem untill now.
http://strazzere.com/blog/?p=220
look this page. and check out koush's proprietary page. especially for samsung cooper(galaxy ace). because many of kernel procedure are same for gio.
https://github.com/coolya/android_device_samsung_cooper.git
https://github.com/koush/proprietary_vendor_samsung
i've upload galaxy gio source + proprietary files for galaxy gio
please see & help to fix some problem
github.com/phiexz
Darkshado said:
Hello,
So far, I have:
A working Android build environment (Ubuntu 11.10 x64).
Managed to build, install and boot AOSP on my Nexus S. (I have downloaded but not attempted to build CM7 yet.)
Created a Github account.
Samsung's open source files for my target device, the Galaxy Gio GT-S5660M.
I've read some documentation and forum posts about Github, but I remain unsure as to what I should do to fork in a way that:
I'll be able to keep on syncing the remainder of the code.
My new device directories and modifications could be brought back (pulled?) to the main CM7 code base.
Will avoid needless frustrating re-downloads of the source code.
Thanks in advance,
Darkshado
Click to expand...
Click to collapse
Really the best kernel for your phone is here:
http://forum.xda-developers.com/showthread.php?t=1991020
BLN enabled, optimized&stable kernel, jelly bean look
Whoa! Zombie thread!
Dude: the ROM you linked was published over a year after my original post in this thread. I'm pretty sure there was NO CM7 build available for the Gio back then. That's what I was trying to work on, but got beat to the punch by Maclaw and a couple others. (Hard-bricking my Gio and having a sluggish laptop to build on didn't help.)
Besides, I got rid of my Gio a long time ago. I enjoy my Note 2 and keep my Nexus S as backup.

[Q] Samusung XCOVER/GT-S5690 questions.

Hi all,
i'm a noob to android, but i have nit of experience on other unix based systems.
I was wondering, why there is no custom roms for GT-S5690?
What's the problem?
Is bootloader locked some other way or is it somehow different from example Gio/GT-S5660?
There is a bunch of roms for gio..
I have one xcover, wich has no screen and covers, i thought i could use it for testing.
I think there are too less people who have a xcover, and I was actually pretty disappointed when I say there is a successor to the xcover available only in the US (Rugby Smart / Pro <-- with ICS!).
From the technical side, I don't know. Even the source code of the firmware is available at opensource.samsung.com. The Bootloader seems pretty much unlocked.
For me, the xcover is the best phone ever, it takes so much abuse. Maybe someday someone will port a newer ROM from the Ace/Gio/idk. It's a shame Samsung abandons their old phones :crying:
xkawer said:
I think there are too less people who have a xcover, and I was actually pretty disappointed when I say there is a successor to the xcover available only in the US (Rugby Smart / Pro <-- with ICS!).
From the technical side, I don't know. Even the source code of the firmware is available at opensource.samsung.com. The Bootloader seems pretty much unlocked.
For me, the xcover is the best phone ever, it takes so much abuse. Maybe someday someone will port a newer ROM from the Ace/Gio/idk. It's a shame Samsung abandons their old phones :crying:
Click to expand...
Click to collapse
I didn't were aware of successor models, now i'm very dissappointed.
I'm downloading these source codes at the moment, i'll check these out.
I'm not a developer, atleast YET..
AFAIK, hardware of s5690 is way different from any other samsung phones,
correct me if i'm wrong..
jonezy82 said:
AFAIK, hardware of s5690 is way different from any other samsung phones,
correct me if i'm wrong..
Click to expand...
Click to collapse
Seems like it's the only one with a Marvell MG2.
Let me know if you do anything interesting with the sources
Just flashed my xcover to XXLJ2 yesterday. At least it seems a bit faster now, but I have a weird bug when scrolling. If I give a list (for example settings) momentum, it doesn't stop when I put my finger on it again. But it does stop if I release the finger the second time.
jonezy82 said:
I'm downloading these source codes at the moment, i'll check these out.
Click to expand...
Click to collapse
Did the same. The GT-S5690_Platform.txt says:
Code:
How to build platform
1. Get android open source.
: version info - Android gingerbread 2.3.6
( Download site : http://source.android.com )
2. Remove external\webkit module in android open source which you got.
And then execute "clean build"
2. Copy files and modules to original Gingerbread source tree (overwrite)
3. build
- ./build.sh user
So wouldn't it be possible to download the JB sources, and compile them with the original kernel? Would be so cool.
Edit: It seems you need device specific binaries (drivers) since ICS. see: http://www.freeyourandroid.com/guide/compile-ics
Found a git https://github.com/manakeri/android_device_samsung_xcover, there is a
Code:
cyanogen_xcover.mk
file, this seems interesting. Apparently someone is trying to port it.
Edit2: In this git, there is also a "extract-files.sh"-file, which is neccessary to pull the proprietary files from the phone! With this I think we actually have everything we need to compile ICS/JB, like in the "freeyourandroid" tutorial.
I have never done this before, but someone must try it lol.
Oh look, there are more people who care about it!
http://www.droidevelopers.com/f338/14412-gt-s5690-opensource-kernel-available.html
Someone discovered my link and made a overclock kernel from the sources! This is so cool.
I hope we are going to see more :good:
xkawer said:
Oh look, there are more people who care about it!
http://www.droidevelopers.com/f338/14412-gt-s5690-opensource-kernel-available.html
Someone discovered my link and made a overclock kernel from the sources! This is so cool.
I hope we are going to see more :good:[/QUOTE
I own an xcover too a developer on another forum looked at some files i pulled using adb to try to port clockworkmod but no success. Told me the files i sent weren't standard android img but he would continue to look into it. Apparently the teamhacksungs goal is to port cyanogenmod for every Samsung device surely they can get it done. I've been waiting a long time to see some development for the awesome xcover
Click to expand...
Click to collapse
If its possible on the galaxy mini its got to be possible on xcover!. Ive tried to get involved and learn to port cyanogenmod but when it comes to git, repo, source tree, source code e.t.c e.t.c its a bit behond me for now.
Step in the right direction it seems. Fingers crossed

[Q] GT-i9300 - Problems with building CM10.1

Hey,
first excuse me when this is the wrong section :-x
But since it might be a general problem which is not related to the Device, I thought I might should post it here.
Just a week ago I bought a new Laptop and moved all my (windows) stuff over there.
Since Im a programmer for C# and C++ for over 5 years now, I installed Ubuntu 12.10 on my Old Laptop and wanted to start messing with Android, CyanogenMod 10.1 to be specific.
But I came up with a few Problems and questions ...
I have a few questions regarding Building CM10.1 for the Samsung Galaxy S3 GT-I9300 (international) and some which might be general to building from Source.
Every time I close a Terminal window in Ubuntu 12.10 and open one again, I have to execute "envsetup.sh" all over again, to use the "croot" command or anything related to building. Is there a way to ( more or less ) integrate that into Ubuntu ?
Right now I got the CM10.1 Source tree located in the specified location the Wiki states. How do I cherry pick Changes from Gerrit effectively ? Sure, the easiest way would be to Copy&Paste the Code, but is there any way to keep the changes after "repo sync" and keep track of additional patch sets that have been added, which might be required ?
Like I said I have problems building CM10.1 for my (german) i9300. Booting is well, everything running like on the Nightlies, but the Radio is "missing", just like the IMEI and IMEI SV. Ive tried to google the issue but dont get anything clear, I also followed every point in their Wiki but dont get any further. How do I fix this ?
Whats the average time when you build CM10.1 ? Is about 1 1/2 Hours good ?
Again, Im sorry if this is the wrong section or anything I can find here, but I might searched for the wrong things and came up with Hundreds of Threads, none related to my issues ( related to building ).
Thank you in advance
v3n3 said:
Hey,
first excuse me when this is the wrong section :-x
But since it might be a general problem which is not related to the Device, I thought I might should post it here.
Just a week ago I bought a new Laptop and moved all my (windows) stuff over there.
Since Im a programmer for C# and C++ for over 5 years now, I installed Ubuntu 12.10 on my Old Laptop and wanted to start messing with Android, CyanogenMod 10.1 to be specific.
But I came up with a few Problems and questions ...
I have a few questions regarding Building CM10.1 for the Samsung Galaxy S3 GT-I9300 (international) and some which might be general to building from Source.
Every time I close a Terminal window in Ubuntu 12.10 and open one again, I have to execute "envsetup.sh" all over again, to use the "croot" command or anything related to building. Is there a way to ( more or less ) integrate that into Ubuntu ?
Right now I got the CM10.1 Source tree located in the specified location the Wiki states. How do I cherry pick Changes from Gerrit effectively ? Sure, the easiest way would be to Copy&Paste the Code, but is there any way to keep the changes after "repo sync" and keep track of additional patch sets that have been added, which might be required ?
Like I said I have problems building CM10.1 for my (german) i9300. Booting is well, everything running like on the Nightlies, but the Radio is "missing", just like the IMEI and IMEI SV. Ive tried to google the issue but dont get anything clear, I also followed every point in their Wiki but dont get any further. How do I fix this ?
Whats the average time when you build CM10.1 ? Is about 1 1/2 Hours good ?
Again, Im sorry if this is the wrong section or anything I can find here, but I might searched for the wrong things and came up with Hundreds of Threads, none related to my issues ( related to building ).
Thank you in advance
Click to expand...
Click to collapse
Answer's here
1)no you cant integrate that into ubuntu ..ps why do you need to integrate something which is just a line to type....
2)for cherry picking commits you can do git am or download the diff patch .. if you repo is frameworks base then copy that patch to frameworks/base cd into frameworks/base and type git patch -p1 and drag the dif patch on to the terminal and hit enter
3)u can use boardconfig flags to make use of stock radio, go through boardconfigs of different devices..
4)for me it takes 2hrs to build gb and 3-4 hours of ics..really i have a crap pc it depends on your processing power ..you could make use of make -j4 if you havent yet ..but it the build gets crashed reduce the number next to j like j3 or j2..

How to configure and build the kernel for samsung galaxy s iii

hello all
i like to develop since 9 years old. Actually i am 24. I don't understand well the basics of Android and propietary devices. I used to install CM on all my family's devices, but always unofficial builds and not selfKANGs. Since 1 week ago, I am trying to build the the CM's 11.0 with no luck. Then i went to official google's developers site of android, and finally i got a system compiled and ready to install.
but now, before to push the flashing key, i am doubting about all... i mean, there'r a lot of steps I havent done:
1. obtain propietary binaries from my actual installation
2. not sure about if built the correct official version or compatible for samsung galaxy s iii (gt-9300)
3. i just wanted to add support for a S3C USB Host HUB for connecting my keyboard and mouse into my S3's micro-usb port.
so, now that i have obtained a lot of curiosity about that world, i want to learn more and more... but haven't anything clear at all.
then, can you please answer me the following questions?
1. why everyone is installing CM in S3? And not official android version?
2. how can I configure and add support to my USB host hub into the correct version of the kernel for the actual 4.4 KitKat software (CM-11.0) of my S3's?
3. can you explain me why can't I compile CM-11 or CM-10.2 with my Ubuntu Server 14.04 ? Lot of errors...
I would have more time to ask and ask, but I need to stop here.
Thanks to all for all the information in the posts I have read until now. And for the future's ones.
See ya,
Abel.

[Q] Adding Driver to Kernel and Loading it on Device - USB Griffin Powermate

Hello wise XDA sages,
Today I am working on a project that has me working with the Android Kernel and I need some help / directions from you all who know much more on the subject than me. I am trying to get the USB Griffin Powermate Dials to work with Android (via OTG), so I can use them in an application I am writing. Luckily, this has already been done: youtube.com/watch?v=xt6Ny8lG15s so I know the driver is available for Android. Moreover, the individual was nice enough to post his modified driver here: gist.github.com/tlorens/488752123c056202ac31
So, I have spent the last two days reading and studying the android Kernel and how to make/compile your own kernel. The only instructions via Google leave me with a few questions. I was able to build a generic kernel from scratch, but have found less documentation on how to add the driver in question and then how to load the zImage once it has been created to a device so that it will use it.
Could any of you help me with this project, or point me toward more detailed resources that can walk me through this process? I have a feeling that once I do this once, it will be easy to do in the future.
My questions are:
1. How do I take the above Android driver and integrate it into an Android Kernel for one of the following phones: Galaxy Nexus, Nexus 10, Nexus 7, Nexus 5, Galaxy S4, Galaxy Tab 4 (I am lucky enough to have access to many devices - which is the easiest to use? Does it matter?).
2. Do I need to make an entire AOSP rom to make this work, or will the kernel be sufficient.
I appreciate you masters helping a noob at kernel work. If this becomes hard to do, I would even be willing to toss anyone willing to help some cash via paypal for a step-by-step set of instructions for making the Powermate work on any of my devices. Biggest thing, is I want to learn how to do this myself
As always I appreciate this community,
Larry

Categories

Resources