[Q] Building questions - Samsung Galaxy Nexus

Hi,
this weekend I decided to give it a go and compiled my first ever rom. Of course just a basic one, build from the latest source (4.0.3). All went fine, got it working. So I do understand the basics for now. However, regarding the source and building 'material' I have some questions. I could not find a proper answer with google, so maybe someone here could help me. I'm not asking for a complete guide, just a pointer in the right direction would be great!
1) How do I clean up my previous build. Is it really as simple as 'make clean'?
2) Right now I've synced the 4.0.3 branch. Let's say I want to build just the kernel. Do I set up a new directory where I sync the kernel sources, or can I do it from within my current directory, but without building the full rom?
Thanks in advance. Right now I focus on the basics, my next step would be to use GIT. But for now, if anybody could help me with the above (or knows a good -tutorial/beginners- site with some tips on building a kernel) that would be great! Thanks!!

Related

Modifying Android's built-in apps

Hi guys!
I'm wondering what I'd have to do if I wanted to modify the built in apps inside Android..
I've got a HTC Hero running FroydVillain 1.5.0. Let's say... I want to modify the messaging app that's included, MMS.apk. I wouldn't know how to go about this, and I have a few questions...
Firstly, what sources exactly are used for building the built in apps for a given ROM? The source code link in the FroydVillain post, for example, is just for the kernel. The rest of the OS isn't there.
Secondly, I hear that in order to modify a built in app, you need to build the entire OS. If I just download all the code from Google official repo, and compile that, will it just... work on my phone, provided I use a kernel that is specific to my phone?
Lastly, are there any tips anyone has for someone who just wants to modify a couple of the built in apps? Is it possible to build them as standalone apps? Or import them into Eclipse?
I've had a search around the forum and the internets in general, and people have asked similear questions, but I've yet to find a good answer. This thread comes to mind: http://forum.xda-developers.com/showthread.php?t=635197
If anyone could help me, or point me in the direction of any help, that'd be awesome! Thanks!!
FunkTrooper said:
Hi guys!
I'm wondering what I'd have to do if I wanted to modify the built in apps inside Android..
I've got a HTC Hero running FroydVillain 1.5.0. Let's say... I want to modify the messaging app that's included, MMS.apk. I wouldn't know how to go about this, and I have a few questions...
Firstly, what sources exactly are used for building the built in apps for a given ROM? The source code link in the FroydVillain post, for example, is just for the kernel. The rest of the OS isn't there.
Secondly, I hear that in order to modify a built in app, you need to build the entire OS. If I just download all the code from Google official repo, and compile that, will it just... work on my phone, provided I use a kernel that is specific to my phone?
Lastly, are there any tips anyone has for someone who just wants to modify a couple of the built in apps? Is it possible to build them as standalone apps? Or import them into Eclipse?
I've had a search around the forum and the internets in general, and people have asked similear questions, but I've yet to find a good answer. This thread comes to mind: http://forum.xda-developers.com/showthread.php?t=635197
If anyone could help me, or point me in the direction of any help, that'd be awesome! Thanks!!
Click to expand...
Click to collapse
1) The whole sources for everything are there
http://github.com/ninpo
2) You can import the sources to eclipse, but I think you will need to build the entire tree, as opposed to just what you change
3) Apktool lets you do smali and resource edits on an APK. Without knowing what you aim to do, it's hard to guide you specifically.
Most apps are based on the sources provided by google. I assume you are talking about Froyo Hero ROMs (i.e. FroydVillain), which apps are generally built from the source of CyanogenMod. Specifically for FroydVillain, if you look around ninpo github you will see some packages with some changes to their code, although it does seem that many of the changes in recent releases are not there. I have actually PMed ninpo about this and hopefully this is only a technicality.... I assume that the other packages and apps (most of them) he just compiled off the CM sources without changes.
In any case, if you compile an app either from the CM source or from google's original sources, it should work just to copy the apk file - just make sure you use an appropriate ROM (i.e. Froyo ROM if you built it from Froyo sources). The reason to want the CM sources, is that if they have incorporated further fixes (over the google sources) you may want them.
Finally, some more practical advice: I would start with the google sources: http://source.android.com/source/index.html since I have found these instructions and explanations easier to begin with - it should be quite straight forward to build these sources on a linux machine (or VM).
Then you can also try to tackle the cyanogen source: http://wiki.cyanogenmod.com/index.php?title=Building_from_source currently missing instructions on how to build for hero. But if you only want to copy apks out of it, you can just build a generic build (like in the google souce).
If you have specific problems, ask and I'll try to help you.
Good luck.
pulser_g2 said:
1) The whole sources for everything are there
http://github.com/ninpo
Click to expand...
Click to collapse
For example where are all the changes to the dalvik code? I do not follow closely enough the changes in Froyd to point out other things which might be missing (if at all), but there are relatively few committed changes to the CM code. Specifically the dalvik code, ninpo mentioned hundreds of changes which caught my interest and are definitively not there.
The kernel sources do seem to be up to date always - been following that one closely .
Thanks for the advice I love this forum!
What I'm trying to do, in case you're wondering, ultimately, is to modify the built-in messaging application to give the user the option of sending a message by the normal method, or by using their provider's free webtext service, something that all the carriers seem to offer here in Ireland.
So, for example, you'd press the Send button, and you'd be able to select one of those methods. (of course, you'd have to have a data connection for the webtext). There's also be an interface for entering your login credentials for your carrier's website.
I'm doing this party because it would be very useful. I also feel that it would give me a good introduction to how you'd go about modifying Android. I mean, from a programming point of view, it shouldn't be *too* hard to do. I already have a simple standalone app that I made which can send a text message via an Irish carrier's webtext service. But it's all good experience to try to modify other people big codebases.
I have a good bit of experience with web application development, but my experience with other programming is a little more limited. I usually use PHP, where there's none of this compiling nonsense. You just write scripts and off they go!
So I'm gonna go off and see if I can set up an environment where I can build.. the OS, I guess.
If I was to take the vanilla official Google sources, would they work on my phone? Or would I have to use an official Google developer phone... or the emulator? Or maybe if I stopped writing here and investigated those links you've provided, I'd know that by know.
Brb, investigating
Yeh investigating and just trying to do it is usually the best way
To clarify what I was trying to say above: All the java code is obvious very portable - one of the big advantages of java. In the case of android it is compiled to an .apk file and this file should be, at the very least, portable to all android "devices" running this android version. So the apk you build (for example from the vanilla 2.2 sources) should work on the emulator (good for initial debugging) and any 2.2 ROMs.
erasmux said:
For example where are all the changes to the dalvik code? I do not follow closely enough the changes in Froyd to point out other things which might be missing (if at all), but there are relatively few committed changes to the CM code. Specifically the dalvik code, ninpo mentioned hundreds of changes which caught my interest and are definitively not there.
The kernel sources do seem to be up to date always - been following that one closely .
Click to expand...
Click to collapse
I'm currently on "vacation" from any and all Android development for a week. I'll be back after the weekend, at which time my modifications will be cleaned up and committed to git. The kernel is always current with my latest kernel release due to GPL obligations. The extra time away has also highlighted some changes I need to make both to the kernel and to my Android modifications when I get back.
Hacre said:
I'm currently on "vacation" from any and all Android development for a week. I'll be back after the weekend, at which time my modifications will be cleaned up and committed to git. The kernel is always current with my latest kernel release due to GPL obligations. The extra time away has also highlighted some changes I need to make both to the kernel and to my Android modifications when I get back.
Click to expand...
Click to collapse
Thanks Ninpo

[Q] Kernel Development for The Sprint Note 2

Hello Guys,
I am a developer of windows apps and I also do some web development stuff. I have also for the last couple of weeks been playing around with the android SDK and building apps for my phone. I have wanted to get into kernel development for my device, but I have had trouble finding a good place to start. I know I can follow the google directions and build a kernel, but that may not be specific to my device.
I was first wondering is there a kernel (Perferably AOSP like Cyanogenmod) that i can compile just get used to the build process. I belive I have already found that, it being this kernel right here:
https://github.com/CyanogenMod/android_kernel_samsung_smdk4412"]https://github.com/CyanogenMod/android_kernel_samsung_smdk4412
(Sorry, Im under ten posts.)
But this is where the confusion starts for me. I see this as a base of a lot of kernels for the note 2, but I notice the kernel is for the Galaxy S3. So in short, is there a good way to start learning how to build and modify android kernels for my Note 2? If so, do you have any recommendations on what kernel to base of of, or any tips or tricks, or etc?
PS: I am a "Newbie" by the forum standards so i can't post in the dev section.
R3liant said:
Hello Guys,
I am a developer of windows apps and I also do some web development stuff. I have also for the last couple of weeks been playing around with the android SDK and building apps for my phone. I have wanted to get into kernel development for my device, but I have had trouble finding a good place to start. I know I can follow the google directions and build a kernel, but that may not be specific to my device.
I was first wondering is there a kernel (Perferably AOSP like Cyanogenmod) that i can compile just get used to the build process. I belive I have already found that, it being this kernel right here:
https://github.com/CyanogenMod/android_kernel_samsung_smdk4412"]https://github.com/CyanogenMod/android_kernel_samsung_smdk4412
(Sorry, Im under ten posts.)
But this is where the confusion starts for me. I see this as a base of a lot of kernels for the note 2, but I notice the kernel is for the Galaxy S3. So in short, is there a good way to start learning how to build and modify android kernels for my Note 2? If so, do you have any recommendations on what kernel to base of of, or any tips or tricks, or etc?
PS: I am a "Newbie" by the forum standards so i can't post in the dev section.
Click to expand...
Click to collapse
You might want to start here http://forum.xda-developers.com/forumdisplay.php?f=1896
Check the Matrix thread, devil kernel and Garwyn's experimental kernel thread. These might give you some ideas
davidh59 said:
You might want to start here http://forum.xda-developers.com/forumdisplay.php?f=1896
Check the Matrix thread, devil kernel and Garwyn's experimental kernel thread. These might give you some ideas
Click to expand...
Click to collapse
Thanks! I have been testing around, but two problems have come up,
I have searched multiple threads and got as many dependencies as I could, but I still needed the toolchain. I got the android NDK, and used this guide:
http://xda-university.com/as-a-developer/getting-started-building-a-kernel-from-source
I used the arm-linux-androideabi- toolchain, is that ok? Even if it is, is there a better or recommended tool chain?
Another problem I had is when compiling the source I got a "error unknown pseudo-op .arch_extension" when it was compiling the devices section of the kernel.
Any thoughts and help would be appreciated.
Cheers,
R3liant

Building Latest AOSP

Okay so with the help of a lot of people and hours of work I have successfully built a kernel for the sg3. I want to take the next step to roms however (I know, big step).
Using the xda-university thread I have setup a repo and am currently pulling the latest 4.3 AOSP source (will let it sit overnight, my internet isn't too amazing and I have HDD not SSD *sadface*)
As far as I understand it so far, I need to find suitable device tree sources to get AOSP sources working on the sg3 (at&t for now). I have been doing a lot of searching and reading, but as usual when you get started, its like a sea of information. If anybody could give me some reading material or direction on taking on this venture, it would be much appreciated. Feel free to be as technical or nontechnical, I will read til I get what you mean.
Thanks
EDIT: so I did some reading and decided to go with cm's d2 device tree and see if it works. I created a new directory in /root/devices/samsung called android_device_samsung_d2-common
Unfortunately when I use the lunch command, it is not one of the selectable options. I read that I need to edit my .repo/manifest.xml to include it but upon examination I tried adding the following line but it didn't help
Code:
<project path="device/samsung/android_device_samsung_d2-common" name="device/samsung/android_device_samsung_d2-common" groups="device,d2" />
any ideas?
Anyone?
If you want to build cm, look here
http://wiki.cyanogenmod.org/w/D2att_Info
It has a very good tutorial on how to build cm
mrhaley30705 said:
If you want to build cm, look here
http://wiki.cyanogenmod.org/w/D2att_Info
It has a very good tutorial on how to build cm
Click to expand...
Click to collapse
Thanks, wanted to build from source directly and just use cm device trees but I guess I should make smaller steps and try basing off of cm first. Thanks for the link, will try
It's also a good way to test your build environment. If you can build cm straight up, then you'll know if something you did broke it. And believe me, trying to chase down build errors is a pita.

[Q] Building unofficial AOSPA ROM - Need Help

Good morning,
as per thread title I'm trying to build my first custom ROM.
As it is my first time ever trying this, instead of starting from scratch I decided to port an existing ROM to our device.
I decided to go for Paranoid Android (AOSPA) ROM, for two reasons: I previously used and liked very much the KitKat version, and there is currently no port of this ROM.
I read a lot of guides on how to do this, and while I learnt a lot, I'm still not quite sure on how to properly do this. So I thought I might ask for some help.
What I learnt so far is this:
1) Fork Paranoid Android's manifest and add compatible device and kernel repositories (I chose @MWisBest's device repo)
2) Fork Paranoid Android's vendor_pa project and add device support
3) Fork device tree and adapt some makefiles
What I still don't quite get is:
1) Apart for device-specific fixes, is this enough to TRY a build?
2) Regarding device, are there some specific fixes to make a working ROM? (e.g. I knew something about block-based OTAs so I disabled them following ParanoidAndroid's change #68 on Gerrit)
You can see my work on GitHub, search for my username Bruno3589 (I'm not allowed to insert URLs right now, I need to make >10 posts).
I'll try a build ASAP, but it might take a while since I'm limited in terms of internet connection and time.
Any help or suggestion is really appreciated!
Thanks in advance and have a good day
P.S. I know MWisBest's device unifies all variants (tuna) instead of making separate ones (maguro,toro,toroplus), I thought it would be useful to have a single build.

making unofficial builds of ROMs for our device

hello,
I've noticed that there is a guide for building CM14 for the oneplus 3. Myself and others have been able to use it to make personal builds and to learn some things along the way.
I would imagine that the next step to progress to would be to make builds of ROMs that don't have a nougat/CM14 branch in their repo for our device. Its pretty easy to brunch, select your device, and wait for the build to finish. But I am very interested in learning how to build a ROM using a device tree from another repo.
I've noticed that @Eliminater seems to be very proficient at this, as he has built and posted unofficials of various ROMs.
I've been trying to teach/learn this myself through searching for guides, but havent been able to find anything that helps me get there 100% of the way.
I've been able to get as far as forking the device tree, editing the .mk and .dependencies files to match the format needed for the ROM I'm trying to build. I've also added the forked device tree and additional repos to the local_manifest. This has gotten me far enough that I have been able to do a successful "lunch", but I haven't gotten a build to finish. In fact, they fail pretty early on.
Is anyone able and willing to explain the process further?
Are there additional steps that I'm missing?
Or do you just need to be proficient enough to troubleshoot error after error when building?
Thanks in advance

Categories

Resources