https://blog.csdn.net/wangjicong_215/article/details/74634473
1.APN配置:
S7731C5.1:
vendor\sprd\operator\operator_res\apn\apns-conf_8.xml
S7731G/C6.0:
vendor\sprd\overlay\apn\apns-conf_8.xml
…
<apn carrier="GLobe Prepaid"
mcc="515"
mnc="02"
apn="http.globe.com.ph"
server="http://www.globe.com.ph/globe.asp"
type="default,supl"
/>
<apn carrier="Cherry Prepaid"
mcc="515"
mnc="02"
apn="internet.cherry.com.ph"
server="http://www.cherrymobile.com.ph"
mvno_type="spn"
mvno_match_data="Cherry Prepaid"
type="default"
/>
<apn carrier="Cherry Prepaid"
mcc="515"
mnc="02"
apn="internet.cherry.com.ph"
server="http://www.cherrymobile.com.ph"
mvno_type="spn"
mvno_match_data="Cherry Mobile"
type="default"
/>
…
虚拟运营商mvno_type要配成spn,mvno_match_data是spn配置的数据内容。
不带mvno_type的是实体运营商。
2.SPN配置:
S7731C5.1:
vendor\sprd\oem\config\GlobalConfig\virtual-net-rule\virtual-net-rule-conf.xml
<virtualnetnumeric="51502" carrier="Cherry Prepaid" mvno_type="spn" mvno_match_data="CherryPrepaid"/>
<virtualnetnumeric="51502" carrier="Cherry Prepaid" mvno_type="spn" mvno_match_data="CherryMobile"/>
<virtualnetnumeric="51502" carrier="Globe Prepaid" mvno_type="spn" mvno_match_data="TM"/>
<virtualnetnumeric="51502" carrier="Globe Prepaid" mvno_type="spn" mvno_match_data="ABS-CBN"/>
<virtualnetnumeric="51503" carrier="Smart Internet" mvno_type="spn" mvno_match_data="Talk N Text"/>
其中mvno_match_data数据为APN里的mvno_match_data,carrier="Cherry Prepaid"为APN里的carrier
最后配置如下文件:
vendor\sprd\oem\config\GlobalConfig\spn\virtual-spn-conf.xml
<spnOverride numeric="51502"mvno="51502Cherry Prepaid" spn="Cherry Prepaid"/>
<spnOverride numeric="51502"mvno="51502Cherry Prepaid" spn="Cherry Mobile"/>
<spnOverride numeric="51502"mvno="51502Globe Prepaid" spn="TM"/>
<spnOverride numeric="51502"mvno="51502Globe Prepaid" spn="ABS-CBN"/>
<spnOverride numeric="51503"mvno="51503Smart Internet" spn="Talk N Text"/>
其中mvno数据为mcc+mnc+APN里配置的apn carrier,spn="Cherry Prepaid"为Sim卡要显示的名称。
虚拟运营商Sim卡名称检索规则:
1.根据APN里的mvno_type="spn"判断是虚拟运营商
2.根据virtual-net-rule-conf.xml查找匹配的SPN顺序ID
3.根据顺序ID在virtual-spn-conf.xml里查找对应的名称
因此这三张表里涉及到SPN的数据要一项一项对应,顺序不能错乱!
S7731G/C6.0:
packages\apps\CarrierConfig\assets\carrier_config_51502.xml
packages\apps\CarrierConfig\assets\carrier_config_51503.xml
……
<carrier_config spn="CherryPrepaid">
<boolean name="mvno"value="true"/>
<stringname="spn">Cherry Prepaid</string>
</carrier_config>
<carrier_configspn="Cherry Mobile">
<boolean name="mvno" value="true"/>
<stringname="spn">Cherry Prepaid</string>
</carrier_config>
<carrier_configspn="TM">
<boolean name="mvno"value="true"/>
<stringname="spn">TM</string>
</carrier_config>
<carrier_configspn="ABS-CBN">
<boolean name="mvno"value="true"/>
<stringname="spn">ABS-CBN</string>
</carrier_config>
……
<carrier_configspn="Cherry Mobile">为APN配置里的mvno_match_data数据,
<stringname="spn">Cherry Prepaid</string>为要显示的SIM卡名称。
3.运营商名称不显示2G/3G/4G:
S7731G/C 6.0:
SystemUIPluginsHelper.java 和KeyguardPluginsHelper.java修改如下
protected String appendRatToNetworkName(Context context, ServiceState state, String operator){
String operatorName = operator;
SystemUiConfig config = SystemUiConfig.getInstance(context);
if (context == null || state == null || !getBoolAppendRAT()) {
return operatorName;
}
if(OptConfig.SUN_C7359_C5D_FWVGA_CHERRY){//Kalyy
return operatorName;
}
……
}