Q:MTK平台工厂版本宏控不生效。指纹导航功能需要在工厂版本关闭,使用到FACTORY_VERSION_MODE宏控。但是不知为何直接在microtrust_config.mk文件中使用时一直不生效。
A:在同级目录的Android.mk中添加:
+# BSP.fingerprint- 2020.11.16 - no nav in factory - start
+ifeq ($(strip $(FACTORY_VERSION_MODE)),true)
+FACTORY_VERSION_MODE := FACTORY
+endif
+# BSP.fingerprint- 2020.11.16 - no nav in factory - end
在microtrust_config.mk文件中使用:
+ifeq ($(FACTORY_VERSION_MODE),FACTORY)
+$(shell cp -f $(MTK_PATH_SOURCE)/trustzone/microtrust/source/common/$(MICROTRUST_TEE_VERSION)/teei/no_nav_**.ta $(TARGET_OUT_VENDOR)/thh/ta/7778c03fc30c4dd0a319ea29643d4d4b.ta)
+else
+$(shell cp -f $(MTK_PATH_SOURCE)/trustzone/microtrust/source/common/$(MICROTRUST_TEE_VERSION)/teei/**.ta $(TARGET_OUT_VENDOR)/thh/ta/7778c03fc30c4dd0a319ea29643d4d4b.ta)
+endif
如此修改后宏控可使用生效,因此入库。至于为什么直接使用不了,不得而知。但是今天发现这种修改有隐患。
FACTORY_VERSION_MODE该宏控不止指纹一个模块使用,这样会导致别的模块判断该宏控的值依旧为TRUE,而我们修改成了factory就会导致别的模块使用异常。
在Android.mk中去重新定义使用的宏:
-FACTORY_VERSION_MODE := FACTORY+FACTORY_VERSION_MODE_FP := FACTORY
总结:在修改宏控等平台定义的值时,一定要慎重,修改是否影响平台使用。