|
发表于 2021-11-6 16:39:05
4666 浏览 0 回复
[FAQ26756] 如何在user load使用EngineerMode的设置项
如果要在工模下开启,请作以下三个修改
a: 在/device/mediatek/system/common/device.mk 和/device/mediatek/common/device.mk 这两支文件中,找到以下代码段,并把红字部分修改为
- ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug user),)
- ifneq ($(wildcard vendor/mediatek/internal/em_enable),)
- PRODUCT_PACKAGES += EngineerMode
- PRODUCT_PACKAGES += libem_support_jni
- PRODUCT_PACKAGES += libem_usb_jni
- PRODUCT_PACKAGES += libem_wifi_jni
- PRODUCT_PACKAGES += libem_audio_jni
- else
- ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug),)
- PRODUCT_PACKAGES += EngineerMode
- PRODUCT_PACKAGES += libem_support_jni
- PRODUCT_PACKAGES += libem_usb_jni
- PRODUCT_PACKAGES += libem_wifi_jni
- PRODUCT_PACKAGES += libem_audio_jni
- endif
- endif
复制代码
b: 在device/mediatek/vendor/common/device.mk 和/device/mediatek/common/device.mk两支文件中,找到以下代码段,并把红字部分修改为
- ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug user),)
- ifneq ($(wildcard vendor/mediatek/internal/em_enable),)
- DEVICE_MANIFEST_FILE += $(LOCAL_PATH)/project_manifest/manifest_em.xml
- PRODUCT_PACKAGES += em_hidl
- else
- ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug),)
- DEVICE_MANIFEST_FILE += $(LOCAL_PATH)/project_manifest/manifest_em.xml
- PRODUCT_PACKAGES += em_hidl
- endif
- endif
复制代码
c. 通过a和b两个步骤,会开启工程模式相关模块的built in,但是默认会不显示任何功能。请您在/vendor/mediatek/proprietary/packages/apps/EngineerMode/res/xml/ui_customize.xml 这支文件中,
选择您需要的功能,把该功能的 ifshow="false" 改为ifshow="true", 即可显示。
如果做完上面几步,有些UI在user load仍然不显示,是因为 /vendor/mediatek/proprietary/packages/apps/EngineerMode/src/com/mediatek/engineermode/PrefsFragment.java 这支文件的removeItemsByBuildType函数中,
也会判断如果 FeatureSupport.isUserLoad(),会隐藏一些功能,这些功能是我们强烈不建议在user load上开启的,并且默认不会built in。
这个部分在Android R (不含)之前的平台上,行为一直如此,并且与前面提到的修改ui_customize.xml,管理的是不同的子功能,并不冲突。如果您确认也需要这些功能,还需按以下步骤修改:
在alps\vendor\mediatek\proprietary\packages\apps\EngineerMode\ 下,修改
1、Android.mk
ifeq ($(TARGET_BUILD_VARIANT), user) 下mark 掉对应的folder 或 file,他们通常被赋值给的ENG_ONLY_开头的变量里。
如果没有对应folder 和 file, 可忽略此步。
2、PrefsFragment.java
if (FeatureSupport.isUserLoad()) { 下 mark 掉对应的key值
file 和 key 值的对应关系可以在 res/xml/[tab name].xml 中对应。
比如您要的AT Command Tool功能,res/xml/telephony.xml 下可以看到,android:key="lte_tool",和 android:targetClass="com.mediatek.engineermode.lte.CommandTool"
那么,
先在Android.mk 中搜lte,注释掉赋值给ENG_ONLY_TEL_FILE的这句话: $(call all-java-files-under, $(JAVA_SRC_DIR)/lte)。
再到PrefsFragment.java 搜lte_tool,注释掉包在if (FeatureSupport.isUserLoad()) { 里的部分
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|
手机微信同号:13682654092
|
|
|
|
|
登录或注册
|