Difference between eng and user-debug build in Android

spitfire88 picture spitfire88 · Dec 19, 2012 · Viewed 48.3k times · Source

I would like to know the difference between the two build_flavor's viz.

eng & user-debug

The difference between eng and user build flavors is quiet evident. But eng and user-debug is confusing me somewhat. What are the additional Debug facilities provided in eng that are not present in user-debug?

For eg.

If I take only the Kernel being built:

Will the Debugging levels differ for the eng and user-debug builds?

I am facing an issue where the user-debug build is booting up on the android phone. But the eng build is not and the build_flavor is the only difference between the two builds.

Any help/pointers is appreciated. Thanks!

Answer

rmdroid picture rmdroid · Feb 8, 2013

eng: This is the default flavor. A plain make is the same as make eng.

- Installs modules tagged with: eng, debug, 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
- adb is enabled by default. 

user: make user

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

- Installs modules tagged with 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. 

Documentation: https://source.android.com/source/add-device.html#build-variants