Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the meaning of AOSP's 'lunch' combinations and what do I need to choose?

I am a new comer to Android devices ROM development. Anyway, I am now in the progress of building AOSP to a Chinese device with a 64-bit processor. I am following the menu at source.android.com, and when I am running the "lunch" command, the terminal says: "Lunch menu... pick a combo:".

There are two options of which I am debating: aosp_arm-eng and aosp_arm64_eng.

As I have mentioned, I am building for a 64-bit processor device. Does it mean that I need to pick the aosp_arm64-eng? Because I have tried it, but then the emulator didn't work for some reason...

like image 739
stack overflow Avatar asked Jun 24 '15 13:06

stack overflow


2 Answers

Those names are constructed, on the fly, by the build system. They reflect the specific device builds in the $AOSP/device directory (specifically, by running the the vendorsetup.sh files in the subdirectories).

The portion of the name before the hyphen ('-') is the target hardware. The portion after the hyphen is one of eng, userdebug, and release. Those keywords control the debugging tools added to the build and whether adbd runs as root or not.

Both aosp_arm-eng and aosp_arm64_eng should produce a useful emulator. Neither, however, will work on your device. For your device you will need a specific, customized, build. If there isn't one already available, creating it can be quite time consuming.

like image 170
G. Blake Meike Avatar answered Oct 18 '22 23:10

G. Blake Meike


(two years later)

This answer is just to update the prior answer further. The "lunch" menu combos are made up of two or three fields. The first two are as stated above and repeated here:

  1. The first field (the portion up to the first hyphen '-') is the target hardware (exported as TARGET_PRODUCT).
  2. The second field (the portion following the first hyphen, up to the optional second hypen, or end of line) is one of the keywords, eng, userdebug, release (exported as TARGET_BUILD_VARIANT).
  3. The third (optional) field (the portion following the optional second hypen) is the version (if present, it's exported as TARGET_PLATFORM_VERSION).

Not all possible lunch combos are listed though. The most notable one is sdk-eng and variants. This one sets up the build system so that you can build the different SDKs, for instance:

    lunch sdk-eng
    make -j8 win_sdk
like image 38
Les Avatar answered Oct 18 '22 23:10

Les