一: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