[Q] AOSP Build. I need help. Yes I am a complete noob. - Android Q&A, Help & Troubleshooting

Okay, so I am a complete noob when it comes to this. I understand what it means, I have downloaded the source code for my device as well as the source provided by google.
My device is the Epic 4G Touch, and I was wondering where I would start in order to build android from source with my device.
I set up my working directory and performed the repo sync to have the google source up to date, I then downloaded the samsung source for my device (SPH-D710) which came with both kernel and platform files, however I am at a loss as to what comes next. I
assume I need some sort of programming language but I am not sure. Am I over ambitious? did I miss an obvious step?

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] How to add new device tree,new kernel source code to CM source & compile?

Hello everybody.
I have a noob question about compile cyanogenmod for my new device.
Now, i have: CMW recovery, Kernel source code on local computer, full repo cm source + toolchains.
How to add my device tree, kernel source code to CM source and compile CM7 ROm?
Thanks you, cheer
Anyone here?
Did you figure it out yet? I asked the same question and am waiting for an answer, tho I'm on CM 10, HTC Vivid. If I figure it out I'll post back and try and help.
nguyenhonganh said:
Hello everybody.
I have a noob question about compile cyanogenmod for my new device.
Now, i have: CMW recovery, Kernel source code on local computer, full repo cm source + toolchains.
How to add my device tree, kernel source code to CM source and compile CM7 ROm?
Thanks you, cheer
Click to expand...
Click to collapse
I met the same problem, does anyone can help?
Do you have a device tree? Or do you have an unsupported device? If you have an existing device tree from some other ROM, etc, then you just need to edit your .repo/local_manifest/roomservice.xml to pull in the trees that you need.
If you need to create a device tree, then it gets not complicated, as each device is different. The basic process is to create the necessary directories (device/manufacturer/model, kernel/manufacturer/model (may need to be kernel/manufacturer/device_family/model, for reference to that, see CM's repo for the LG G3) and finally vendor/manufacturer/device.
After you have the directories setup, you will need to actually start building the tree. The easiest way is to copy another devices files into your devices tree, and then edit the files. The closer the device you copy in is, the less work you will need to do to the files. Refer to sites like gsmarena.com, PhoneArena.com, etc for phone specs.
That's about as far as I can take you without dealing with a specific device. If you need more info, post back here with your questions, and post your device specs, or at least the model number,and I'll see if I can help.
rassawyer said:
Do you have a device tree? Or do you have an unsupported device? If you have an existing device tree from some other ROM, etc, then you just need to edit your .repo/local_manifest/roomservice.xml to pull in the trees that you need.
If you need to create a device tree, then it gets not complicated, as each device is different. The basic process is to create the necessary directories (device/manufacturer/model, kernel/manufacturer/model (may need to be kernel/manufacturer/device_family/model, for reference to that, see CM's repo for the LG G3) and finally vendor/manufacturer/device.
After you have the directories setup, you will need to actually start building the tree. The easiest way is to copy another devices files into your devices tree, and then edit the files. The closer the device you copy in is, the less work you will need to do to the files. Refer to sites like gsmarena.com, PhoneArena.com, etc for phone specs.
That's about as far as I can take you without dealing with a specific device. If you need more info, post back here with your questions, and post your device specs, or at least the model number,and I'll see if I can help.
Click to expand...
Click to collapse
I have a mt6750 devices... And there is a device from my company manufacturer.. Its a mt6750 device, it have cm device tree.. Both device working on same rom.. I can port that device rom but it always give me bugs.. So my question is how to use it?

How do I develop an image for my Samsung Galaxy Note 3 from the Samsung Source Code?

I have a Samsung Galaxy Note 3 which I want to build an image for. I followed the procedures given by http://wiki.cyanogenmod.org/w/Build_for_hlte#Prepare_the_device-specific_code and I was able to compile it successfully. But I have an issue, and that is I need to patch the code to get additional functionality. The patch I need to apply is only available for Jelly Bean, and the Cyanogenmod procedures use Kitkat. I tried to manually apply the patch, and I had to remove a number of lines before the image compiled. But when I flash the phone with it, I get an error about NFC adapter. Basically the message says that NFC adapter is disabled. I think I know why it says that. The patch is for allowing extended functionality of NFC adapter, and well you know...It seems like either me or the patch broke the NFC adapter. Most likely it was me I tried to download the Jelly Bean version from Cyanogenmod repo, but the procedures explicitly say not to. And when I tried, I get a repo sync error and the whole thing does not download. So I am trying to do something different. I like to download the phone's source code from Samsung Source code. But that is just the kernel as I understand it. There is a lot of what Cyanogenmod people call "proprietary blob", which they provide a way to extract from the phone. So this is why I am where I am, and I am trying to mix the two together. Please tell me if there is a better way for me. And if not, then I like to know if it is possible for me to replace the Cyanogenmod source that I downloaded from Git repository with the Samsung Source and successfully compile it. I wish I could just download Cyanogenmod's version 10.5; I think they remove the previous version due to resource issues. I am not sure. I have to say Cyanogenmod rocks. My understanding is most developers there and here on this site are really busy. More power to you guys. You are really doing a big service for the open source community. Thank you all.
Thread moved to Q&A.

Atempting to build an AOSP-based rom - and I've got a question.

Hey guys...hoping someone here who is wiser than I can offer some information on how I might complete the task I am after. I've got limited knowledge in the rom-building department, but would really like to learn at least enough to "get my feet wet" so to speak, and so I'm trying hard to do just that. I would like to build a version of SlimKat based on the latest code available, and have it be compatible with our device (the VS985). I've gotten so far as to set up the Ubuntu build environment and everything, installing repo and initializing the directory with the SlimKat 4.4.4 caf (by doing repo init -u git://github.com/SlimRoms/platform_manifest.git -b kk4.4-caf), and finally repo sync'ing the whole thing.
I'm pretty sure that I need to eventually use the ". build/envsetup.sh" and then "brunch vs985" commands to begin the actual build process itself, but my main question now even after all the tutorials I've read is whether or not there are additional "device-specific" commands I need to run or things need to do or sync in order to make the final product compatible with our VS985. I found a tutorial on building CM11 for our device, and it talked about having to create a local_manifest.xml file and then repo sync'ing again, but this is pretty much where I got lost and where I'm still quite confused. Can anyone with prior AOSP building experience help me out with some idiot-friendly () pointers/instructions and explanations on where to go after repo sync'ing? I would seriously appreciate any help anyone can offer. Thanks!!
ohlin5 said:
Hey guys...hoping someone here who is wiser than I can offer some information on how I might complete the task I am after. I've got limited knowledge in the rom-building department, but would really like to learn at least enough to "get my feet wet" so to speak, and so I'm trying hard to do just that. I would like to build a version of SlimKat based on the latest code available, and have it be compatible with our device (the VS985). I've gotten so far as to set up the Ubuntu build environment and everything, installing repo and initializing the directory with the SlimKat 4.4.4 caf (by doing repo init -u git://github.com/SlimRoms/platform_manifest.git -b kk4.4-caf), and finally repo sync'ing the whole thing.
I'm pretty sure that I need to eventually use the ". build/envsetup.sh" and then "brunch vs985" commands to begin the actual build process itself, but my main question now even after all the tutorials I've read is whether or not there are additional "device-specific" commands I need to run or things need to do or sync in order to make the final product compatible with our VS985. I found a tutorial on building CM11 for our device, and it talked about having to create a local_manifest.xml file and then repo sync'ing again, but this is pretty much where I got lost and where I'm still quite confused. Can anyone with prior AOSP building experience help me out with some idiot-friendly () pointers/instructions and explanations on where to go after repo sync'ing? I would seriously appreciate any help anyone can offer. Thanks!!
Click to expand...
Click to collapse
It all depends. If the source you grabbed does not have anything specific for the vs985, then the build command itself won't work. The build scripts and configuration has to be modified to add that build command and even then, it means going into the source and making whatever changes you need to make it specific to the VS985.
Since it's AOSP, it should work no matter what, but that means anything that requires vs985 specific calls to make it work aren't there.
It's not just a magic command that makes it work. You have to go in and figure out what isn't and is working and make the necessary changes.
I'm assuming you are a programmer? If not, better learn.
iBolski said:
It all depends. If the source you grabbed does not have anything specific for the vs985, then the build command itself won't work. The build scripts and configuration has to be modified to add that build command and even then, it means going into the source and making whatever changes you need to make it specific to the VS985.
Since it's AOSP, it should work no matter what, but that means anything that requires vs985 specific calls to make it work aren't there.
It's not just a magic command that makes it work. You have to go in and figure out what isn't and is working and make the necessary changes.
I'm assuming you are a programmer? If not, better learn.
Click to expand...
Click to collapse
I see. I have had some very basic programming exposure, but I wouldn't consider myself anywhere near skilled and it's been a while haha. Well I do appreciate the info and I'll probably be best off leaving this to those much smarter than I Thanks!
ohlin5 said:
I see. I have had some very basic programming exposure, but I wouldn't consider myself anywhere near skilled and it's been a while haha. Well I do appreciate the info and I'll probably be best off leaving this to those much smarter than I Thanks!
Click to expand...
Click to collapse
I don't want to scare you off. If you feel like you want to learn something new, then don't hold back. I just wanted to let you know that it's not just a simple "grab the source from another phone and compile it for the G3". That's why you'll see different ROMs for each of the different phones. But, in the case of this phone, you all have to add the bump to the ROM in order for it to work and that is specific to each version of the G3. You can't take a bumped D850 (AT&T) ROM and just flash it onto a Verizon G3 (VS985). It won't work.
Now, bumping is not that hard as one of the posts on how to compile a ROM for the G3 gives you the instructions to "bump" your ROM, which is done after you've compiled it. Where it gets more difficult and requires some more tech savy and programming knowledge, is how to modify the ROM to take advantage of the hardware specific to the G3. The AOSP code pulled down for say CM11/CM2 is just that - AOSP. What you were doing was taking a completely different ROM's base source and trying to make that work on the G3. Not impossible by any means, but would require more than just a basic understanding of programming. You also need to understand how the Android OS works, etc. Again, not a trivial task by any means, but also, could end up being something that challenges you to learn more and eventually become a contributor to the G3 dev forums.
I myself am a programmer. I've been learning Android app development but I also wanted to delve into ROM building and was grateful to see the post on how to do so, so I'll be looking into that when I can, but I know it's not an trivial thing to master, but I'm a persistent person and most of my computer programming I learned was self taught when I was in high school on an Apple ][+ and //e. Those were the days when Apple wasn't so closed. Woz had a hand in wanting to keep it open - Jobs didn't. We all know who won on that count.
Any ways, if you are up to a challenge and like solving problems, programming is definitely the way to go.
I've been trying to build my own just for fun as well, but after I brunch, it doesn't create a zip.
I've been following this guide: http://forum.xda-developers.com/lg-g3/general/guide-how-to-build-cyanogenmod-11-d850-t2971538
I feel like it has something to do with my local_manifest.xml, but it's probably because I tried building CM12 and it's not as easy as just changing the branch...
Probably just going to start over from scratch with CM11 and see how it goes.

what software/packages do you need to get a specific device working from AOSP stock

hello again peeps,
ive been gently banging my head around these past few days because i keep walking into knowledge pockets and nothing i can find, in the form of help or internet information, is filling in these holes. i originally planned to take my oneplus device and obtain the source code for oxygenos so i could build and customise it. this seems to have become a dead end so now i just want to build stock android via AOSP, but i dont understand what software i need to get the AOSP working on any device, so far i understand that you need 3 components; 1) Kernel 2) Vendor files (if any) 3) "Proprietary binaries".
The problems are, i have no idea how to obtain these "proprietary binaries", i have no idea where to put any 3 of them in the downloaded android source tree (after repo sync), and i dont know if thats all the information i need to atleast build and flash a stock image onto any phone. i think i have the kernel files i need on OnePlusOSS github and there is a vendor.img in the OTA update files, and a directory in my phone. if anybody could please guide me in the right direction, it'd be very cool. i just want to get started and have some fun.
0
Seppppx said:
You can't customize Oxygen Os as the source code doesn't exist for that. (It's not required for companies to publish that.)
What phone do you have? You already might have the required trees to build AOSP (or at least LineageOS)
You need
1. A Device Tree
2. The kernel (you can use the prebuilt kernel if you really want)
3. The proprietary vendor blobs located in the vendor partition.
You will probably have to download the aosp-caf source code instead of aosp for it to be more easy.
https://www.youtube.com/channel/UCnGqG_jyyXmTzdamBpKfeHA
This is a great channel about Android building and has about everything you need to know.
Click to expand...
Click to collapse
thank you for every inch of text in your reply. I have a oneplus 8. Ah right, so the vendor folder CONTAINS the proprietary binaries/blobs.
it seems safest for me to use the kernel in the manufacturers github for the first flash as i want to be careful with making changes. may i ask what "aosp-caf" is? or can i find out using the resource you provided? thank you again.
my new understanding is, you need; 1) android source (e.g android-10-r5) 2) kernel 3) proprietary blobs. this helps a lot and is a lot clearer. the last issue i have is with knowing where to put the kernel and the blobs. i think if i am not mistaken you put the blobs in a vendor folder after the build? i am unsure with the kernel. i am going to definitely check this guy out. your time means a lot to me.

Categories

Resources