2014-07-29

About eng, user and userdebug builds

See your repo $root/build/core/build-system.html and the following is a summary.

When building for a particular product, it's often useful to have minor variations on what is ultimately the final release build. These are the currently-defined "flavors" or "types" (we need to settle on a real name for these).

eng

This is the default flavor. A plain "make" is the same as "make eng". droid is an alias for eng.

  • Installs modules tagged with: eng, debug, shell_$(TARGET_SHELL), user, and/or development.
  • Installs non-APK modules that have no tags specified.
  • Installs APKs according to the product definition files, in addition to tagged APKs.
  • ro.secure=0
  • ro.debuggable=1
  • ro.kernel.android.checkjni=1 NOTE! Default value changed in AOL builds 1 -> 0
  • adb is enabled by default.

user

"make user"

This is the flavor intended to be the final release bits.

  • Installs modules tagged with shell_$(TARGET_SHELL) and user.
  • Installs non-APK modules that have no tags specified.
  • Installs APKs according to the product definition files; tags are ignored for APK modules.
  • ro.secure=1
  • ro.debuggable=0
  • adb is disabled by default.

userdebug

"make userdebug"

The same as user, except:

  • Also installs modules tagged with debug.
  • ro.debuggable=1
  • adb is enabled by default.

If you build one flavor and then want to build another, you should run "make installclean" between the two makes to guarantee that you don't pick up files installed by the previous flavor. "make clean" will also suffice, but it takes a lot longer.

 

No comments: