Differences between Android USER version and ENG version
[Keyword]
User Eng User EngUserVersionEngineeringVersion differences
[Solution]
Google Official Description: User/userdebug/eng version differences, reference alps/build/core/build-system.html
A detailed description of
Eng This is the default flavor. A Plain make are the same as make Eng.
* Installs modules tagged With:eng, debug, user, and/or development.
* Installs NON-APK modules that has no tags specified.
* Installs APKs according to the product definition files, with addition to tagged
APKs.
* Ro.secure=0
* ro.debuggable=1
* Ro.kernel.android.checkjni=1
* ADB is enabled by default.
* SetupWizard is optional
User Make user
This was the flavor intended to be the final release bits.
* Installs modules tagged with user.
* Installs NON-APK modules that has no tags specified.
* Installs APKs according to the product definition files; tags is ignored for
APK modules.
* ro.secure=1
* Ro.debuggable=0
* adb is disabled by default.
* Enable Dex pre-optimization for all TARGET projects
Device First boot-up
Userdebug make Userdebug
The same as user, except:
* Also installs modules tagged with Debug.
* ro.debuggable=1
* ADB is enabled by default.
MTK Supplemental Note differences:
(1) Debug/log, in principle, the user version can only catch limited information, Eng can catch more information, Debug can
More powerful, advocating the use of ENG version development testing
*the user version of ADB only has shell permissions because of the User/eng version setting ro.secure, and the ENG version
has root privileges* MTK System Log after ICS, the user version of the default closed all LOG, in the Eng version by default Open
In order to capture the complete information
* on the Eng version, log volume >= the user version of the log, some places will be directly check Eng/user version
Verify that log is printed
* The UART is turned off by default on the user version, and the Eng version defaults to UART
* on ENG version, open ANR Predump, will crawl ftrace, can get more information of ANR
* on the ENG version, the RTT can be used to grab the backtrace, enabling KDB for kernel debug, available Ftrace catch
Take CPU Execution Scenario
* MTK AEE Fetches more exception information in ENG version, such as native exception will crawl core dump information
(2) performance, in principle performance testing please use the user version of the test
*The user version improves the first boot speed and uses the DVM pre-optimization to decompose the Dex file into a direct load
Run the Odex file, the ENG version does not open this optimization
* Less log printing, uart off, in principle the user version performance is better than the ENG version
(3) How to confirm the User/eng version
* Java layer, check the type value in the Android.os.Build class
* Native layer, Property_get ("Ro.build.type", char* value, "Eng"); Then check the value
Value
* When debugging, adb shell Getprop ro.build.type return value if the user is the user version, Eng is
ENG version
* Log Confirmation, view Ro.build.type properties in Mobile Log/aplog_xxxxx/versions
(4) How to compile the User/eng version
* The default compilation is the Eng version, if you need to compile the user version, add parameters-
O=target_build_variant=user such as:
./mk-o=target_build_variant=user Mt6577_phone New
Differences between Android USER version and ENG version