搜索

451

主题

662

帖子

4997

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
4997
QQ
发表于 2021-11-6 16:39:05 3301 浏览 0 回复

[FAQ26756] 如何在user load使用EngineerMode的设置项

如果要在工模下开启,请作以下三个修改

a: 在/device/mediatek/system/common/device.mk 和/device/mediatek/common/device.mk 这两支文件中,找到以下代码段,并把红字部分修改为  

  1. ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug user),)

  2.    ifneq ($(wildcard vendor/mediatek/internal/em_enable),)

  3.     PRODUCT_PACKAGES += EngineerMode

  4.     PRODUCT_PACKAGES += libem_support_jni

  5.     PRODUCT_PACKAGES += libem_usb_jni

  6.     PRODUCT_PACKAGES += libem_wifi_jni

  7.     PRODUCT_PACKAGES += libem_audio_jni

  8.   else

  9.     ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug),)

  10.       PRODUCT_PACKAGES += EngineerMode

  11.       PRODUCT_PACKAGES += libem_support_jni

  12.       PRODUCT_PACKAGES += libem_usb_jni

  13.       PRODUCT_PACKAGES += libem_wifi_jni

  14.       PRODUCT_PACKAGES += libem_audio_jni

  15.     endif

  16.   endif
复制代码


b: 在device/mediatek/vendor/common/device.mk 和/device/mediatek/common/device.mk两支文件中,找到以下代码段,并把红字部分修改为     

  1. ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug user),)

  2.    ifneq ($(wildcard vendor/mediatek/internal/em_enable),)

  3.      DEVICE_MANIFEST_FILE += $(LOCAL_PATH)/project_manifest/manifest_em.xml

  4.      PRODUCT_PACKAGES += em_hidl

  5.    else

  6.      ifneq ($(filter $(TARGET_BUILD_VARIANT),eng userdebug),)

  7.        DEVICE_MANIFEST_FILE += $(LOCAL_PATH)/project_manifest/manifest_em.xml

  8.        PRODUCT_PACKAGES += em_hidl

  9.      endif

  10.    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
回复

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则


登录或注册
快速回复 返回顶部 返回列表