Help: Understanding Basics of Building and Compiling? - Android

Hi all,
In short i want to modify Android 4.2.2 on my MK802IIIS to allow me to use an external USB WIFI Adapter. The one i have uses a Ralink (MediaTek) RT5372 chipset.
I'm not a beginner, but by no means an expert. I have compiled firmware for my Linux based routers. But compiling Android, or parts of, seems much more complicated. I only want to add support for a USB adapter. Do i need to build the kernel from scratch, or can i create a module? Do i need to cross compile a module or can it be "made" in Ubunutu and just copied across?
I have searched for a RT5372.ko file online, finding references to RT5370, but i dont think it's the same.
I downloaded the driver from the Mediatek website and proceeded to attempt to create a .ko file by making it in Ubuntu but it only created a RT5372STA.dat file. Does this driver need to be cross compilied for android? Also how do i turn it in to a module that i can just load into my currently installed ROM?
I have been poking around for a while so i havent covered everhything i've tried. I'd really like to understand how building for Android works. If anyone can answer any of these questions for me, it'd help me imensely. Or if there is a resource covering these topics that i have yet to come across please point me at it. I know there are a lot of very detailed How-To's for compliling but i seem to get lost with the amount of detail.
Many thanks

More info regarding my setup:
Building in Ubuntu 14.04, 64bit.
The current ROM appears to have been built using the Linaro 4.6.2 toolchain, so u have downloaded that, currently stored in /home/wriggerz/RK3066/Toolchains
Also downloaded the RK3066 Kernel Source, stored in /home/wriggerz/RK3066/RK3066-Kernel
The RT5372 driver has been extracted to /home/wriggerz/RT5572NEW
I've been mashing bits of different guides and suggestions found on other forums together to try and frankenstien this KO module. From within the drivers folder i ran the two commands below. From what i've read this needs to be done to specify which "Toolchain" and "Compiler" to use.
Code:
export CROSS_COMPILE=~/home/wriggerz/rk3066/toolchains/arm-eabi-linaro-4.6.2/bin/arm-eabi-
export ARCH=arm
Then i ran the make command like below to try and have the driver built for the correct Toolchain with the correct Compiler:
Code:
make ARCH=arm CROSS_COMPILE=arm-eabi-linaro-4.6.2
However i get the following response:
Code:
make -C tools
make[1]: Entering directory `/home/wriggerz/RT5572NEW/tools'
gcc -g bin2h.c -o bin2h
make[1]: Leaving directory `/home/wriggerz/RT5572NEW/tools'
/home/wriggerz/RT5572NEW/tools/bin2h
cp -f os/linux/Makefile.6 /home/wriggerz/RT5572NEW/os/linux/Makefile
make -C /lib/modules/3.16.0-30-generic/build SUBDIRS=/home/wriggerz/RT5572NEW/os/linux modules
make[1]: Entering directory `/usr/src/linux-headers-3.16.0-30-generic'
Makefile:652: Cannot use CONFIG_CC_STACKPROTECTOR_REGULAR: -fstack-protector not supported by compiler
make[1]: arm-eabi-linaro-4.6.2-gcc: Command not found
CC [M] /home/wriggerz/RT5572NEW/os/linux/../../common/crypt_md5.o
/bin/sh: 1: arm-eabi-linaro-4.6.2-gcc: not found
make[2]: *** [/home/wriggerz/RT5572NEW/os/linux/../../common/crypt_md5.o] Error 127
make[1]: *** [_module_/home/wriggerz/RT5572NEW/os/linux] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-3.16.0-30-generic'
make: *** [LINUX] Error 2
Someone knowledgeable will hopefully look at the steps i have just taken to rip it to shreds...... :fingers-crossed:
If not, is there anyone with any ideas of where i'm going wrong?

I think i've put this in the wrong section....
If anyone has to go out of their way to move it they have my sincere apologies.

J Double You said:
I think i've put this in the wrong section....
If anyone has to go out of their way to move it they have my sincere apologies.
Click to expand...
Click to collapse
First of all, I would suggest to recompile the kernel and the entire source code (like when building CM), it is way better than insmodding modules every time, and you have less errors to solve. I'm currently writing a guide about building Cyanogenmod to support awus036h wireless adapter, maybe I can have a look for yours too, shouldn't be too hard. There are two or there good references around, however I'm trying to out all of them together in this new one I want to publish. Hope this will help you too.
Don't download a .KO from internet, it's not going to work. You would not only need to build for the specific device, but also for the specific kernel, which may vary from build to build, that's why I recommend to compile the whole kernel. Please consider to download a ROM's source code or your device kernel.
Ciuffy's SM-G900F CM 12.1 spirit hath marked this way. Thank if helped your soul.

Thanks for the helpful response Ciuffy.
Before i ask any more potetnially stupid questions i will do some research on that approach. I look forward to seeing your guide. For now i may be back for some direction.
Thanks again

I do like the ROM i'm on at the minute. NeoTV CR 2.0 (4.2.2), works really well, snappier than others i;ve tried and the benchmark results are pretty good too, but there are a couple of issues with it:
Busybox isnt installed and doesnt install.
Commands dont seem to work in terminal.
Now it doesnt really matter, as i wont be Insmodding the driver now, but it would be nice to have. How do i stay as cose to my current ROM as possible while re-compiling? Do i need to contact the ROM creator and ask them for the source? Should it be available on the web somewhere? Or can i "rip" it off the device? My main goal is to add driver support to the kernel from the drivers srouce files. But it would be nice to have busybox installed too. Was thinking i might re-comile the whole rom, but that be like trying to run before i can stand..... But, learning is amazing, and i learn best by doing!!
Main question: Whats the easiest way to re-compile my current kernel? Do i need source files from the ROM creator? I have asked but havent had a repsonse yet, but it's only been about 16 hours, not even that.

J Double You said:
I do like the ROM i'm on at the minute. NeoTV CR 2.0 (4.2.2), works really well, snappier than others i;ve tried and the benchmark results are pretty good too, but there are a couple of issues with it:
Busybox isnt installed and doesnt install.
Commands dont seem to work in terminal.
Now it doesnt really matter, as i wont be Insmodding the driver now, but it would be nice to have. How do i stay as cose to my current ROM as possible while re-compiling? Do i need to contact the ROM creator and ask them for the source? Should it be available on the web somewhere? Or can i "rip" it off the device? My main goal is to add driver support to the kernel from the drivers srouce files. But it would be nice to have busybox installed too. Was thinking i might re-comile the whole rom, but that be like trying to run before i can stand..... But, learning is amazing, and i learn best by doing!!
Main question: Whats the easiest way to re-compile my current kernel? Do i need source files from the ROM creator? I have asked but havent had a repsonse yet, but it's only been about 16 hours, not even that.
Click to expand...
Click to collapse
Definetely, you should find the kernel source code, I think you can find it on Github, I'll give a look at it. I honestly don't think you can reverse engineer the kernel and recompile it.
Edit: I can't seem to find it. It is also possibile that the source code was not released.
Ciuffy's SM-G900F CM 12.1 spirit hath marked this way. Thank if helped your soul.

Stupid Question: Is the SDK the same thing as the source?
If so i think i found what i need to build from scratch here: http://www.cnx-software.com/2013/08/20/rockchip-rk3066-android-4-2-2-hdmi-tv-stick-sdk-leaked/
If thats right, i need to find a way to add the driver i found to the source so it's included in the compilation.

Boom, think i found my base... And answered my previous question. SDK is not source.
http://freaktab.com/forum/tv-player...73-full-1080p-modded-kit-kat-4-4-2-rk3066-rom
The OP kindly links to the kernel source.
Apologies for spamming my own thread, i like to keep anyone watching up to date with progress so they dont waste their time replying to old stuff.

J Double You said:
Boom, think i found my base... And answered my previous question. SDK is not source.
http://freaktab.com/forum/tv-player...73-full-1080p-modded-kit-kat-4-4-2-rk3066-rom
The OP kindly links to the kernel source.
Apologies for spamming my own thread, i like to keep anyone watching up to date with progress so they dont waste their time replying to old stuff.
Click to expand...
Click to collapse
SDK stands for Software Development Kit, in other words the environment that lets you build applications and related for a specific platform.
So, you found the source you were looking for?
Ciuffy's SM-G900F CM 12.1 spirit hath marked this way. Thank if helped your soul.

Sure did, i also now know which compiler i need.... arm-linux-gnueabi-4.7.
Now to find out how to add the driver i have downloaded to the kernel.
From what i've read i need to "make" the driver, cross compiling in the process, then put some of the resulting files in situ within the kernel source. (along these lines: http://stackoverflow.com/questions/11710022/adding-new-driver-code-to-linux-source-code).

J Double You said:
Sure did, i also now know which compiler i need.... arm-linux-gnueabi-4.7.
Now to find out how to add the driver i have downloaded to the kernel.
From what i've read i need to "make" the driver, cross compiling in the process, then put some of the resulting files in situ within the kernel source. (along these lines: http://stackoverflow.com/questions/11710022/adding-new-driver-code-to-linux-source-code).
Click to expand...
Click to collapse
Excuse me, are you then going to compile the enitre kernel? Waiting for your answer, there should be an easier way to do this.
Ciuffy's SM-G900F CM 12.1 spirit hath marked this way. Thank if helped your soul.

I was going to, based on your suggestion to compile from scratch, but i have most likely mis-understood what it was you were getting at.
Also, i have downloaded a bunch of toolchains and i have arm-linux-androideabi-4.7, but is that the same as arm-linux-gnueabi-4.7
Again, i could be barking up the completely wrong tree. Which is a shame, as i thought i was actually getting somewhere..... hahaha!

As always, your continued input is greatly appreciated Ciuffy.

J Double You said:
As always, your continued input is greatly appreciated Ciuffy.
Click to expand...
Click to collapse
Yes, I was in fact suggesting you to build from scratch, thinking you could include modules for your adapter in the kernel configuration. However, I can't find what kernel module is exactly going to do it. I found rt2800usb, however I am not sure. You may try to include support for rt2800 and also build the kernel module from the driver source code, as explained in that link for example.
Ciuffy's SM-G900F CM 12.1 spirit hath marked this way. Thank if helped your soul.

Ciuffy said:
Yes, I was in fact suggesting you to build from scratch, thinking you could include modules for your adapter in the kernel configuration. However, I can't find what kernel module is exactly going to do it. I found rt2800usb, however I am not sure. You may try to include support for rt2800 and also build the kernel module from the driver source code, as explained in that link for example.
Ciuffy's SM-G900F CM 12.1 spirit hath marked this way. Thank if helped your soul.
Click to expand...
Click to collapse
Ah.... I have downloaded the Linux driver from the MediaTek websitefor the RT5372, but it needs "making". Would cross compiling the driver not give me the modules i need to load in to the kernel?
That link explains how to add the required files, but doesnt explain how they're created. I dont think....

J Double You said:
Ah.... I have downloaded the Linux driver from the MediaTek websitefor the RT5372, but it needs "making". Would cross compiling the driver not give me the modules i need to load in to the kernel?
That link explains how to add the required files, but doesnt explain how they're created. I dont think....
Click to expand...
Click to collapse
If by cross compiling you mean building the kernel module while also compiling the source code and then loading it in the running kernel, yes, as long as you downloaded the drivers compatible with the Linux kernel on your Android.
You can either use the instruction on that link on StackExchange, or follow the "How to build them?" section here:
http://forum.xda-developers.com/showthread.php?t=1455382
Ciuffy's SM-G900F CM 12.1 spirit hath marked this way. Thank if helped your soul.

Thanks Ciuffy.
Seems i've still got some stuff to get my head around. I'll re-read up and come back.

FAIL!!!
Tried flashing the unit with the ROM i was going to compile a kernel for. Looked to go well, but wouldn't boot past the boot splash screen. And after rebooting wouldnt boot at all. Obviously some fundamental incompatibility, or the fact that it cant handle the overclock....
Problem is i have previously broken the OTG port so i have no way to flash using ADB, not until i get a cable soldered in it's place.
Really just wanted to explain why i may be absent from this topic for a bit. I'm going to make some calls to see if any nearby electronics shops can do the job. Once done i'll be back.

J Double You said:
FAIL!!!
Tried flashing the unit with the ROM i was going to compile a kernel for. Looked to go well, but wouldn't boot past the boot splash screen. And after rebooting wouldnt boot at all. Obviously some fundamental incompatibility, or the fact that it cant handle the overclock....
Problem is i have previously broken the OTG port so i have no way to flash using ADB, not until i get a cable soldered in it's place.
Really just wanted to explain why i may be absent from this topic for a bit. I'm going to make some calls to see if any nearby electronics shops can do the job. Once done i'll be back.
Click to expand...
Click to collapse
In case you misunderstood: I just wanted to point out that once compiled the kernel modules along with the kernel, you don't keed to flash the kernel, only insmod the modules.
Hope you can solve the OTG problem, waiting for your response.
Ciuffy's SM-G900F CM 12.1 spirit hath marked this way. Thank if helped your soul.

Related

How do you make a ROM from source?

I've had a look around and I can't see much information on this.
Is there a decent guide, or can anyone post some information on how one would go about compiling a Froyo (or any other release) build from source?
I'm not daunted by the technical complexity and I have no problem putting together a VM to build in and in fact, I did that to build Chrome OS not too long ago.
From what I can see I would just create a git clone of the latest code branch and compile it, although it looks like I would also need some drivers. Where would I get these from?
Would my newly compiled image need to be signed somehow before I could install it?
I have a general understanding of what I need to do, but there are some gaps in my knowledge
Hope this helps,.... Pulser pointed me towards it,... I haven't had a go myself yet as I've been busy,....
Have fun,....
[How to] Rom cooking
MrHorus said:
I've had a look around and I can't see much information on this.
Is there a decent guide, or can anyone post some information on how one would go about compiling a Froyo (or any other release) build from source?
I'm not daunted by the technical complexity and I have no problem putting together a VM to build in and in fact, I did that to build Chrome OS not too long ago.
From what I can see I would just create a git clone of the latest code branch and compile it, although it looks like I would also need some drivers. Where would I get these from?
Would my newly compiled image need to be signed somehow before I could install it?
I have a general understanding of what I need to do, but there are some gaps in my knowledge
Click to expand...
Click to collapse
http://source.android.com/source/download.html
ddotpatel said:
Hope this helps,.... Pulser pointed me towards it,... I haven't had a go myself yet as I've been busy,....
Have fun,....
[How to] Rom cooking
Click to expand...
Click to collapse
Thanks - that was pretty much what I was looking for.
I'm a bit pressed for time as well recently, but hopefully I can try a build at the weekend.
MrHorus said:
Thanks - that was pretty much what I was looking for.
I'm a bit pressed for time as well recently, but hopefully I can try a build at the weekend.
Click to expand...
Click to collapse
As a matter of fact, you've got an example how to compile for dream/sapphire on the android source website.
Read up.
Thread Moved to Q&A.
well that guide
well that guide is not for building aosp roms is it ?

[Q] Making a custom Kernel?

I've had a search and a look around but can't see anything specific enough to answer this.
I have read that the SGS2 uses the new BCM4330 chipset for it's WiFi-N support.
It looks to me that for existing kernels they are using either the existing kernel support or possibly the b43 driver.
I need to find out, and while I have compiled custom kernels in nix in the past, I have never done so in Android, so I'm a little out of my comfort zone here.
I want to compile a kernel where the WiFI driver will support monitor mode, ideally it would be the CM7 kernel with just this extra functionality added, however a number of the tools that I would use to identify the existing configuration do not seem to be available in the standard CM7 build (lspci being one).
I don't want to frack around too much without having read up first so could anyone point me at a good guide for creating my own Android Kernel, even better if the guide was specific to the CM7 version.
Lastly I mostly run a Fedora environment, however the bits I have read seem to suggest a number of tools are only available in a Ubuntu guise (heimdall springs to mind and while I'm sure it's possible to recreate it for Fedora I'm trying to reduce the number of dependencies I'll have to recreate as much as possible). Therefore can I get some advice regarding the least complicated way to generate an Android build environment in Linux.
Thanks
For kernel compilation on android, you can check the several repositories there are for the several kernels. Depending on each kernel/repository/user, you can find a predefined .config inside them, so you can get the basic configuration to compile the kernel, don't know if CM7 has it in its repository...
As for the enviorment, I haven't tried compiling a kernel, but I did compile some ROM on Gentoo Linux, so I suppose it could also be done in Fedora without many problems. The main thing about using Ubuntu is that is very extended, so they're using it as main Linux base, but that doesn't mean it can't be done in other linux distros. You can check CM7 wiki for building from source to install the required packages for your enviorment. In my case I cross checked the Ubuntu packages with Gentoo to install gentoo's version of that packages/tools to be able to compile without problems.
Also in the case of building kernels, you need a toolchain to be able to compile, but there are several webs/tutorials with info on how to use that.
EDIT: You have a complete tutorial for CM7 in their wiki with the needed packages for both Debian and Red Hat based distributions...
Very useful, thanks for the info.
Very useful info.
Hi,
I'm interested in compiling a custom kernel to support wifi monitor mode, but I read in a previous post that it can be a hardware limitation which makes it impossible to use monitor mode. Can anyone confirm that? Maybe a statement/answer from Broadcom?
I'm just asking it because I don't want to start playing with kernel compilation and driver hacking if it can't be done because of some missing code on the chipset or something.
Thanks.
kepten said:
Can anyone confirm that? Maybe a statement/answer from Broadcom?
Click to expand...
Click to collapse
I doubt Broadcom will answer that, but you can try to search the chipset info in Broadcom's web and see if its supported. Also you can check kernel modules if they can compile against that version.
AzureusPT said:
I doubt Broadcom will answer that, but you can try to search the chipset info in Broadcom's web and see if its supported. Also you can check kernel modules if they can compile against that version.
Click to expand...
Click to collapse
Well, Broadcom's website says nothing about monitor mode but I've found a driver (https:// github.com/cyanogen/galaxy-2636/blob/ics/drivers/net/wireless/bcm4330/src/include/wlioctl.h#L1153) which at least mentions it. This is for Galaxy Tab 10.1 which has the same chipset so maybe someone with a Tab 10.1 could verify if monitor mode works with that kernel/driver? ??

[RANT] Where are all the sources?

OK, this is beginning to give me the s**ts. Where are all the sources to the stuff that is being posted up here? I have been trying to build (rebuild) some of the ROMS on here, if for no other reason than to check there is no dodgy code in them, but also to learn from what everyone has done.
This is supposed to be a DEVELOPMENT forum, where source code is shared and discussed. Not a bazaar where the posters do a bit of hocus-pocus putting together roms from binaries of unknown source code. They fall like crumbs from the majestic sages, that do even more unknown hocus-pocus and cast them down to the unwashed masses to oooh and aahh at, as they give homage to the great compilers in the sky. What is this? Job security?
I have no idea what the legals are around this and I don't really care. The point is that the spirit of the GPL is you post sources (or patches against standard sources) along with any binaries. The binaries are only there to save us the bother of recompiling. The source is what is important in this forum. How else are others going to improve on the code if they can't see it?
I have posted on a couple of threads and/or contacted various people on here, most of whose response is "oh I didn't compile the actual source code, I just stuck it together from the binaries". One of them (thanks kevinlekiller) was kind enough to at least give me rundown on what he did (as best as he could remember - bit of a worry!), but even he didn't have access to the source code. Maybe I haven't looked in the right place, but it shouldn't be this frigging hard - it should be front and centre.
If I had my way, I would ban every ROM post that didn't have a clear link back to all the sources. That's what github etc is for!
Please, please, people, post the source first, binaries can be an afterthought. If you don't have access to the source code, then I reckon it shouldn't be here - who knows what in there? One of these days someone is going to innocently distribute some nefarious program with a ROM. It really isn't that hard to compile a ROM - takes about half an hour on my Linux laptop.
This is actually standard xda-developers policy: see http://forum.xda-developers.com/showpost.php?p=2031989&postcount=45 but seems to be widely ignored.
OK, I'll get off my soapbox now.
Edit: I realise this doesn't apply to everyone, some people are great about posting sources.
Wrong section buddy
Sent from my GT-S5830 using xda premium
djsky2011 said:
Wrong section buddy
Sent from my GT-S5830 using xda premium
Click to expand...
Click to collapse
Huh? You're joking right? I'm discussing the sources not being available in this section, the source is a development topic. Hmm maybe this is such a common complaint that there is a separate section created for it. Sorry I'm getting crabby.
What section should it go in?
You take 30mins , mine takes 2h - it's different for everyone......
Furthermore , if they're basing a ROM off a ROM , what sources are there to be published ?
Furthermore , the sources can already be found online if you want CM7/AOSP:
http://github.com/teamhacksung/android_device_samsung_cooper
Herpderp Defy.
ok man make a rom then talk to us. most of roms here are like this u got new app,launcher and theme voila new rom is posted(no offense).so they cant give you source code.they make roms from the prebuilt ones like using stock or cm7 as base .most of the developers which made roms from source code had there github accounts link in there username ok i agree there are one or two developer who dont share but that dose not mean everyone here is just like them.ok
1.i can make a rom.
2.but i will not make a one unless i compiled it from source code.
3.sure i will share its source code.
i agree a little bit with you
EmoBoiix3 said:
You take 30mins , mine takes 2h - it's different for everyone......
Furthermore , if they're basing a ROM off a ROM , what sources are there to be published ?
Furthermore , the sources can already be found online if you want CM7/AOSP:
http://github.com/teamhacksung/android_device_samsung_cooper
Herpderp Defy.
Click to expand...
Click to collapse
Finally. Thank you! A link to the source code (actually the config files is just what I looking for).
So, since I have your attention, I see a couple of roms from people like vo-1, what is he doing just compiling the source (I have asked him, no reply)?
On the ROMS based on ROMS thing, while there is technically no source code you put through a compiler - there is still source - it is a list of all the changes made to that ROM.
I also can't believe people don't seem to use any sort of build environment - as in a build script - how else are we going to document what's been done and/or recreate it?
xdaboy122 said:
ok man make a rom then talk to us. most of roms here are like this u got new app,launcher and theme voila new rom is posted(no offense).so they cant give you source code.they make roms from the prebuilt ones like using stock or cm7 as base .most of the developers which made roms from source code had there github accounts link in there username ok i agree there are one or two developer who dont share but that dose not mean everyone here is just like them.ok
1.i can make a rom.
2.but i will not make a one unless i compiled it from source code.
3.sure i will share its source code.
i agree a little bit with you
Click to expand...
Click to collapse
Yes I agree this does not apply to everyone. Some people do post source. I suppose my frustration was the source seemed to be forgotten and it shouldn't be so hard to track it down. Maybe I have spent too much time in the Linux world, where source code is king.
I will kick off a make on the source that EmoBoiix3 linked to (thanks mate) and see where we go from there!
A lot of roms here are based off other roms. So much they don't build it themselves, just some editing of the zip.
Other developers merely want to save the technobabble since most xda users are blind to programming.
divereigh said:
Huh? You're joking right? I'm discussing the sources not being available in this section, the source is a development topic. Hmm maybe this is such a common complaint that there is a separate section created for it. Sorry I'm getting crabby.
What section should it go in?
Click to expand...
Click to collapse
still wrong section
this aint a source
this is a discusion so its supposed to be in general section
Should be in general section IMO.
But I fully agree with the OP. It is true lots of ROMs here are "cooked" from other ROMs and are not "developed" denovo. They are "theme" packs.
But for example we have two groups actively working on builds of CM 7.2, they each seem to be building from source and tweaking fixes in. It would really help if everyone used github. Pull a source, build, fix and commit to your fork. Anyone else can see what you changed, what revision of the tree you used, and can learn from your work and it could perhaps inspire them to fix something else, to contribute back to make *your* build better.
Sharing your code, even if it is just 5 line hack on teamhacksung / cyanogenmod /AOSP source, honours the GPL and helps our community grow stronger.
The GalaxyICS team is a great example, I can see where they've pulled their sources, what (hard) work they've done in what components. They are contributing all their work and knowledge back. And their fixes can be pulled into other projects easily, speeding up development and sharing that knowledge for everyone.
A phone like the Ace continually loses developers as they migrate to "better" phones, and we really need to share as much knowledge as possible to keep our software
Sometimes , changes just cannot be shown.....like framework-res tweaks!
Herpderp Defy.
EmoBoiix3 said:
Sometimes , changes just cannot be shown.....like framework-res tweaks!
Click to expand...
Click to collapse
What sort of tweaks are you thinking of? If it's a replaced image file, then that can be a separate file copied in with a script. If it's a changed text file, that can be done with patch or sed.
Let me give you an example of what I did with kevinlekiller's The End 2.5o rom. He based it on a vo-1 rom and did a fair number of replacing files, odexing etc. I produced this bash script (attached) along with his extra (binary) sources which I think replicated what he did. Self documenting! Everyone can see what is in there, maybe even change it again.
More details towards the bottom of this page: http://forum.xda-developers.com/showthread.php?t=1440396&page=31
I see where you are coming from and I sympathize. I'm not a developer, because I don't have the time and patience to work on source code , compile , debug etc.
The Rom's we have for the Galaxy Ace are already very good, the developers that have worked on them have/had the time and patience to iron out most the issues. So for me to try to come out with something better would seem futile.
I still like customizing these Rom's to a way that work better for me, and it doesn't involve having to spend lots of time, because like I said they are already very good. So it just ends up that a few files are added or changed.
Is that a bad thing? I think those that think it is should just not use those types of Rom's, everyone has a right to their opinion.
At first when you asked me for sources, I thought you meant the source code, since I already listed everything that was used in the first post. But then I realized you wanted direct sources (links) to those files. This is something I will do in the future, post the links of every file, I agree with you , things should be more documented, it would save everyone time instead of trial and error and possibly even giving up.
Anyways, I should conclude here, it is getting a long read.
divereigh said:
What sort of tweaks are you thinking of? If it's a replaced image file, then that can be a separate file copied in with a script. If it's a changed text file, that can be done with patch or sed.
Let me give you an example of what I did with kevinlekiller's The End 2.5o rom. He based it on a vo-1 rom and did a fair number of replacing files, odexing etc. I produced this bash script (attached) along with his extra (binary) sources which I think replicated what he did. Self documenting! Everyone can see what is in there, maybe even change it again.
More details towards the bottom of this page: http://forum.xda-developers.com/showthread.php?t=1440396&page=31
Click to expand...
Click to collapse
nice script, thats for sure
but u shouldnt expect everyone to be as geeky and provide such build script.
theres a big different between "providing source" that is mandatory by forum rules and "providing howto step by step" like in your script.
hell most of the roms (the one that is based on previous precompiled rom) were created 100% on windows machine without even touching linux, and maybe the rom creator (modder) doesnt have any clue what in the world is linux. maybe they even dont know that their windows machine do have terminal (cmd). so arent u asking for too much?
an0nym0us_ said:
nice script, thats for sure
but u shouldnt expect everyone to be as geeky and provide such build script.
theres a big different between "providing source" that is mandatory by forum rules and "providing howto step by step" like in your script.
hell most of the roms (the one that is based on previous precompiled rom) were created 100% on windows machine without even touching linux, and maybe the rom creator (modder) doesnt have any clue what in the world is linux. maybe they even dont know that their windows machine do have terminal (cmd). so arent u asking for too much?
Click to expand...
Click to collapse
Actually I only have 1 windows pc, all my other PC's are ubuntu / linux mint installed on them. I use windows on the main PC because most of my games work on it.
Edit: And, I didn't take offense to your post , it is valid, most people have no clue about linux.
kevinlekiller said:
Actually I only have 1 windows pc, all my other PC's are ubuntu / linux mint installed on them. I use windows on the main PC because most of my games work on it.
Edit: And, I didn't take offense to your post , it is valid, most people have no clue about linux.
Click to expand...
Click to collapse
and no offence intended and sorry if anyone feels my post abit too offending
my point is a rom created from previous precompiled rom can be created 100% on windows machine.
in that case the rom also doesnt have sourcecode because it were created from already precompiled rom.
so if the modder just give a valid link to what he put/change it still suites the forum rules to provide source.
let say i've modded a cm rom, i've include ketuts oc kernel, i've include a launcher, and a filemanger, and a theme.
so if i just provide a valid link to the original cm rom, a link to ketuts oc kernel thread, a market link to the launcher, the filemanager and the theme, thats a valid source because the rom were modded from binary precompiled rom/kernel/launcher/filemanager/theme.
so the link to those binary precompiled rom/kernel/launcher/filemanager/theme is a valid "source".
divereigh said:
This is supposed to be a DEVELOPMENT forum, where source code is shared and discussed. Not a bazaar where the posters do a bit of hocus-pocus putting together roms from binaries of unknown source code.
Click to expand...
Click to collapse
I agree. There are two groups of devs:
"Real" developers. They provide repo links and detailed changelogs.
Modders. They should provide repo links and detailed changelogs.
A repo has the benefit of allowing peer review. Peer review improves code quality just like user tests and their reports do. Afterall, this is what XDA is about.
What I like about XDA is how people eagerly send in "works" notes. Not much information, but better than just trying out and telling nobody.
Exactly guys......it seems cyanogenmod has become the only alternative and devs here are only editing it and bringing out new firmware versions. Some also edit stock roms..........but no one here gave a thought of creating a new genre of custom rom right from source.
biswatmak said:
Exactly guys......it seems cyanogenmod has become the only alternative and devs here are only editing it and bringing out new firmware versions. Some also edit stock roms..........but no one here gave a thought of creating a new genre of custom rom right from source.
Click to expand...
Click to collapse
its not as easy as it sounds, thats why the two main dogs are miui and cyanogenmod.
an0nym0us_ said:
nice script, thats for sure
but u shouldnt expect everyone to be as geeky and provide such build script.
Click to expand...
Click to collapse
I get that. I essentially built an interpreter and a source file (the build instructions). Way too much for most. However I think it would be great as developers if we provided be packaging tools so that others can use them and provide repeatable builds and automatically documented builds ("read the source luke").
an0nym0us_ said:
theres a big different between "providing source" that is mandatory by forum rules and "providing howto step by step" like in your script.
Click to expand...
Click to collapse
Agreed, it isn't mandatory, however for the purposes of educating and peer-review it would be great. So my challenge is to make this easy for people.
an0nym0us_ said:
hell most of the roms (the one that is based on previous precompiled rom) were created 100% on windows machine without even touching linux, and maybe the rom creator (modder) doesnt have any clue what in the world is linux. maybe they even dont know that their windows machine do have terminal (cmd). so arent u asking for too much?
Click to expand...
Click to collapse
So we need a graphical version for Windows..

[Q] how to use Samsung Open Source files and JB AOSP (4.1.2_r2.1)?

Hello all,
I'm trying hard to figure out how one goes about compiling Android JB AOSP (4.1.2_r2.1) platform for the samsung galaxy s2 (GT-I9100M), with the source code that samsung gives you?
I've setup ubuntu 14, and I see how I can run . build/envsetup.sh, and then lunch.
I get all the options to build, and I see where the saumsung scripts are located, in device/samsung.
I've downloaded the open source file GT-I9100M_BMC_JB_Opensource.zip, and compiled the Kernel.
Now its time to build the platform. I see the folder structure, but I see no instructions.
When I unzip the Platform, I see build, external, vendor, and device, which has the folder "smdk_common".
If I put all files in the corisponding locations within the AOSP, I get errors, as there's only a folder "alsa-lib". (sound drivers).
And if I were to compare what's in here to whats in the AOSP device/samsung folders, there's lots more info.
Do I need to copy files from the default AOSP device/samsung folders and modify to suite my needs or?
Can anyone point me to how-tos? I've been trying to figure this out for days!
I see a lot of how tos on building with existing ROMS, and using kitchen, etc.
But I just want to build samsung from scratch FIRST...
OK, so doing a lot more research, both here and google, I obviously need to create a device tree OFF of the files that samsung has released to everyone. Surely someone has done this already?
I see there are a few GIT repositories that have device trees, but they are based upon existing files, etc.
I'm looking to find a device tree that has all the basics, OR a "template" one i can try and work with samsungs...
technobuddha said:
OK, so doing a lot more research, both here and google, I obviously need to create a device tree OFF of the files that samsung has released to everyone. Surely someone has done this already?
I see there are a few GIT repositories that have device trees, but they are based upon existing files, etc.
I'm looking to find a device tree that has all the basics, OR a "template" one i can try and work with samsungs...
Click to expand...
Click to collapse
Hi,
did you succeeded in your approach to build a device tree with the Samsung-opensource-files? if yes then I'll be very interested in the way you do it as I'm on the same status for a Samsung device which has absolutely no support in the hole internet (except one thread here in XDA
BR
SP
No I didn't.
and I got no help what so ever from the people here at xda-developers.
I even approached some of the people who compile the roms, and got no response from them.
I suspect the only help you'll ever get from these forums is if you ask for help from EXISTING roms,
or you're an "existing" developer that has years of experience.
this place is not for new developers at all.
a lot of brown nosing going on here..
good luck in your search!
SolarPlexus said:
Hi,
did you succeeded in your approach to build a device tree with the Samsung-opensource-files? if yes then I'll be very interested in the way you do it as I'm on the same status for a Samsung device which has absolutely no support in the hole internet (except one thread here in XDA
BR
SP
Click to expand...
Click to collapse
technobuddha said:
No I didn't.
and I got no help what so ever from the people here at xda-developers.
I even approached some of the people who compile the roms, and got no response from them.
I suspect the only help you'll ever get from these forums is if you ask for help from EXISTING roms,
or you're an "existing" developer that has years of experience.
this place is not for new developers at all.
a lot of brown nosing going on here..
good luck in your search!
Click to expand...
Click to collapse
OK, thanks for your response. Thats also my experiance more ore less I have found (with some exceptions which really try to help).
So I'll try to work on it, and if I succseed, I'll make a guide... maybe it will help then others
BR
SP
what phone is it?
and yea, if you need any help,just ask me.
SolarPlexus said:
OK, thanks for your response. Thats also my experiance more ore less I have found (with some exceptions which really try to help).
So I'll try to work on it, and if I succseed, I'll make a guide... maybe it will help then others
BR
SP
Click to expand...
Click to collapse
Its the Samsung sg-i8200 (s3 mini value edition)
The previous phone was supported very well (i8190) but the i8200 has a complete new hardwarebase and its really garbage...
send with my Oneplus One (bacon) SlimKat Tapatalk

ZTE Nubia Z7 Mini (NX507J) - ROM porting

This has been started for people interested in porting other ROM's for the Nubia Z7 Mini (NX507J). If you are interested in seeing/using/asking questions about ROM's that currently exist, please use the thread created by @Seyron here. I previously posted the following information on that thread, but feel a new thread will be better so the other can be used for people with questions about existing ones.
I'm not sure what you mean by a good background for going at it; however, I think having a good understanding of computers and even some basic programming is very helpful. As for myself, everything is self-taught. I'm pretty familiar with mac, PC, and linux. Even if you are completely new at it, there is lots of good information out there - I would just encourage you to start by learning from credible and well established sources. I have only tried porting for nubia Z7 mini - no other android. I previously used the iphone (and am frankly glad I now have android).
It really depends on whether you want to do a simple port (that's how I call it - don't know if there's an official way of calling it) or port from source. If you are doing a simple port, you can use any computer (mac, pc, linux); however, if you want to port/build from source it is by far the easiest to do it from Linux. There are many resources out there for building/porting from linux - most of which are using Ubuntu. I personally use Debian (which incidentally Ubuntu was created from; however, they are now each distinct and different), but you could use most any linux distro as long as you are comfortable using the command line. Also, if you are using linux, make sure you have enough hard drive space available (most recommended is at least 30GB) and have enough RAM (I have 16GB - minimum recommended is 8GB). It's also very helpful if you have a large swap set up as it makes building go faster. Once you have everything put together, compiling/building takes 3-5 hours depending on the specs of your computer. I have a 1.7ghz i5 in my computer and it is slow - 4-5 hour range for me.
For the sources list below, please note I have no affiliation with them and do not know them. Use at your own risk, I assume no responsibility for what may happen to your computer or phone.
I think some of the best (and frankly most detailed) information comes from the android source code website and from XDA-University.
https://source.android.com/index.html
XDA-University
For what I call simple porting, can be done on any computer - this was the site I started with and it seemed to work except that I kept getting boot loop issues. There are many other sites out there with nearly identical information. This person uses a PC, but you can adjust it quite simply for doing this on mac or linux too:
http://seekandroid.info/2014/05/porting-android-roms-for-your-phone.html
The following site/instructions are very interesting as they are different than any other site I found out there with porting instructions. I have not done it this way - primarily because I am concerned about "bricking" my phone. The method this person uses is the same; however, the files that they transfer are opposite to most any other site I've found. I have not used these instruction - be very cautious until someone else can confirm.
http://anythingsyouneed.blogspot.com/2014/06/how-to-port-custom-rom-rom-porting.html
This one seems interesting; however, I have not used anything on this website and have not used one of the Kitchen programs.
http://www.littlegreenrobot.co.uk/tutorials/how-to-cook-your-own-android-rom/
Android - excellent and very detailed. Personally I think most helpful to those with intermediate to advanced programming knowledge. Or at least have the ambition and time to learn.
https://source.android.com/source/building-devices.html
XDA-University - Truly amazing wealth of information, approachable for anyone from absolute beginners to advanced programers.
http://xda-university.com/as-a-developer
http://xda-university.com/as-a-developer/porting-aosp-roms-using-source-code
I've been busy and haven't had a chance to use these pages yet, but it's what I'm going to do next to try and solve the boot loop errors.
http://xda-university.com/as-a-user/zip-based-rom-tweaking
http://xda-university.com/as-a-user/how-to-recover-from-a-bootloop
If anyone has anything to add, please do. I'd be interested in seeing what else people use.
I haven't found the required sources to port from source, so I don't know if that's possible. Neither am I experienced in any of that.
In basic porting I do, however so far it has been unsuccesful for the Z7 Mini.
I have tried to port CM11S from the OPO, but it didn't work out, the phone became stuck in a bootloop, and logcat wasn't working to find out what's the problem of not booting. Might be dual-sim related but that should more likely run into a non-working sim/ril or a lot of crashes, not making it not booting at all.
I do wonder how they got the CM11 / Mokee with eng/ch languages to work. Tried using those as base too but that didn't do the trick.
To build completely from source you need to have the kernel source.
ZTE has not yet released it, but I'm hoping it will be released soon.
You can check here.
On Github there's a repo but it's apparently broken.
Anyway you can build cyanogenmod without having the kernel source (http://wiki.cyanogenmod.org/w/Doc:_porting_intro)
As soon as I get my own device I'll try that.
Nice, will follow this thread
I was trying to port the Z7 Max CM11 to the Z7 Mini, still work in progress because i'm new at this...
So, do you have any idea how the existing ROM's were ported then? If they weren't from source, we should be able to port others without getting the boot loop error - in theory. Not finding the kernel source is the main reason (besides finding the time) why I haven't worked on porting others. I also cannot find the vendor tree for the phone - which incidentally, may well be part of the kernel source. If you can port CM without source the others should be equally possible. Personally, I'm not interested in a CM based ROM (although a couple I listed in the other thread that I tried porting were CM based); I'm more interested in an AOSP based ROM. I wonder why ZTE has been so slow to release the kernel? Especially since they've released all the others (albeit not the other Z7's) and they have been so popular.
Also, as I stated in the other thread, I was able to get a couple to boot, but they were stuck in boot loop issues. I forgot to use logcat to see what the issue was.
@voetbalremco I agree with you, how did they get MoKee and MIUI to work? I tried using MoKee as base too - though didn't try MIUI. Does anyone know if it's possible to extract the kernel from the current stock ROM?
pierg75 said:
To build completely from source you need to have the kernel source.
ZTE has not yet released it, but I'm hoping it will be released soon.
You can check here.
On Github there's a repo but it's apparently broken.
Anyway you can build cyanogenmod without having the kernel source (http://wiki.cyanogenmod.org/w/Doc:_porting_intro)
As soon as I get my own device I'll try that.
Click to expand...
Click to collapse
pedrud said:
So, do you have any idea how the existing ROM's were ported then? If they weren't from source, we should be able to port others without getting the boot loop error
Click to expand...
Click to collapse
There are different ways to port a Rom...or you build it from scratch, so you compile everything. And for that you need source for every component.
Or you can use the various kitchens (this one for example) to repack and tweak an existent rom.
pedrud said:
Does anyone know if it's possible to extract the kernel from the current stock ROM?
Click to expand...
Click to collapse
You can do it with the kitchen above or using one of the tools available (like this one for example.
Probably everything can be done with dd (as mentioned in the cyanogenmod guide).
Hopefully my device will be her soon, so I can also try these as well
pierg75 said:
There are different ways to port a Rom...or you build it from scratch, so you compile everything. And for that you need source for every component.
Or you can use the various kitchens (this one for example) to repack and tweak an existent rom.
You can do it with the kitchen above or using one of the tools available (like this one for example.
Probably everything can be done with dd (as mentioned in the cyanogenmod guide).
Hopefully my device will be her soon, so I can also try these as well
Click to expand...
Click to collapse
Thanks for the resources! I think combining those two, plus the info on the CM website, and what's on XDA-University; I should be able to get this figured out. Now all I need to do is find the time.
Today my phone arrived! Tomorrow I'll pick it up and start to do some tests.
Sent from my Nexus 7 using Tapatalk
Here it is Kernel source code for NX507J
github.com/ztemt/Z7Mini_NX507J_H128_kernel
felipebarney said:
Here it is Kernel source code for NX507J
github.com/ztemt/Z7Mini_NX507J_H128_kernel
Click to expand...
Click to collapse
I thought that was the kernel that was either incomplete or broken. Do you know otherwise? I had seen it previously, but had read there were errors with it. If not, that's great! I also wonder if it has the "fixes" that ZTE has made for wifi, BT, etc in the recent updates.
pedrud said:
I thought that was the kernel that was either incomplete or broken. Do you know otherwise? I had seen it previously, but had read there were errors with it. If not, that's great! I also wonder if it has the "fixes" that ZTE has made for wifi, BT, etc in the recent updates.
Click to expand...
Click to collapse
I found on the nubia.cn, but i don't know if this have issues... Anyway last updated was 22 days ago, I hope they have fixed...
felipebarney said:
I found on the nubia.cn, but i don't know if this have issues... Anyway last updated was 22 days ago, I hope they have fixed...
Click to expand...
Click to collapse
Can you post the link where you originally found it? Thanks.
pedrud said:
Can you post the link where you originally found it? Thanks.
Click to expand...
Click to collapse
bbs.nubia.cn/thread-266348-1-1.html
:good:
felipebarney said:
bbs.nubia.cn/thread-266348-1-1.html
:good:
Click to expand...
Click to collapse
Thanks. Although, one person commented on the thread that it is nubia development and isn't open source yet. Won't know for sure and I'm not totally sure how to tell from looking at it. May have to keep waiting - or at least dig a little deeper. Thanks again.
So I started to try to build something with CM-11.
I thought I could put my steps here, in case someone else needs them (or has a better way to do it):
1) Get the repo uility:
Code:
mkdir ~/bin
PATH=~/bin:$PATH
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
2) Initialize the repository:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
3) Sync the repository:
Code:
repo sync
This will take a while (the repo is pretty big).
I've taken some infos from the phone (build.prop, partitioning, kernel, boot.img).
I'll continue as soon as the repo is sync'ed.
Repo sync'ed, now build the environment:
Code:
. build/envsetup.sh
At this point we have to build the structure as explained here
Make sure you have the boot.img extracted (see previous posts about a tool).
Make sure you have the utility "unpackbootimg" installed.
I downloaded from https://github.com/osm0sis/mkbootimg/blob/master/unpackbootimg.c and compiled with:
Code:
gcc -o unpackbootimg unpackbootimg.c
Put it in your $PATH.
Then run the commands to create the directory structure:
Code:
./build/tools/device/mkvendor.sh nubia NX507J ../original/boot.img
"nubia" and "NX507J" come from the build.prop, respectively
Code:
ro.product.manufacturer=nubia
ro.product.device=NX507J
The result from the mkvendor.sh is:
Code:
[...]
Use the following command to set up your build environment:
lunch cm_NX507J-eng
And use the follwowing command to build a recovery:
. build/tools/device/makerecoveries.sh cm_NX507J-eng
...to be continued
pierg75 said:
So I started to try to build something with CM-11.
I thought I could put my steps here, in case someone else needs them (or has a better way to do it):
1) Get the repo uility:
Code:
mkdir ~/bin
PATH=~/bin:$PATH
curl http://commondatastorage.googleapis.com/git-repo-downloads/repo > ~/bin/repo
chmod a+x ~/bin/repo
2) Initialize the repository:
Code:
repo init -u git://github.com/CyanogenMod/android.git -b cm-11.0
3) Sync the repository:
Code:
repo sync
This will take a while (the repo is pretty big).
I've taken some infos from the phone (build.prop, partitioning, kernel, boot.img).
I'll continue as soon as the repo is sync'ed.
Click to expand...
Click to collapse
This is great! Thanks. Are you using a PC or Linux and what OS? Those are the next steps that I want to take. I'm interested in doing it with carbon, omni, and maybe paranoid.
pedrud said:
This is great! Thanks. Are you using a PC or Linux and what OS? Those are the next steps that I want to take. I'm interested in doing it with carbon, omni, and maybe paranoid.
Click to expand...
Click to collapse
Obviously I'm using Linux
No windows here
Sent from my NX507J using Tapatalk
pierg75 said:
Obviously I'm using Linux
No windows here
Sent from my NX507J using Tapatalk
Click to expand...
Click to collapse
That's what I assumed, but hey, you never know. You know what they say when you make assumptions... What distro are you using?
Fedora and Debian...BTW I added few more steps in the previous message.
pierg75 said:
Fedora and Debian...BTW I added few more steps in the previous message.
Click to expand...
Click to collapse
Did you see the post by yiphoming on the other thread that CM11 already exists? Any other ROM's you're interested in?

Categories

Resources