Difference between eng and user-debug build in Android Difference between eng and user-debug build in Android android android

Difference between eng and user-debug build in Android


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


Well the difference between the three builds viz. eng, user and user-debug is as follows:

eng - Engineering build comes with default root access.

user - User build is the one flashed on production phones. Has no root access.

user-debug - User debug build does not come with default root access but can be rooted. It also contains extra logging.

One thing to note here is although an eng build might suggest extra logging it is not so. The user-debug will contain maximum logging and should be used during development