Noob question about source compiling. - Android Q&A, Help & Troubleshooting

I just got done initializing the AOSP JB_SOURCE for the Nexus 7, and am getting ready to attempt a first build, I'd also like to be able to compile CM10 and who knows maybe others but CM10 for sure. My question (although I'm pretty sure the answer is yes) is do I now have to make a new SOURCE directory for CM10 and repeat the process of downloading the whole thing locally for each build I'd like to attempt i.e. CM10, AOKP,MIUI
ect. If so the 150gb I used to create my virtual hard drive isn't going to be enough. I apologize in advance if this question is posted in the wrong place
and I did search first. Thank you.

Vektor67 said:
I just got done initializing the AOSP JB_SOURCE for the Nexus 7, and am getting ready to attempt a first build, I'd also like to be able to compile CM10 and who knows maybe others but CM10 for sure. My question (although I'm pretty sure the answer is yes) is do I now have to make a new SOURCE directory for CM10 and repeat the process of downloading the whole thing locally for each build I'd like to attempt i.e. CM10, AOKP,MIUI
ect. If so the 150gb I used to create my virtual hard drive isn't going to be enough. I apologize in advance if this question is posted in the wrong place
and I did search first. Thank you.
Click to expand...
Click to collapse
For each different ROM type (aosp cm etc.) you need different source code as they are different ROM
Sent from my LG-P350 using xda premium

Sorry it took so long, Thanks for the response. So it seems that for each particular flavor of Android I need the whole source repo synced to my machine.
That doesn't apply to different devices does it? I have an SGS 3 d2spr, and a Nexus 7 it would be fun to run a self built os for each.

Vektor67 said:
Sorry it took so long, Thanks for the response. So it seems that for each particular flavor of Android I need the whole source repo synced to my machine.
That doesn't apply to different devices does it? I have an SGS 3 d2spr, and a Nexus 7 it would be fun to run a self built os for each.
Click to expand...
Click to collapse
No it doesn't apply you just need different device folders and when you compile you use the folder you want.
Sent from my LG-P350 using xda premium

Related

[Q] Looking for a dev to teach me

hey everyone, I've been with android since release on the g1 and have followed it since. but now I'm tired of being just a user and want to learn how to develope roms. I would rather have some one teach me first hand, but links to some places that helped you would be great too. So again, Im looking for a dev who would want to teach me, if some money is wanted, that's fine. thanks for reading. reply here and/or PM me. I am very serious about learning, I dont just want little tips/tricks or pointers.
Edit: I have a bit of skill in C++ and Java, but nothing too significant. I lost interest in writing programs, same with apps, no interest, everything has been done over and over again.
I have created a site specifically just for this. I have a link in the signature but feel free to just click here @green rom project
stoute said:
I have created a site specifically just for this. I have a link in the signature but feel free to just click here @green rom project
Click to expand...
Click to collapse
Thanks alot.
thank you too
I didn't find anything there that isn't here on xda.
JDV28 said:
I didn't find anything there that isn't here on xda.
Click to expand...
Click to collapse
Maybe, but for new users in building roms, it's easy if it is gathered in one place, instead of searching all over xda that sometimes you can get yourself lost
What ARE you looking for?
Sent from my DROID2 using Tapatalk
jbirdvegas said:
What ARE you looking for?
Sent from my DROID2 using Tapatalk
Click to expand...
Click to collapse
Some sort of a guide to developing roms. even porting. not an "all in one" guide. thats unrealistic and would most likely suck, seeing as its such a broad subject.
that site, is... i dont even know. not to insult you, but i found it to be useless. the single guide you have on there is for setting up the htc kitchen, which i figured out in 5 minutes on my own. I would suggest making a "Guides" section of that site, so it isnt JUST forums, and adding, well, GUIDES. you pointed me there to help me, but there was nothing on the forums even close to helping me.
What os are you running? Have you succesfully compiled the source yet either aosp or cm?
CyanogenMod's github is a great place to learn repo the source. Read the commits @ github.com/cyanogenmod all commits are commented to make reading changes easier.
Aosp is also on [email protected] github.com/android building aosp can be more tricky.
Cm is aosp with many custom packages included to see what is and isn't aosp [email protected] github.com/CyanogenMod/android
default.xml contains references to what packages are cyanogen and what is aosp
Either way you need to start by getting very familiar with
github.com/CyanogenMod/android_vendor_cyanogenmod
Look in the products folder at the .mk files
and how they are invoked by core/Makefile in
github.com/CyanogenMod/android_build
Also pay attention to build/envsetup.sh
Sent from my DROID2 using Tapatalk
How noob at developing are you?
Sent from my DROID2 using Tapatalk
jbirdvegas said:
How noob at developing are you?
Sent from my DROID2 using Tapatalk
Click to expand...
Click to collapse
your last post was quite helpful. Barely anything at all.
best bet start by getting the source to compile... sounds simple but can be tricky
most importantly get to know ~/android/system/build
you can't produce a custom rom without understanding when and how everything is compiled
JDV28 said:
hey everyone, I've been with android since release on the g1 and have followed it since. but now I'm tired of being just a user and want to learn how to develope roms. I would rather have some one teach me first hand, but links to some places that helped you would be great too. So again, Im looking for a dev who would want to teach me, if some money is wanted, that's fine. thanks for reading. reply here and/or PM me. I am very serious about learning, I dont just want little tips/tricks or pointers.
Edit: I have a bit of skill in C++ and Java, but nothing too significant. I lost interest in writing programs, same with apps, no interest, everything has been done over and over again.
Click to expand...
Click to collapse
Android Kitchen will be your best bet. Very easy to follow. Read the whole post at least twice and you will be good to go. Follow all the links.
This is what i used from the ground up and i have my own rom on my HTC EVO 4G.
http://forum.xda-developers.com/showthread.php?t=633246
http://theunlockr.com/2010/03/26/ho...om-for-android-part-1-setting-up-the-kitchen/
http://theunlockr.com/2010/04/15/ho...m-for-android-part-2-creating-your-first-rom/
Credit goes to dsixda. he created android kitchen. If you like this, please donate to him.
"Dont forget to hit the thanks button if i helped you"
I'm new to the Dev world myself... I've done a lot of reading and research and I've gotten to the point of building and modding Roms to contribute to the community here. I've only done rom's for the Eris, which isn't as complex as some of the other devices, but I'm willing to share my knowledge if you need it.
The basics you will need:
1. Linux (I've tried doing this in windows, not worth the hassle!), either ubuntu or linux mint work well (Mint is a windows "like" os, so it might be easier to start with that).
2. Android SDK Kit (You can google it)
3. APK Manager (If you need to decompile APK's to make changes, this tool makes things a lot easier!)
4. Android Kitchen (A must if you are porting and to keep your Rom's cleaned up!)
5. A working understanding of XML and some java code is extremely helpful!
6. Time and Commitment! Devving, by any standard, is a time consuming process! You can easily make a Rom, but keeping the masses happy requires updates to nightly sources and time to rebuild what you've started!
I've spent so much time updating, compiling, modding and theming that my family voices plenty of complaints! But, the reward of building something that works and seeing others benefit from your creation is well worth the effort! Balancing your time, if you have a family to consider, is key to succeeding with this!
If you'd like more help, send me a PM! I'll work with you as much as I can!
I setup the kitchen, as i previously said, but didnt find any use for it except maybe adding minor features to a completely stock rom. i have linux set up with the SDK. i just dont know where to go from there...even compiling from source
Read everything here
http://wiki.cyanogenmod.com/index.php?title=Building_from_source
Sent from my DROID2 using Tapatalk
JDV28 said:
I setup the kitchen, as i previously said, but didnt find any use for it except maybe adding minor features to a completely stock rom. i have linux set up with the SDK. i just dont know where to go from there...even compiling from source
Click to expand...
Click to collapse
Sent you a PM back, bro.
Having Linux, SDK and the Kitchen setup gets you about 75% of the way there!
The basic steps to compiling from source run through the Terminal in Linux. You will need to pull in the CM repository (the link jbirdvegas posted will give the instructions to do that). Once the repository is setup, you will need to load the proprietary files for the device you're building for in order to sync the correct source. (repo sync -j16 will sync the source and build your folders for compiling). You will need to plug in your phone through USB and extract the proprietaries through ADB. Example, my build location in Linux is "android/system" in that folder there will be a device folder with folders for each device brand and build. My eris is listed in CM as desirec, so my drive folder location is "android/system/devices/htc/desirec". In order to pull my proprietary files, I would have to do the following:
1. In terminal; "cd android/system/devices/htc/desirec" (This puts me in the correct build folder)
2. su (puts terminal in root) - type in password
3. "./adb kill-server" (shuts down adb)
4. "./adb start-server" (starts adb)
5. "exit" (puts you back in standard terminal)
6. "./adb devices" (verify your device shows - if you get ????????, adb did not start right)
7. "./extract-files.sh" (this will extract the proprietary files from your device and place them in the device folder for building)
8. "cd"
9. "cd android/system" (puts you back in the CM build folder)
Once that's done, all you basically need to do after that is:
"source build/envsetup.sh" (Setup source build)
"lunch" (this will give you a list of builds - pick your device)
"make -j# bacon" (# is the number of processors your phone has +1)
The Repo Sync and Make commands will take time, but once you've finished the Make cycle, your Rom (if there were no errors) will be compiled, signed and ready to flash on your device. From there, you can use the kitchen to add "tweaks" to your rom (CM sources are usually pre-setup, but you can still add things like "data/app" access to your Rom).
Hopefully this takes you to the next step. PM me if you run into problems, I'll help you through it.
If you get abd shows your device as ??????????
Google 51-android.rules on how to setup udev
Sent from my DROID2 using Tapatalk
jbirdvegas said:
Read everything here
http://wiki.cyanogenmod.com/index.php?title=Building_from_source
Sent from my DROID2 using Tapatalk
Click to expand...
Click to collapse
about 50% of those pages are empty, does it matter what phone i click on for now? nothing shows up for Glacier
JDV28 said:
about 50% of those pages are empty, does it matter what phone i click on for now? nothing shows up for Glacier
Click to expand...
Click to collapse
jbirdvegas has it right on the adb correction if your device isn't found. I'll look for setting up the rules and post the link a little later.
Glacier doesn't have instructions yet, but there are CM builds for it. If you follow the evo instructions that will get you setup. Just replace supersonic with glacier to get your device established. There wasn't one for the Eris, either, and the EVO instructions are what I used.
Also, if you're building for GB and you're on a 32-bit system, it will tell you you cannot build it. There is a bypass; I'm using a 32-bit system and just removed the "end" statement in the make file. My builds work just fine, so bypassing the environment won't mess up your builds...

ICS Port

Hi I have found the way to port ICS to the galaxy players. :
http://www.freeyourandroid.com/guide/compile-ics
The problem is that I can't find the binaries for the galaxy player. Where I can find them?
arent they located in /system/bin?
Need root first though
(I would help out with this, but dont really know how to do it, and i dont have the player yet)
zaclimon said:
Hi I have found the way to port ICS to the galaxy players. :
http://www.freeyourandroid.com/guide/compile-ics
The problem is that I can't find the binaries for the galaxy player. Where I can find them?
Click to expand...
Click to collapse
Will this actually boot and run? If it's that "easy", then why don't more devices have ICS? If you can extract the binaries and cook up a rom, I would be happy to test it . Also, if I have time later this week, I'll try to follow those instructions and then post my results. If everything works on the first try, I'll be very surprised but not at all dissapointed . Thanks for sharing this
Dyskmaster said:
Will this actually boot and run? If it's that "easy", then why don't more devices have ICS? If you can extract the binaries and cook up a rom, I would be happy to test it . Also, if I have time later this week, I'll try to follow those instructions and then post my results. If everything works on the first try, I'll be very surprised but not at all dissapointed . Thanks for sharing this
Click to expand...
Click to collapse
Well maybe because people don't know how to do it. And as for the current rom the major problem is the hardware acceleration and the camera. Maybe We can find it (The binairies) at opensource.samsung.com
It should be easier than phones because you don't have to worry about not screwing with voice, data, and stuff like that. Just get it on and get all the apps working correctly. Radios are always the hardest.
I've also been triyng to compile the source for the player but i wasnt able to do so, the thing is that the source compiles fine with the pre-adjustments it comes with, i mean the androidboard.mk ( i think thats the name of the file not sure), but when i changed the variables for a armv5 build, which is the core of the device and the ones that comes in the same file on the opensource.samsung soource, it just doesnt compile and throws some kind of errors about some libraries that i didnt touched. i dont know what i had been doing wrong.
I Also found this video in which they show whats in every folder, and how to build and add packages from source to the build:
http://marakana.com/forums/android/general/269.html
This is a detail process description from the official android site to build from source, very similar like the one zaclimon found:
http://source.android.com/source/initializing.html
The source from samsung doesnt have all the drivers, just the alsa audio driver, i guess we gonna have to find a way to get the binaries like cyanogen did, maybe get some scripts they use and try to do it ourselves:
http://wiki.cyanogenmod.com/wiki/Sa...le_CyanogenMod_(Linux)#Copy_proprietary_files
it is done through the adb, but the thing is to get those files, maybe we could ask that fellow some help for this step, since he has the experience.
sodomywar said:
I've also been triyng to compile the source for the player but i wasnt able to do so, the thing is that the source compiles fine with the pre-adjustments it comes with, i mean the androidboard.mk ( i think thats the name of the file not sure), but when i changed the variables for a armv5 build, which is the core of the device and the ones that comes in the same file on the opensource.samsung soource, it just doesnt compile and throws some kind of errors about some libraries that i didnt touched. i dont know what i had been doing wrong.
I Also found this video in which they show whats in every folder, and how to build and add packages from source to the build:
http://marakana.com/forums/android/general/269.html
This is a detail process description from the official android site to build from source, very similar like the one zaclimon found:
http://source.android.com/source/initializing.html
The source from samsung doesnt have all the drivers, just the alsa audio driver, i guess we gonna have to find a way to get the binaries like cyanogen did, maybe get some scripts they use and try to do it ourselves:
http://wiki.cyanogenmod.com/wiki/Sa...le_CyanogenMod_(Linux)#Copy_proprietary_files
it is done through the adb, but the thing is to get those files, maybe we could ask that fellow some help for this step, since he has the experience.
Click to expand...
Click to collapse
The core is a ARMv7 right? because the hummingbird processor is a ARMv7. Maybe it did failed because of that? I found the gpu drivers from the opensource. Check in the kernel folder. If I can give you the gpu file if you want. Well tell me what files you are missing i'll find to give it to you. (Well I don't know how to program so I try do to my best.)
EDIT: Also its seem that to compile ICS is more difficult than the other versions. We do need ubuntu to extract the binaries right?
EDIT2: People are saying that it's easier to build from CM9 than from the source. It is right or it's the same thing?
http://forum.cyanogenmod.com/topic/38960-build-your-own-cm9ics-preview-on-ubuntu-and-perhaps-debian/
Galaxy S Phone
Shouldn't you just be able to modify a Galaxy S ICS port and take out the data and other stuff you don't need?
zaclimon said:
The core is a ARMv7 right? because the hummingbird processor is a ARMv7. Maybe it did failed because of that?
Click to expand...
Click to collapse
Well, i configured it with the files of the samsung source, and it said ARMv5, we need to know which one it is, probably faild because of libaries compatibilities for that architecture.
zaclimon said:
EDIT: Also its seem that to compile ICS is more difficult than the other versions. We do need ubuntu to extract the binaries right?
EDIT2: People are saying that it's easier to build from CM9 than from the source. It is right or it's the same thing?
Click to expand...
Click to collapse
Maybe it is easier than the official source, they modify the source and takes out some things that cellphones dont need 'cause the source it's made for all devices, so it could be smaller and easier to compile, i'm gonna try this port and let ya' know, it will take a while since the source it's huge
Would be great if a couple of us do it, if you can @zaclimon try it, you don't need ubuntu, if you know which libaries that command has (sudo apt-get install build-essential). I have debian and i compiled the source just fine, debian has a minimal installation (no X11) but to compile source you dont need anything else! Let me know if anyone else it's triyng we could excahnge some ideas!
sodomywar said:
Well, i configured it with the files of the samsung source, and it said ARMv5, we need to know which one it is, probably faild because of libaries compatibilities for that architecture.
Maybe it is easier than the official source, they modify the source and takes out some things that cellphones dont need 'cause the source it's made for all devices, so it could be smaller and easier to compile, i'm gonna try this port and let ya' know, it will take a while since the source it's huge
Would be great if a couple of us do it, if you can @zaclimon try it, you don't need ubuntu, if you know which libaries that command has (sudo apt-get install build-essential). I have debian and i compiled the source just fine, debian has a minimal installation (no X11) but to compile source you dont need anything else! Let me know if anyone else it's triyng we could excahnge some ideas!
Click to expand...
Click to collapse
how many MB or GB the source has because I can't exceed my download's limitations?
EDIT: I'm a linux newbie. Is Ubuntu is the same thing as debian? Because Ubuntu is debian based right?
EDIT2: nevermind I'll be using ubuntu
alltellmobile said:
Shouldn't you just be able to modify a Galaxy S ICS port and take out the data and other stuff you don't need?
Click to expand...
Click to collapse
I don't know if we can (we should ask permissions) but it's definitly possible.
zaclimon said:
EDIT: I'm a linux newbie. Is Ubuntu is the same thing as debian? Because Ubuntu is debian based right?
Click to expand...
Click to collapse
Yea Ubuntu should be pretty much the same.
Wish I knew how to program, because i would help out.
alltellmobile said:
Yea Ubuntu should be pretty much the same.
Wish I knew how to program, because i would help out.
Click to expand...
Click to collapse
You can help I follow the tutorials there:
http://www.freeyourandroid.com/guide/compile-ics
http://marakana.com/forums/android/general/269.html
Ok i was reading the first tutorial and got to the part about binaries for graphics acceleration; wouldn't we have to get ours before we compile it. Also i only have the US version of the galaxy player and if i made an image i couldn't test it because we don't have a custom recovery for ours.
alltellmobile said:
Ok i was reading the first tutorial and got to the part about binaries for graphics acceleration; wouldn't we have to get ours before we compile it. Also i only have the US version of the galaxy player and if i made an image i couldn't test it because we don't have a custom recovery for ours.
Click to expand...
Click to collapse
Oh that's true well you can try to port a custom recovery?
zaclimon said:
Oh that's true well you can try to port a custom recovery?
Click to expand...
Click to collapse
HaHa I'm not that good. that sounds way more complicated
hey guys, i've been following this thread and hopefully i can be of some help...
i'm currently in the process of pulling the system files from the original gingerbread build from the SGP...it looks like there will be some trial and error here comparing that of the nexus s build...correct me if i'm wrong, but is this where most of the proprietary libraries are located for the device?
i'm willing to engineer a generic build, described in the video tutorial and making the necessary adjustments for the ARMv7 board...
this is my first attempt at compiling Android source, so maybe we will have something or maybe i will have a good ol' brick...thanks for the great tutorial and video @zaclimon this has definitely shed some light on porting ICS for SGP
jdale38 said:
hey guys, i've been following this thread and hopefully i can be of some help...
i'm currently in the process of pulling the system files from the original gingerbread build from the SGP...it looks like there will be some trial and error here comparing that of the nexus s build...correct me if i'm wrong, but is this where most of the proprietary libraries are located for the device?
i'm willing to engineer a generic build, described in the video tutorial and making the necessary adjustments for the ARMv7 board...
this is my first attempt at compiling Android source, so maybe we will have something or maybe i will have a good ol' brick...thanks for the great tutorial and video @zaclimon this has definitely shed some light on porting ICS for SGP
Click to expand...
Click to collapse
Yes they are supposed to be there. But I have download all the source code of the firmware from opensource.samsung.com
Me and sodomywar are working with the internationnal version of the SGP4. If you want to join you're welcome.
EDIT: No problem for the tutorials.
alltellmobile said:
HaHa I'm not that good. that sounds way more complicated
Click to expand...
Click to collapse
Google is your friend
So this is where i'm at currently. I'm trying to compile and I got this error:
Code:
build/core/base_rules.mk:166: *** system/extras/ext4_utils: MODULE.TARGET.EXECUTABLES.setup_fs already defined by device/samsung/galaxyplayer. Stop.
Does anyone know how to remove that error?
EDIT: nvm I managed to remove this error.

There is no real guide for porting roms!

I've tried porting several roms to my devices and every time I try to flash I always get status 0 or some type of error! I can't logcat from recovery because some things do not work completely with clockworkmod I have. I even manually tried porting the same method that android kitchen does and still run into the same problem. I have no idea what I should try next? This is really making me made. I get no help at all after searching and searching every where!
android kitchen
http://forum.xda-developers.com/showthread.php?t=633246
all in one guide
http://forum.xda-developers.com/showthread.php?t=1273718
And some other methods and still no luck!!
You are right. There is no guide. It's trial and error. Logcat helps and if you know what certain files do that helps too.
It's simple:
grab the sources from github, add your device and vendor folder, add the device to the list in the mk files, lunch, and build.
openetna is a repository with many bugfixes, as you will have them.
Easy ****!
mDroidd said:
It's simple:
grab the sources from github, add your device and vendor folder, add the device to the list in the mk files, lunch, and build.
openetna is a repository with many bugfixes, as you will have them.
Easy ****!
Click to expand...
Click to collapse
Thats great if building from source
but i think he is talking about porting roms that are not AOSP.
The problem with a porting tutorial is that all devices and roms are a bit different so there will never will be a tutorial to get this done 100%. They are great guides to give you a start but it can take a lot more to get things ported.
if the device architecture is similar
Ex... Evo 4g to Incredible
than porting is fairly easy
being able to logcat is very necessary when porting roms
getting that working is your first step.
I always gave up on porting just because i dont have the patients to do it.
Exactly. I've ported several roms from the E3D and Sensation to the Rezound, and they are easy because the processor is the same. All you really need to get it booting is the kernel in most cases.
mDroidd said:
It's simple:
grab the sources from github, add your device and vendor folder, add the device to the list in the mk files, lunch, and build.
openetna is a repository with many bugfixes, as you will have them.
Easy ****!
Click to expand...
Click to collapse
Not that simple if you have to make a device tree from scratch like I'm doing
I've a question!!
I have an HTC Explorer (based on Qualcomm MSM7227) and I'd like to build a rom (AOSP or Cyano)...
I've downloaded Kernel Source Code but after hours of researches I haven't found a guide for merge a rom with a kernel..
can you help me?
thank you!
Can we port a rom from HTC desire to Motorola defy....is it easy??
HIT THANKS IF IVE HELPED
extremists said:
Can we port a rom from HTC desire to Motorola defy....is it easy??
HIT THANKS IF IVE HELPED
Click to expand...
Click to collapse
That's about as hard as it gets.
Unless building from source its not as difficult.
Sent from my PG86100 using Tapatalk
wes342 said:
That's about as hard as it gets.
Unless building from source its not as difficult.
Sent from my PG86100 using Tapatalk
Click to expand...
Click to collapse
Do u know how to port??
HIT THANKS IF IVE HELPED
The thing is there's also no real guide on how to make your own public repo for devices who don't have one .
E.g. Galaxy R
Herpderp Defy.
So I found out how to build from cm7 sources and it is a no go... I do not know how in the world you guys can port any roms. How do you get your files up on git hub any way? There is more to it then just compiling from cm sources..
Here's a slightly outdated one
EmoBoiix3 said:
The thing is there's also no real guide on how to make your own public repo for devices who don't have one .
E.g. Galaxy R
Herpderp Defy.
Click to expand...
Click to collapse
Just so its clear... this (slightly outdated) guide would be (the best I've found) for building a device tree (that you may elect to throw up on github) that can be used to build AOSP.. the same device tree probably could build CyanogenMod or MIUI fairly easily (minimal editing) but you are correct... no exact guide bc its not an exact science (lots of different devices out there with lots of different device configurations; even kernels different some are ti omap, some are qualcomm msm, etc.). Basically you build a tree to define your hardware.. AOSP, CM or MIUI will build themselves based on this definition (device) tree.
http://www.kandroid.org/online-pdk/guide/build_new_device.html
Now after you follow this guide, google the various build errors you get (one at a time) and perfect your tree until you get basic bring up... then perfect it some more until you get all your modules working (will take some aosp kernel cooking as well)... then perfect it some more... in a few months you should have something pretty decent (and learn tree building a bit more; we all learn by doing ) Best advice I have for you; going through the same thing myself.
Also wouldn't be a bad idea to download Hardware Info apk (Sleek Apps) and email yourself the info it spits out. That way you at least have a list of some of the hardware you are trying to define.
Rob
mDroidd said:
It's simple:
grab the sources from github, add your device and vendor folder, add the device to the list in the mk files, lunch, and build.
openetna is a repository with many bugfixes, as you will have them.
Easy ****!
Click to expand...
Click to collapse
How exactly do you do this? How do you build it completely specifically for your device?
Sorry, I'm a complete noob on building from scratch and Linux. Could anyone shed some some light?
Thanks you guys

Compiling CM9 for the Desire X - for noobs

Hey all, since a lot of folks are wondering about custom roms for the DX, I decided to start this thread to document my exploits in trying to compile CM9.
Basically, I'm new to Android (had an iPhone 3GS for about 2 years) so I'm going to need a lot of help and this is really going to start of very basic. But since I had my Desire X and been on this forum, I have met more and more cool people that are actively trying to help development for our phone, like stereo8,maartenxda and yasir, so I'm sure we'll be alright. None of this would be even possible if not for LLior that made the CWM recovery for us. :good:
OK, so to build CM9 you need a build environment set up specifically for the job, there's many guides out there on how to do this, but I found this one (props to mbroeders, OP of the tut) pretty good :
http://forum.xda-developers.com/showthread.php?t=1566224
Basically, building CM9 is done in linux, Ubuntu being the most popular version, and I'll be using the latest Ubuntu 12. If you don't use Ubuntu as main OS, you can still try this, but you'll need to set up a good (!) portion of your harddrive to install it in a virtual environment, like VMWare Player (free). Mind you, we'll be downloading the CM9 source, which ended up being around 10 gig on my pc, and we'll be needing at least another 16 gig to actually build CM9. To be on the safe, I set aside 50 gig on my drive for the virtual Ubuntu-pc in VMWare.
The guide I'm using will show you how to set up a general build environment, but since we are talking about the Desire X, which is brand new and without official CM support (yet?), we are going to have to adapt it to make CM9 for our phone. Several people have already worked on this, mainly Lloir, so I got his permission to use the stuff he's already done. A big thanks btw, from one and all
And this is basically the first time I'm going to need help. To adapt the build system specifically for the DX, we'll need to make a local_manifest file that points it to device and vendor trees LLoir has made. The local_manifest is supposed to go in the .repo folder of your CM9 source.
How do I do this ?
Goto cm9 wiki and install all prerequisites. Then do a repo init of the main build tree(cm9) and then add the device trees to manifest.xml found in .repo. after that , you sync via repo sync and then you setup environment through envsetup.sh and then you build for protou by brunch protou. Debug the errors you encounter. That's about it. If it doesn't boot after successful build, then the device/hardware/vendor/kernel trees need some sorting out .
Regards.
Sent from my HTC Desire X using xda app-developers app
help for local_manifest - Llior ?
Morning, googled some more, and found a template for a local_manifest.xml file I'm adapting for the DX.`I prefer to go as much by the book as possible for now, apparently putting these in manifest.xml can mess up your source.
So far, I have :
<?xml version="1.0" encoding="UTF-8"?>
<manifest>
<project name="Lloir/protou" path="device/htc/protou" remote="github" revision="ics"/>
<project name="LLior/XXXXXXXXXXXXX" path="device/htc/msmXXXX-common" remote="github" revision="ics"/>
<project name="Lloir/android_vendor_htc_protou" path="vendor/htc/protou" remote="github" revision="ics"/>
<project name="Llior/XXXXXXXXXXXXX" path="kernel/htc/msmXXXX" remote="github" revision="XXXXXXXXXXXX"/>
</manifest>
The XXXX need editing, not sure which repositories though
manifest
Here you go, you can see it for your reference...
Attachment
CM9 - first build - result
Yasir Javed Ansari said:
Here you go, you can see it for your reference...
Attachment
Click to expand...
Click to collapse
OK, using your manifest, I managed to set up the system to build with Lloir's device and vendor trees.
I had to edit the msm7x30.mk file in /device/htc/msm7x30-common though so the first section of it would point to /frameworks/base rather than /frameworks/native as in the original for it to build.
It then compiled to the end, I ended up with a boot.img, recovery.img, system.img and userdata.img, which I turned into a .zip file to flash in CWM.
It installs, but gets stuck on the HTC-logo screen, but I can't take a logcat -same as with stereo's paranoidandroid : logcat.txt says logcat cant be found in /sbin/sh- even when I create a sbin/sh folder with logcat.
Anyone know what I'm doing wrong ? I would really like to see what's going on during boot.
infernal77 said:
OK, using your manifest, I managed to set up the system to build with Lloir's device and vendor trees.
I had to edit the msm7x30.mk file in /device/htc/msm7x30-common though so the first section of it would point to /frameworks/base rather than /frameworks/native as in the original for it to build.
It then compiled to the end, I ended up with a boot.img, recovery.img, system.img and userdata.img, which I turned into a .zip file to flash in CWM.
It installs, but gets stuck on the HTC-logo screen, but I can't take a logcat -same as with stereo's paranoidandroid : logcat.txt says logcat cant be found in /sbin/sh- even when I create a sbin/sh folder with logcat.
Anyone know what I'm doing wrong ? I would really like to see what's going on during boot.
Click to expand...
Click to collapse
Stock Rom showed our device shares common config from msm7k and not msm7x30. I'll try another build with some modified things to see if it boots . One thing you can do is to compare lloir device tree with other trees of similar devices to verify whether we are missing something critical. Also did you use pre.built kernel ?
AND framework native is used in jelly bean , not ics. You're syncing jelly bean cm source and device tree is currently for ics. Recheck please.
Sent from my HTC Desire X using xda app-developers app
Yasir Javed Ansari said:
Stock Rom showed our device shares common config from msm7k and not msm7x30. I'll try another build with some modified things to see if it boots . One thing you can do is to compare lloir device tree with other trees of similar devices to verify whether we are missing something critical. Also did you use pre.built kernel ?
AND framework native is used in jelly bean , not ics. You're syncing jelly bean cm source and device tree is currently for ics. Recheck please.
Sent from my HTC Desire X using xda app-developers app
Click to expand...
Click to collapse
Hm, thanks for the input, Yasir. I was wondering about it, I just synced using the default.xml in the last post. I guess that means I was using the prebuilt kernel as well. Don't worry about the source code I synced, it's definitely cm-ics. As far as I can see, there aren't files relating to msm7k in Lloir's github. I'll see if I can find out about a device that uses the msm7k.
cheers :good:
EDIT : Yasir and me are working together on trying to get a CM9 to the Desire X, anyone that wants to help (preferably with experience) is welcome Use this thread to keep things organised. Thanks
update on CM9 - wip - all help welcome !
OK, update on what's happening :
Because our phone has a new Qualcomm processor there's no CyanogenMods out yet for any device that uses it, let alone by HTC, that we can compare it to. This could help us out a lot to get the device specific information and sources the build system needs to make us a CM9. This info and these files are contained in and referred to by the so-called device and vendor trees. Lloir has done the most work for the Desire X up to now in making these device and vendor trees, but since first test builds aren't booting, Yasir and me are going over them again.
By the way, if anyone knows more about why logcat doesn't work, that would be extremely helpful. All response I get is that logcat isn't in /sbin/sh. I tried adding it to a separate /sbin/sh folder in my test build, but no dice
Good news is I found out the MSM8225 chipset was designed to be fully backward compatible, both hardware and software, with the MSM7225A and MSM7227A phones, of which Qualcomm sold about a 100 million. So, I've begun studying the device and vendor trees for the HTC Explorer (Pico), which is a MSM7225A model. Important because it has the compatible 7225A chipset and uses the ARMv7 cpu instruction set - which is the same as the Desire X.
We'll keep you guys posted, also when we need testers. :good:
Ours is cortex a5, that's why it is compatible with msm7227. But the not booting issue is probably due to some thing missing or wrong in device.mk. the board config is ok. And kernel source is also available on htcdev and git simonsimons23. The device tree and vendor mk files need correction. At least that's my thinking.
Sent from my HTC Desire X using xda app-developers app
Yasir Javed Ansari said:
Ours is cortex a5, that's why it is compatible with msm7227. But the not booting issue is probably due to some thing missing or wrong in device.mk. the board config is ok. And kernel source is also available on htcdev and git simonsimons23. The device tree and vendor mk files need correction. At least that's my thinking.
Sent from my HTC Desire X using xda app-developers app
Click to expand...
Click to collapse
OK, I'll leave the boardconfig for now (am checking the files alphabetically) and move on to device.mk If I see anything I don't get or differs from the pico source (has official CM9), I'll let you know here or through pm. I was thinking the same about the device and vendor trees, it's our starting point and we're stuck here already lol. I know about the githubs, I'll check the changes (if any) simonsimons made.
I was thinking though : don't we need the 1.18 kernel to do this ? I already flashed the updated kernel with the 1.18 ruu. I checked on htcdev and it only lists the 1.14 kernel source. Or is there a way to get it from a running phone ?
missing logcat....
Hi Guys,
I don't know why logcat is missing, but to obtain kernel messages you could run the "dmesg" command instead.
I would like to participate in DX porting. I got intermediate knowlegde in android, but I'm really good in linux and kernel stuff.
Are you guys hanging around in IRC somewhere so we cant talk directly?
currently I am compiling lloirs tree. It is running for some time already...
hang loose
maze
atmel-touchscreen.kl is not in any git
Hi Guys,
I still try building the stuff, but atmel-touchscreen seems to be missing so I decided to remove it from
htc/protou/device_protou.mk. Now it continues compiling ....
( device/htc/protou/prebuilt/usr/keylayout/atmel-touchscreen.kl:system/usr/keylayout/atmel-touchscreen.kl)
Any progress OP??? I did a recent build with some mods on weekend but it failed to boot. I'm highly suspicious that its a kernel issue although i cant say for sure. If any one manages to boot it, even if its till the boot animation, DO POST AND SHARE, coz then its easier going forward.
Regards
neXus PRIME said:
Any progress OP??? I did a recent build with some mods on weekend but it failed to boot. I'm highly suspicious that its a kernel issue although i cant say for sure. If any one manages to boot it, even if its till the boot animation, DO POST AND SHARE, coz then its easier going forward.
Regards
Click to expand...
Click to collapse
got a logcat? or even a kmsg? you can get the kmsg by rebooting into TWRP mount system and open the file manager in advanced and going into /proc grab last_kmsg from in there, you can also find me on IRC Most days, (except tonight i'm working )
-Lloir
I'm sorry guys, haven't been able to do much for this project anymore...no time (holidays and starting training to become system administrator), not to mention I spilled coke all over my Macbook Pro
Lloir said:
got a logcat? or even a kmsg? you can get the kmsg by rebooting into TWRP mount system and open the file manager in advanced and going into /proc grab last_kmsg from in there, you can also find me on IRC Most days, (except tonight i'm working )
-Lloir
Click to expand...
Click to collapse
Doesnt even get past the splash screen (the one with HTC red letter sentence about private build). I used the prebuilt kernel which i have used in recovery. I'll try getting kmsg though.
Regards
neXus PRIME said:
Doesnt even get past the splash screen (the one with HTC red letter sentence about private build). I used the prebuilt kernel which i have used in recovery. I'll try getting kmsg though.
Regards
Click to expand...
Click to collapse
You can still logcat on that screen if adb sees it
Sent from my HTC One X+ using Tapatalk 2
nopes. I have QtADB running in background with logcat ON all the time. Thats how i can never miss if it gets to boot. But i didnt check kmsg though.
My laptop is in a mess right now and i have jellybean source synced by mistake over night. Now i gotta go back to ICS and it will again take a day to sync as the net is crappy here.
I got a ramdisk hack for you when I get home to enable very early adb. If I had the DX I would do it for you guys, but I'll help where I can. Don't be afraid to pm me if you need to.
Sent from my HTC One X+ using Tapatalk 2
Lloir said:
I got a ramdisk hack for you when I get home to enable very early adb. If I had the DX I would do it for you guys, but I'll help where I can. Don't be afraid to pm me if you need to.
Sent from my HTC One X+ using Tapatalk 2
Click to expand...
Click to collapse
Tell me, should I use pre built kernel or use HTC provided sources?

What is compiling?

Hi,
As a noob i came across a word related to android "compiling". What does compiling exactly mean?
Not very experienced with android but compiling usually means converting codes to executables
Sent from my LT30p using xda app-developers app
Zip->unzip
Compile->install
sony xperia ray
ics 4.0.4 rooted
stock rom
126 posts on XDA and you still don't know how to use Google or a dictionary?
snapper.fishes said:
126 posts on XDA and you still don't know how to use Google or a dictionary?
Click to expand...
Click to collapse
i do but i am not sure does compling mean making a rom?
Nono...see in terms of android.
Decompiling= breaking some files into many parts
Compiling=Joining the broken parts to get back the original file back.
Its usually associated with Decompiling and Compiling apk files to mod them or stuffs.
Dont worry we all were "noobs" once
TarunDham said:
i do but i am not sure does compling mean making a rom?
Click to expand...
Click to collapse
It's not too different from the usual programming definition of compiling. When you write a programme, you write it in a higher language that reads almost like English (unless if you are a nut case/genius who likes coding in assembly). However, for a computer (in this case your phone) to run it you have to translate the programme into machine readable language first. This translation process is called compiling.
Sent from my Nexus 4 using Tapatalk 2
---------- Post added at 01:11 AM ---------- Previous post was at 12:59 AM ----------
Rittik said:
Nono...see in terms of android.
Decompiling= breaking some files into many parts
Compiling=Joining the broken parts to get back the original file back.
Its usually associated with Decompiling and Compiling apk files to mod them or stuffs.
Dont worry we all were "noobs" once
Click to expand...
Click to collapse
I am afraid that is not the correct definition of compiling. The apk file is just a zip file of media files and code. When you break apart an apk file all that you are doing is just unzipping. The codes are still inaccessible. To be able to read them humanly you need to decompile the codes, which is usually impossible. That is why people need to post source codes.
Compiling takes quite a bit of computing power and can take hours if your code is long. Packaging and signing an apk? Not si much.
Sent from my Nexus 4 using Tapatalk 2
phew........... dat was a lot... hahaha i read a tutorial here that says "compile a gingerbread rom" so will that tut make me a gb rom??
It should, just make sure it's meant for your phone
Sent from my Nexus 4 using Tapatalk 2
snapper.fishes said:
It should, just make sure it's meant for your phone
Sent from my Nexus 4 using Tapatalk 2
Click to expand...
Click to collapse
here's the link
http://forum.xda-developers.com/showthread.php?t=1598713
so what do u think?
That guide was for porting roms made for other devices using roms that already exist for your device. For example, someone has already made a cm7 rom for your device, but you want a miui rom. Since miui is based on cm7, you can use the guide to create a miui rom for your device. However, if nobody has made a cm7 rom for your device, you cannot use that guide to port miui rom.
If you read the guide carefully, it's just a while load of copy and paste work, hence not compiling. The guide teaches you to take advantage of existing work done by other people instead of starting from the scratch, but it can't teach you to build a rom from scratch.
Sent from my Nexus 4 using Tapatalk 2
snapper.fishes said:
That guide was for porting roms made for other devices using roms that already exist for your device. For example, someone has already made a cm7 rom for your device, but you want a miui rom. Since miui is based on cm7, you can use the guide to create a miui rom for your device. However, if nobody has made a cm7 rom for your device, you cannot use that guide to port miui rom.
If you read the guide carefully, it's just a while load of copy and paste work, hence not compiling. The guide teaches you to take advantage of existing work done by other people instead of starting from the scratch, but it can't teach you to build a rom from scratch.
Sent from my Nexus 4 using Tapatalk 2
Click to expand...
Click to collapse
i totally agree with you but in the start of the post the guy says "Android Source | Compile GB | Compile ICS | Compile JB ~ Thanks dastin1015 |- Building/Compiling - Durations" what does that mean? will the link to the tut help me make a gingerbread for my ics based device??
and last advice will porting any roms to my device has any threat to it like bricking???
I took a look at those links. The first link is simply what it says - the basic source code for Android. The other compile links contain instructions on how to compile the source code into roms. They do not teach you how to write the source code for different devices, which is the most difficult part of porting a rom. Anyone can learn to compile a rom from pre written codes. It's the writing part that matters. You need to find the drivers and other proprietary codes for your device.
The guides can help you get started on making a gingerbread rom, but it won't fix the hundreds of bugs you are sure to encounter.
As for bricking, there's always going to a chance that flashing a rom might brick your device.
Sent from my Nexus 4 using Tapatalk 2
snapper.fishes said:
I took a look at those links. The first link is simply what it says - the basic source code for Android. The other compile links contain instructions on how to compile the source code into roms. They do not teach you how to write the source code for different devices, which is the most difficult part of porting a rom. Anyone can learn to compile a rom from pre written codes. It's the writing part that matters. You need to find the drivers and other proprietary codes for your device.
The guides can help you get started on making a gingerbread rom, but it won't fix the hundreds of bugs you are sure to encounter.
As for bricking, there's always going to a chance that flashing a rom might brick your device.
Sent from my Nexus 4 using Tapatalk 2
Click to expand...
Click to collapse
thaknz a lot for ur help
To sum up in basic words, compiling is turning a code from a high language into machine code so the computer can read it.
Also , if you din't know what is compiling i don't think you should be making roms

Categories

Resources