Difference between eng and user-debug build in And

2019-01-31 19:45发布

问题:

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!

回答1:

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



回答2:

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