一:Background & 有關flow
MTK Operator name display分為兩種型別的手機:
1. Sim卡名稱:
從基於引導SIM卡讀取IMSI到Spn-conf.xml在(假設MVNO該卡是Virtual-spn-conf-by-***.xml中)匹配得到的name,會儲存在SIMInfo這個database中,興許sim卡的名稱就從此database中取得
關於MVNO能夠參考例如以下FAQ:
ID: FAQ09811
[NW]怎樣區分MNO和MVNO
使用場景:
Setting下SimMangement中SIMInfo等
2. 註冊上的網路的名稱:
這部分顯示所用string的主要來源有例如以下這些。且他們之間終於顯示哪個source的string是依據網路和這些source的內容所終於確定的rule決定的(如當前是否roaming,當前註冊的plmn是否在EF_SPDI中,EF_SPN中有相關flag標識要不要顯示spn…)
關於rule:
請參考Gsm sec 51.011 EF_SPN的部分還有cphs spec。
code的部分,請參考SIMRecords. getDisplayRule和GsmServiceStateTracker. updateSpnDisplay:
(1) Sim卡中檔案。如EF_SPN, EF_OPN, EF_SOPN, EF_OPL, EF_PNN, EF_SPDI…
(2) 註冊到的網路的plmn,相應Spn-conf.xml
(3) NITZ,即網路下發的名字
Spec 51.011中EF_SPN定義的rule 總結就是:
1. 名稱分為 SPN 和 Registered plmn(包含EONS, CPHS (即ONS), S-CPHS, NITZ, PLMN。優先順序依次減少)
2. 假設沒有SPN檔案,那麼就顯示Registered plmn
3. 若有SPN,註冊的plmn是HPLMN或者註冊的plmn在SIM卡檔案EF_SPDI中,那麼
(1) 假設有SPN就要顯示SPN
(2) 假設SPN的bit1 = 1, 則須要同一時候顯示Registered plmn,假設SPN的bit1=0,則不須要同一時候顯示Registered plmn
4. 若有SPN,註冊的plmn是Roaming plmn且註冊的plmn也不在SIM卡檔案EF_SPDI中,那麼
(1) 顯示Registered plmn
(2) 假設SPN的bit2=0,則須要同一時候顯示SPN,假設SPN的bit2=1,則不須要同一時候顯示SPN
當中客戶能夠客製化的部分是Spn-conf.xml/Virtual-spn-conf-by-***.xml;換句話說,假設你改動了相關xml沒有生效,應該是依照spec顯示了更高優先順序的名字(EONS, CPHS, NITZ…)
假設依照spec顯示了更高優先順序的名字,而不是xml配置的,那麼想要顯示xml的名字必定要改動code flow而導致破壞spec定義的rule(因為這是spec定義的通用rule,所以SIM卡在實做時也須要follow spec rule)------這種客製化非常可能會導致CTA/FTA等測試fail,且遵循spec的SIM卡顯示也會出問題;建議跟客戶說明這部分是有spec規定的,不要進行除xml的客製化
二:遇到問題時的處理方式
假設有些Operator不follow GSM Spec,而定義自己的rule,請遵循的例子中,以下列方式:
(1)假設operator有正式spec,請提供具體的技術檔案。
(2)把這張卡在同一時間和地點(另外,還要確保網路狀態)放Samsung,HTC和其他控制裝置來重現問題,提供控制機器效能
(3)這個地方卡MTK手機重現該問題,並提供電源來重現問題mobile log