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!
The eng build prioritizes engineering productivity for engineers who work on the platform. The eng build turns off various optimizations used to provide a good user experience.
Build Type refers to build and packaging settings like signing configuration for a project. For example, debug and release build types. The debug will use android debug certificate for packaging the APK file. While, release build type will use user-defined release certificate for signing and packaging the APK.
userdebug are meant to be as close as possible to user builds, with just the minimum amount of changes to be able to debug things, whereas eng builds include some much heavier checking.
There are two different types of android framework build (the entire system image) user (aka production) and userdebug. All standard device maker release their device with "user" build. Userdebug is meant for development and typically only built for in-house use.
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
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With