Linux build environment question (build packages) - Android Q&A, Help & Troubleshooting

Hello!
I've compiled various ROMs from source without issue (well many issues and a lot of reading on this forum to troubleshoot). I am running Ubuntu 16.04.2 LTS and have always followed Android's Guide for installing the required build packages. The guide specifies running Ubuntu 14.04. I read on another website specifically for 16.04, and the recommended build packaged are different. Lastly, when reviewing LineageOS wiki for build packages, they have an even different list. The LineageOS guide did not actually work when I tried to install the build packages they listed.
Can anyone help clarify this? Is there a single source of truth for knowing which build packages are required for the version of Linux?
EDIT: So I somewhat answered my own question by looking into each package that was different from Android's Development webpage. But I still do not know how one would know which packages you'd need when working with various ROMs.

Related

[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? ??

Anyone building a rom from source on a Windows machine?

I've been wanting to start building from source so I could actually try to contribute some development time to a rom.
I've seen some of the build from source threads and even tried to use the wiki from one ROM's page. but the latest version of Ubuntu doesn't want to even get the Android SDK installed let alone get the latest code. So I was thinking that I would try to get this up and running on one of my windows boxes and was wondering if anyone else is building from a Windows machine.
If so is there a good resource or tutorial for getting started.

[Q]Building ICS from AOSP Source on P7510

Hi all devs for P7510:
I'm following guides all over the place in my attempt to learn a thing or two by building AOSP ICS (specifically the 4.0.4_r1 branch) from source. I know that Google states building anything other than master on a version of Ubuntu higher than 11.10 is experimental and not really supported - seen many Google Groups threads indicating this. I've been able to patch and fix some of the errors that I'm seeing, but others that I'm searching for are answered with links back to the AOSP website where it's simply saying building anything other than the master branch on Ubuntu 12.xx is not officially supported.
I am getting ready to re-do my dev environment with Ubuntu 10.04 to see if that really does make a difference somehow, but had a couple of questions that I'm hoping someone can answer as I get ready to try again.
1) Has anyone out there built AOSP 4.0.4, from a branch other than master, successfully for the P7510 device?
2) If so, with what version of Ubuntu/Linux and were there many errors encountered when compiling that required fixes via manual code revision rather than simply applying a missing dependency or toolchain fix?
I've searched high and low and it's proving particularly difficult to find info on whether or not someone has been able to build a non-master branch of AOSP ICS 4.0.4 for this particular device. I know I could just abandon it and try to build JB or something instead but really want to see if I can pull this off. Hoping someone out there can help me out!
Update: I was able to complete a build today!! Please disregard the questions, self answered.
Sent from my GT-P7510 bleeding CM10 inverted awesome

[Q] Building a custom ROM for Xperia-L from AOSP

Pardon my ignorance. Just for fun and learning, I am willing to build a custom ROM from scratch for Sony Xperia-L from Android AOSP. But, even after going through a number of tutorials, following are the issues which are yet unclear to me:
How to obtain Xperia-L specific drivers to intergrate it into my build. Please note that unlike a few tutorials has suggested, I don't want to start from CM ROMS. I want to do it from 'scratch'
I have downloaded Open source archive for build 15.3.A.1.12, 15.3.A.1.14 and 15.3.A.1.16. It contains two top level directories: kernel and platform. What are these two for? Given the size of AOSP so large, I presume this archive does NOT contain full source for Xperia-L stock ROM. Am I correct to reason that?
Without using kiddie-approach, e.g. different ROM kitchen, what is the recommended approach to for a beginner to master the art?

How can a developer port LineageOS to an unsupported device?

My question is really simple: How can I make an unofficial port of LineageOS? I've read this, which is based on an article from the (now death) CM Wiki, but some files (e.g. the mkvendor.sh script) are in older CM repos/branches. According to what I've read, there's not a full guide explaining the porting process since every device has its own tweaks (I imagine that it's due to ARM's nature)
What I want to do: Port LineageOS (the latest version) to the Samsung Galaxy Ace 4 Neo SM-G136ML (codenamed vivalto3mve3gltn). However there's not a LOS port at the latest version for a similar device which I could fork, so this would be "from scratch" in some way. I've seen Lineage's android repository at github but idk what are those xml files (they are definitively not the source code of a whole OS) EDIT: I realized that I had to clone it with `repo init`
What I've done so far: Documented myself as much as I could, read about how to get the vendor files, firmwares, kernel sources (in fact I requested the kernel source code for the device to the vendor), build.prop, recovery.fstab, and recovery/boot images.
My skills: I have a lot of experience with the GNU/Linux OS and I know some Linux kernel hacking, in fact I'm used to compile kernels for the x86_64, i686 and armv7h arch'es (not the vanilla kernel itself, but the Linux-libre kernel, which is basically vanilla but without binary blobs) and also patch them, and test them, etc. Besides kernel-stuff, I know shell scripting, advanced use of git (git clone, commit, add, push, remote, fetch, diff, apply, and more), use Heimdall, install custom recoveries and ROMs, and some advanced (non-noob ) Android hacking (Idk Java, C nor C++, however)
I know that here at XDA we've very talented developers who have experience with this, and much more. The only thing I need is some guidance to help me in my way to contribute the FLOSS community, I say this because when I asked in the LineageOS IRC channel if there was an official or well documented and updated guide, step-by-step, tutorial to port LOS that I could follow, someone answered me "it's impossible to have something like this", but I believe that there's ppl here who can demonstrate me the opposite
Thanks in advance
(...) I requested the kernel source code for the device to the vendor
Click to expand...
Click to collapse
Here it is https://gitlab.com/Megver83/android_kernel_samsung_vivalto3mve3gltn

Categories

Resources