[Q] Trying to build a ROM with CM source - Android Q&A, Help & Troubleshooting

I also have a thread here on RootzWiki.
I have been wanting to try my hand at ROM development lately, so I need to download some source code. I figured CM would be good, but I was wondering, after making the repo, what is the difference between using "repo sync" and "repo sync -j16"?
And if you can answer any of my other questions from the other thread that would be great as well!

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] Questions about Development Process

I'm trying to better understand how the devs around here do what they do. I'm an Electrical Engineer and I make no claims to be a proper software developer. I know my way around C, Python, and Bash. I know my way around git and have worked with various build/release processes before so I can stumble through some CMAKE and MAKE build processes. Currently I have installed the the android SDK, compiled AOSP master branch and run it in an emulator. I've also compiled Cyanogen mod repos for generic-eng though I haven't gotten that to properly boot on an emulator yet.
So that's an idea of who I am and where I'm starting from. Now for the questions. I figure if I can understand the build environment and process I can learn quite a bit from the large history of available changes, especially since there is an Atrix Dev Team for Cyanogen.
Cyanogen Mod
I can't tell which repo's here are pure AOSP, modified AOSP, or from scratch pure Cyanogenmod.
Do the CM repo's track AOSP as a remote branch?
If yes, does that mean I can build pure AOSP from CM repo's via repo?
If no, how can you tell where in the AOSP development cycle the CM repo's fork from?
Are 'nightly' builds by definition a repo sync of the non-release base simply built as is? AKA for an Atrix nightly, you would checkout the gingerbread, sync, and build (assuming you're setup for building in the first place)
Are Official release only tracked via git tags? IE for CM 7.1 it's not really tracked on the manifest so would you need to find the proper tag and do a repo forall git checkout -b cm-7.1 or similar? I'm asking how you could build a previous release which should match the official release.
Atrix Dev Team
Similar to the CM Question, do these repo's track CM as their base repo's?
Could someone describe the typical development cycle of how the Atrix port is handled on top of a moving CM development? I'm a little lost as to how AOSP -> CM -> Atrix dev works out. If I checkout the Atrix manifest to gingerbread and perform git diff with the /m/gingerbread (I beleive the CM tracking branch) I see no differences. Are Atrix-Dev-Team and Official CM repo's simply fully in sync at this point?
How would I setup my repo to match a given Release (as in what tag or manifest I understand git)?
How would I setup my repo to match a given Nightly (as in what tag or manifest I understand git)?
As above, could you build pure CM from the Atrix repo's? This very well could be answered with the above questions.
Generic Info
What's a 'kang'?
My guess would be it's a build produced from the source repositories and not an official release by the developers.
Exploring the AOSP I noticed a separate kernel download link. I know CM uses a custom kernel but is that included in the default builds or is that typically flashed and managed separately?
After I'm familial with the whole process, and knowing what I've stated above what's the best step form there to be able to help contribute? Right now I've picked up a book on programming Apps on Android so I can learn the tools and some Java and I've had c++ on my radar for some time.
Thanks for your time. I've tried to get relatively well informed before I post questions.
So ... am I asking these in the wrong place?

Creating an AOSP ROM

Hey guys!
My device (the HTC One X for AT&T) currently has a CM9 and AOKP port. I really wanted to get started with developing though. I wanted to create a full AOSP ROM (directly from Google) just to learn the process and get my hands dirty with ROM development (I've already done quite a few mod packs and a kernel).
We have an open sourced CM9 device tree available. I've tried using that device tree for building the AOSP ROM but of course, it has errors because the AOSP source isn't CM9...
So what I'm asking is how can I use this CM9 device tree with a pure AOSP ROM? Like, how exactly do I edit the CM9 device tree so that it creates an AOSP ROM? I'm aware its no easy task, but if someone could point me in the right direction it would be greatly appreciated. I'm a noob when it comes to ROM development, I've never made one before haha I have compiled ROMs before, I maintain the AOKP nightlies for the HP Touchpad.
If someone could help me make this device tree work it would be awesome. Thanks!
P.S. Here is the tree in case someone wanted to look at it: https://github.com/vmagro/android_device_htc_evita
Delete cm.mk
Edit vendorsetup.sh (remove "cm_").
That is all you need to do, I believe.
Like you know, sync the AOSP source, include your device folder amd build.
Sent from my Galaxy Nexus using Tapatalk 2
mDroidd said:
Delete cm.mk
Edit vendorsetup.sh (remove "cm_").
That is all you need to do, I believe.
Like you know, sync the AOSP source, include your device folder amd build.
Sent from my Galaxy Nexus using Tapatalk 2
Click to expand...
Click to collapse
I found this thread and this is exactly what I'm doing. Would you be interested in answering my questions in exchange for a nice donation? I haven't had much luck getting help and being a single parent of three toddlers I really need to maximize my free time to work on this.
You also would have to delete any offending overlays from CM that are present within your device repo. As you compile you may run into errors which you could work through.
私のEVO 3Dから送信される。
dastin1015 said:
You also would have to delete any offending overlays from CM that are present within your device repo. As you compile you may run into errors which you could work through.
私のEVO 3Dから送信される。
Click to expand...
Click to collapse
Removing overlays doesnt work here. Have many issues regarding the kernel.
hey
Good luck
rohan32 said:
Hey guys!
My device (the HTC One X for AT&T) currently has a CM9 and AOKP port. I really wanted to get started with developing though. I wanted to create a full AOSP ROM (directly from Google) just to learn the process and get my hands dirty with ROM development (I've already done quite a few mod packs and a kernel).
We have an open sourced CM9 device tree available. I've tried using that device tree for building the AOSP ROM but of course, it has errors because the AOSP source isn't CM9...
So what I'm asking is how can I use this CM9 device tree with a pure AOSP ROM? Like, how exactly do I edit the CM9 device tree so that it creates an AOSP ROM? I'm aware its no easy task, but if someone could point me in the right direction it would be greatly appreciated. I'm a noob when it comes to ROM development, I've never made one before haha I have compiled ROMs before, I maintain the AOKP nightlies for the HP Touchpad.
If someone could help me make this device tree work it would be awesome. Thanks!
P.S. Here is the tree in case someone wanted to look at it: https://github.com/vmagro/android_device_htc_evita
Click to expand...
Click to collapse
Were you able to port aosp device tree from cm.Please tell me how ?

Need Clarification with Forking AOSP in github

So a bunch of friends and I want to try to write a custom ROM from AOSP for Galaxy Nexus (toro). One thing we were thinking about was syncing all our code via github.
We will create our own repo so that we can make sure all our code is in sync.
One thing we looked at was github.com/android
Should we just fork all the repo's from the github.com/android page? We understand that it doesn't make sense to download everything from AOSP and upload via github.
Any help clarifying if we should fork or mirror repo's and what repo's specifically so we can get started.
msg04 said:
So a bunch of friends and I want to try to write a custom ROM from AOSP for Galaxy Nexus (toro). One thing we were thinking about was syncing all our code via github.
We will create our own repo so that we can make sure all our code is in sync.
One thing we looked at was github.com/android
Should we just fork all the repo's from the github.com/android page? We understand that it doesn't make sense to download everything from AOSP and upload via github.
Any help clarifying if we should fork or mirror repo's and what repo's specifically so we can get started.
Click to expand...
Click to collapse
Forking would be the polite thing to do because then the other developer's changes would be logged and tracked in your code. As too which ones that totally depends on what you are wanting to change. I would however suggest just forking the ones you plan on modifying and syncing the rest from the AOSP Github.
You don't always have to "fork" in the traditional sense. As long as you keep the previous commits it will be good taste. If you are only working on a jellybean rom, you can create a repo on github. Clone that repo. Then you can pull only the jellybean aosp branch into the one you created. You can do the same for every other project you add into your repo and before you know it, you saved a ton of bandwidth by only syncing one branch instead of tracking all branches. just my two cents.

[HOWTO] Build CM10.1 for DNA

I have been getting a lot of PM's for troubleshooting persons trying to build CM10.1 and AOKP. I myself has just started to build/understand how these things go about.
Since i have also been helped by fellow members of XDA initially, so its correct i give something back
So here it is. The following steps will help you to build your own personal builds of the same.
Iam assuming that you are familiar with building CM. If NOT, then there are tons of guide present which are useful in getting setup right.
Below steps are required to build CM10.1 for DNA
1. Initialize the CyanogenMod source repository
cd ~/android/system
repo init -u git://github.com/CM10DNA/android.git -b cm-10.1-chad
2. Download the source code (It takes mighty long time) :fingers-crossed:
repo sync
3. Get prebuilt apps
cd ~/android/system/vendor/cm
./get-prebuilts
4. Prepare the device-specific code
. build/envsetup.sh
5. Start the build
brunch dlx
After build process is completed, it will show the exact path where the .zip file is stored :highfive:
Next up will be AOKP. I will update this thread with the steps if there is interest in it.
If i helped, hit THANKS button :highfive:
Would please add the steps for aokp? I've already got aokp and chads cm source downloaded, just not sure what to do next. Thanks!!
I just want to add if nobody has built anything before, there's a lot of things you need installed before you can do this. You can find tutorials that tell you everything you need to build a ROM from the source. I remember seeing one in the nexus 7 forum and I think one in Android general
Sent from my DNA using Tapatalk 2
amit_sen said:
4. Prepare the device-specific code
cd ~/android/system
. build/envsetup.sh
Click to expand...
Click to collapse
Need a slight tweak...

Categories

Resources