Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Complete Android Operating System build for a specific hardware target

Tags:

android

build

I'm going to try to rephrase and genericize these two questions:

Custom Android OS Build

https://stackoverflow.com/questions/2483631/custom-android-build-how-to

and add my own two cents.

A number of us have a need to build Android -- the complete operating system/stack -- and run that build on real, commercial hardware. Clearly this is possible since the various handset vendors do it themselves.

However, the instructions provided by Google ( http://source.android.com/source/initializing.html) only take you so far before you realize that, if you're not using one of the very few hardware platforms mentioned (unhelpfully on the very, very last page http://source.android.com/source/building.html), you are SOL. To wit, according to Google:

"[T]he Android Open-Source Project can't be used from pure source code only, and requires additional hardware-related proprietary libraries to run, specifically for hardware graphics acceleration"

Okay, fine (sort of). But Google does describe how that process works. The first ask is for guidance on building Android to run on real. (Indeed, how is it even possible for a non-handset-vendor to contribute to the Android OS without being able to build the OS and run it on hardware?) In particular, do said proprietary libraries need to be somehow extracted from the commercial binary and incorporated into the "custom" build?

Now, GPL requires mods to the kernel -- which could included drivers -- to be made available to the public and some vendors (HTC, Acer) make kernel source readily available. But it's not at all clear if this code is sufficient to do a runnable "custom" build. Further, even if that code is sufficient, the source tree from the vendor doesn't line up at all with the source tree from Google. So it's not obvious how to merge the files provided from the device vendor with the files from Google to do a build. So the second (third?) ask is how to merge the vendor code with the Google code to make a source tree that's buildable (and then build it) and runnable on an arbitrary hardware platform?

Anyone? Anyone?

like image 720
boettger1 Avatar asked Jan 03 '12 03:01

boettger1


1 Answers

The short answer to this question is that Google supports the Android Open-Source Platform (AOSP) on a very limited number of hardware platforms. This means that one cannot expect to build the unmodified AOSP source directly from Google and run it on an arbitrary hardware platform. Period.

The officially supported hardware is given here: http://source.android.com/source/building-devices.html At the time of this writing, there are only two 3GPP devices supported (officially) and no Qualcomm-powered devices supported. IMHO, this sort of makes a mockery of Google's "get involved" taunt given here: http://source.android.com/

like image 140
boettger1 Avatar answered Oct 21 '22 08:10

boettger1