Factory mode test item cannot display
如果factory mode的測項不能正常顯示,請首先參考檢查以下原因:
原因一:factory.c的ftm_test_item[]中未定義該測項
請務必確定alps/mediatek/factory/src/factory.c中ftm_test_item[]數組中定義了該測項。
static item_t ftm_test[] = {
#ifdef FEATURE_FTM_KEYS
item(ITEM_KEYS, uistr_keys),
#endif
#ifdef FEATURE_FTM_JOGBALL
item(ITEM_JOGBALL, uistr_jogball),
#endif
#ifdef FEATURE_FTM_OFN;
item(ITEM_OFN, uistr_ofn),
#endif
#ifdef FEATURE_FTM_TOUCH
item(ITEM_TOUCH, uistr_touch),
#endif
原因二:未進行宏定義
確認定義該測項時,其對應的宏是否有定義
在alps/mediatek/factory/src/factory.c的ftm_test_items[]中,查看包裹該測項的宏。
#ifdef MTK_WLAN_SUPPORT
#ifdef FEATURE_FTM_WIFI
item(ITEM_WIFI, "Wi-Fi"),
#endif
#endif
在alps/mediatek/custom/[project]/factoryinc/cust.h中查看FEATURE_FTM_WIFI的定義
#if defined (MTK_WLAN_SUPPORT)
#define FEATURE_FTM_WIFI
#endif
關於MTK_WLAN_SUPPORT的定義需要在alps/mediatek/config/[project]/ProjectConfig.mk中查看
注意:請查看ProjectConfig.mk文件中是否有AUTO_ADD_GLOBAL_DEFINE_BY_NAME和AUTO_ADD_GLOBAL_DEFINE_BY_VALUE的定義,請確定該測項需要的宏定義,已經按NAME或者VALUE添加在以上兩個定義之一中。
還需要注意宏定義一定要確保能被編譯到
#define FEATURE_DUMMY_AUDIO
#ifndef FEATURE_DUMMY_AUDIO
#define FEATURE_FTM_AUDIO
#define FEATURE_FTM_FM
#define FEATURE_FTM_FMTX
#ifdef HAVE_MATV_FEATURE
#define FEATURE_FTM_MATV
#endif
#endif
如上所示,即使定義了#define FEATURE_FTM_FM,但是從前面#ifndef語句來看,該定義永遠不會被編譯到。
原因三:factory.ini裡面沒有改測項
有時修改了factory.ini後,build factory模塊,然後將factory模塊push到手機裡面。
這個時候請注意,如果測項無法正常顯示,請務必檢查手機端的factory.ini是否已經包含該測項。
檢查方法如下:
手機進入normal mode或者factory mode,並連接到電腦上
打開命令行,輸入adb shell命令
進入手機目錄後,輸入cd etc命令,進入etc目錄下
輸入cat factory.ini命令,查看手機中factory.ini是否包含該測項
原因四:字符串定義不一致
為了能夠正常顯示測項,需要確保測項字符串在ftm_test_item[]與factory.ini一致。
factory.c
static item_t ftm_test_items[] = {
#ifdef FEATURE_FTM_KEYS
item(ITEM_KEYS, uistr_keys),
#endif
#ifdef FEATURE_FTM_JOGBALL
item(ITEM_JOGBALL, uistr_jogball),
#endif
alps/mediatek/factory/inc/uistrings_chn.h
#define uistr_keys "按鍵"
#define uistr_jogball "軌跡球"
factory.chn.ini
MenuItem=按鍵;
MenuItem=軌跡球;
原因五:factory.ini中語言與factory mode一致
factory mode是中文版本,則確保factory.ini中的字符串也是中文版本;反之亦然
如果想象是只顯示Wi-Fi,BT等中英版本中均使用英文的測項,一定首先檢查factory mode與factory.ini的語言版本是否相同。
注意,此處查看的factory.ini是指手機端etc目錄下面的