如何区分MNO和MVNO
MVNO(Mobile Virtaul Network Operator)虚拟网络运营商,没有自己的物理网络,租用MNO(Mobile Network Operator)网络提供的网络服务。
我们知道Spec条款operator通过间MCC/MNC (Mobile Country Code/Mobile Network Code)来区分的。而MVNO和相应MNO的MCC/MNC是同样的,那就须要MVNO定义额外的栏位(通常都是SIM卡中某支文件)来和相应MNO做区分;详细这个额外的栏位是什么是每一个MVNO自定义的,须要向MVNO确认。
眼下MTK支持区分MVNO的方式有四种(KK曾经没有EF_GID1方式)。每种区分方式相应一个xml的配置表:
1. EF_SPN方式,相应MVNO配置到Virtual-spn-conf-by-efspn.xml中
2. EF_IMSI方式,相应MVNO配置到Virtual-spn-conf-by-imsi.xml中
3. EF_PNN方式。相应MVNO配置到Virtual-spn-conf-by-efpnn.xml中
4. EF_GID1方式,相应MVNO配置到Virtual-spn-conf-by-efgid1.xml中
须要向MVNO确认的信息例如以下:
1. 区分方式是以上哪种。从而决定相关信息须要配置到哪个xml中
2. MVNO的MCC/MNC是什么
3. MVNO的区分栏位的值是什么
4. MVNO须要显示成什么
5. MVNO是否有自己的APN须要配置(还是直接使用相应MNO的),假设须要,值是什么
KK曾经(JB*.MP):
一 SPN的设定:
(1)通过EF_SPN区分
这中方式是读取SIM中的文件EF_SPN,结合SIM的mccmnc+spn,在virtual-spn-conf-by-efspn.xml 中查找有没有相应的记录,假设有这表示这个SIM是MVNO的卡,同一时候取name字段的内容当作运营商名称。
假设知道MVNO的SIM卡中的SPN是“abc”,MNO的MCC/MNC是10000。期望显示运营商名是”MVNO“,那就这样加记录(在Virtual-spn-conf-by-efspn.xml中)
<virtualSpnOverride mccmncspn="10000abc“ name="MVNO">
(2)通过EF_IMSI区分
这中方式是imsi中有一段特殊的数字标识用于和MNO区分
比如MNO的MCC/MNC是46692。MVNO的IMSI是466923302848289,IMSI的第9位(注意:是0 base, 所以index要填08)起连续2个数字为特殊标识(28)。期望显示的运营商名称是“MVNO”。那就这样加记录(Virtual-spn-conf-by-imsi.xml中)
<virtualSpnOverride mccmnc="46692" index="08" length="02" pattern="28" name=“MVNO”>
(3)通过EF_PNN区分
EF_PNN是SIM中的一个option的文件,里面存放一组网络运营商名称(PLMN Network Name)。这样的方式即是读取EF_PNN中的第一个pnn来匹配。假设MNO的MCC/MNC是10000。MVNO中EF_PNN的第一个pnn是“abc”。期望显示的运营商名称是“MVNO”,那就这样加记录(Virtual-spn-conf-by-efpnn.xml中)
<virtualSpnOverride mccmncpnn="10000abc“ name="MVNO">
二 APN的设定
其相应的文件是apns-conf.xml。和spn-conf.xml同样的文件夹。
对照SPN,APN就简单很多,APN填写和SPN区分选择有联系。 这里举例说明,原MNO的APN的设定
<apn carrier="Orange Entreprise"
mcc="100"
mnc="00"
apn="MNO的apn"
user="MNO的user"
password="MNO的password"
type="default,supl"
/>
(1)通过EF_SPN区分
区分是通过spn字段。和spn记录中的spn字段同样
假如spn中MVNO相应记录是<virtualSpnOverride mccmncspn="10000abc“ name="MVNO">;
<apn carrier="Orange Entreprise" <<设定中显示的名称
mcc="100"
mnc="00"
spn="abc" <<添加这个字段
apn="MVNO的apn"
user="MVNO的user"
password="MVNO的password"
type="default,supl"
/>
(2)通过EF_IMSI区分
通过imsi的pattern区分,和spn中的pattern同样。
假如spn中的MVNO记录是<virtualSpnOverride mccmnc="46692" index="08" length="02" pattern="28" name=“MVNO”>
那这个相应的MVNO的AP是
<apn carrier="Orange Entreprise" <<设定中显示的名称
mcc="100"
mnc="00"
imsi="28" <<添加这个字段
apn="MVNO的apn"
user="MVNO的user"
password="MVNO的password"
type="default,supl"
/>
(3)通过EF_PNN区分
区分是通过pnn字段,和spn记录中的pnn字段同样
假如spn中MVNO相应记录是<virtualSpnOverride mccmncpnn="10000abc“ name="MVNO">;
<apn carrier="Orange Entreprise" <<设定中显示的名称
mcc="100"
mnc="00"
pnn="abc" <<添加这个字段
apn="MVNO的apn"
user="MVNO的user"
password="MVNO的password"
type="default,supl"
/>
KK以后(包括KK):
一 SPN的设定:
全部MVNO区分方式的virtual xml的构成都应该是mccmnc+pattern
(1)通过EF_SPN区分
这中方式是读取SIM中的文件EF_SPN,结合SIM的mccmnc+spn,在virtual-spn-conf-by-efspn.xml 中查找有没有相应的记录,假设有这表示这个SIM是MVNO的卡,同一时候取name字段的内容当作运营商名称。
假设知道MVNO的SIM卡中的SPN是“abc”。MNO的MCC/MNC是10000,期望显示运营商名是”MVNO“,那就这样加记录(在Virtual-spn-conf-by-efspn.xml中)
<virtualSpnOverride mccmncspn="10000abc“ name="MVNO">
(2)通过EF_IMSI区分
这中方式是imsi中有一段特殊的数字标识用于和MNO区分
比如MNO的MCC/MNC是46692,MVNO的IMSI是466923302848289,IMSI的第9位起连续2个数字为特殊标识(28),期望显示的运营商名称是“MVNO”,那就这样加记录(Virtual-spn-conf-by-imsi.xml中)
<virtualSpnOverride imsipattern="4669246692×××28×××××" name=“MVNO”>
(3)通过EF_PNN区分
EF_PNN是SIM中的一个option的文件。里面存放一组网络运营商名称(PLMN Network Name)。这样的方式即是读取EF_PNN中的第一个pnn来匹配。假设MNO的MCC/MNC是10000,MVNO中EF_PNN的第一个pnn是“abc”,期望显示的运营商名称是“MVNO”,那就这样加记录(Virtual-spn-conf-by-efpnn.xml中)
<virtualSpnOverride mccmncpnn="10000abc“ name="MVNO">
(4)通过EF_GID1区分
EF_GID1是SIM中的一个option的文件,里面存放了n个byte的数据;假设MNO的MCC/MNC是10000,MVNO的EF_GID1的内容是"11"。期望显示的运营商名称是"MVNO",那就这样加记录(Virtual-spn-conf-by-efgid1.xml中)
<virtualSpnOverride mccmncgid1="1000011" name="MVNO">
二 APN的设定
其相应的文件是apns-conf.xml,和spn-conf.xml同样的文件夹。对照SPN,APN就简单很多。APN填写和SPN区分选择有联系。
这里举例说明,原MNO的APN的设定
<apn carrier="Orange Entreprise"
mcc="100"
mnc="00"
apn="MNO的apn"
user="MNO的user"
password="MNO的password"
type="default,supl"
/>
(1)通过EF_SPN区分
区分是通过spn字段。和spn记录中的spn字段同样
假如spn中MVNO相应记录是<virtualSpnOverride mccmncspn="10000abc“ name="MVNO">;
<apn carrier="Orange Entreprise" <<设定中显示的名称
mcc="100"
mnc="00"
apn="MVNO的apn"
user="MVNO的user"
password="MVNO的password"
type="default,supl"
mvno_type="spn" <<添加这两个字段
mvno_match_data="abc"
/>
(2)通过EF_IMSI区分
通过imsi的pattern区分,和spn中的pattern同样。
假如spn中的MVNO记录是<virtualSpnOverride imsipattern="4669246692×××28×××××" name=“MVNO”>
那这个相应的MVNO的APN是
<apn carrier="Orange Entreprise" <<设定中显示的名称
mcc="100"
mnc="00"
apn="MVNO的apn"
user="MVNO的user"
password="MVNO的password"
type="default,supl"
mvno_type="imsi" <<添加这两个字段
mvno_match_data="46692×××28×××××"
/>
(3)通过EF_PNN区分
区分是通过pnn字段,和spn记录中的pnn字段同样
假如spn中MVNO相应记录是<virtualSpnOverride mccmncpnn="10000abc“ name="MVNO">;
<apn carrier="Orange Entreprise" <<设定中显示的名称
mcc="100"
mnc="00"
apn="MVNO的apn"
user="MVNO的user"
password="MVNO的password"
type="default,supl"
mvno_type="pnn" <<添加这两个字段
mvno_match_data="abc"
/>
(4)通过EF_GID1区分
区分是通过gid1字段,和spn记录中的gid1字段同样
假如spn中MVNO相应记录是<virtualSpnOverride mccmncgid1="1000011" name="MVNO">;
<apn carrier="Orange Entreprise" <<设定中显示的名称
mcc="100"
mnc="00"
apn="MVNO的apn"
user="MVNO的user"
password="MVNO的password"
type="default,supl"
mvno_type="gid1" <<添加这两个字段
mvno_match_data="11"
/>
版权声明:本文博主原创文章,博客,未经同意不得转载。
如何区分MNO和MVNO的更多相关文章
- android 网络运营商的名字显示规则(锁定屏幕,下拉列表)
一:Background & 有关flow MTK Operator name display分为两种类型的手机: 1. Sim卡名称: 从基于引导SIM卡读取IMSI到Spn-conf.xm ...
- java中Action层、Service层和Dao层的功能区分
Action/Service/DAO简介: Action是管理业务(Service)调度和管理跳转的. Service是管理具体的功能的. Action只负责管理,而Service负责实施. DAO只 ...
- 区分元素特性attribute和对象属性property
× 目录 [1]定义 [2]共有 [3]例外[4]特殊[5]自定义[6]混淆[7]总结 前面的话 其实attribute和property两个单词,翻译出来都是属性,但是<javascript高 ...
- 关于CLR、CIL、CTS、CLS、CLI、BCL和FCL 的区分与总结
关于CLR.CIL.CTS.CLS.CLI.BCL和FCL 的区分与总结 如果要想深入学习.NET平台,那么标题中的这些关键字对你来说并不陌生,这些名词构成了.NET庞大的生态系统,为了宏观认识.NE ...
- web开发中不同设备浏览器的区分
通常区分不同设备浏览器是用JavaScript中的navigator.userAgent.toLowerCase()方式获取浏览器的userAgent信息 //使用javascript判断是否是iPh ...
- JavaScript区分click事件和mousedown(mouseup、mousemove)方法
在前端开发工作中,会遇到这样问题:针对同一个dom元素,即希望为它绑定click事件,又想该元素可以允许拖拽的效果.而使用拖拽的效果,我们一般就会用到mousedown,mousemove和mouse ...
- 如何区分/dev/input/event
方法是把每一个/dev/input/event打开.通过ioctl函数来读取设备name,每一个设备name是固定的,可以根据name区分event.我这是查找触摸事件为例:代码如下: static ...
- web也是区分前端与后端的,session\cookie辨析
<1>Ajax交互方式 Ext.Ajax.request( { //被用来向服务器发起请求默认的url url : "", //请求时发送后台的参数,既可以是Json对 ...
- 《征服 C 指针》摘录1:什么是空指针?区分 NULL、0 和 '\0'
一.什么是空指针? 空指针 是一个特殊的指针值. 空指针 是指可以确保没有向任何一个对象的指针.通常使用宏定义 NULL 来表示空指针常量值. 空指针 确保它和任何非空指针进行比较都不会相等,因此经常 ...
随机推荐
- ipsec vpn私网数据大量掉包问题
周四出现了一个很奇葩的问题,所有的站点的VPN通信都是正常的,唯独郑州节点和中心节点的私网数据长ping掉包量达到20%左右,在中心节点ping郑州节点公网IP没有发现掉包问题,故障排除如下: 1.测 ...
- uva11426(莫比乌斯反演)
传送门:GCD Extreme (II) 题意:给定n(n<=4000000),求G G=0 for(int i=1;i<n;i++) for(int j=i+1;j<=n;j++) ...
- Wix打包系列 (六)制作升级和补丁包
原文:Wix打包系列 (六)制作升级和补丁包 前面我们已经知道怎么制作一个完整安装包了,但我们的软件往往不能一次性就满足客户的需要,当客户需要我们给软件进行升级的时候,我们应该怎么做呢? 在这之前,我 ...
- SOLOWHEEL - 电动独轮车 - SOLOWHEEL俱乐部聚会活动火热报名中
SOLOWHEEL - 电动独轮车 - SOLOWHEEL俱乐部聚会活动火热报名中 SOLOWHEEL俱乐部聚会活动火热报名中
- 调用WCF的异步方法
原文:调用WCF的异步方法 AsyncCallback aLoginCallback = delegate(IAsyncResult result) { var aSystemUser = WcfCl ...
- 第一个Python程序的Hello Python,竟然有问题
print 'hello python' 运行时显示:SyntaxError: invalid syntax 解决办法: 这应该是版本的问题,Python2的话直接就可以输出,但是到了Python3需 ...
- coding 除了托管外,还能进行团队协作.
coding 除了托管外,还能进行团队协作. oschina 也是非常不错的.
- openstack之nova-api服务流程分析
nova-api公布api服务没实用到一个些框架,基本都是从头写的.在不了解它时,以为它很复杂,难以掌握.花了两三天的时间把它分析一遍后,发现它本身的结构比較简单,主要难点在于对它所使用的一些类库不了 ...
- NPOI 创建Excel,数据读取与写入
<1> using System; using System.Collections.Generic; using System.Linq; using System.Web; using ...
- WPF实现无窗体鼠标跟随
原文:WPF实现无窗体鼠标跟随 上次的弹力模拟动画实现后,我觉得可以把这个弄得更好玩一些,我们可以让小球实时跟随着鼠标,并且还可以让窗口完全消失,让小球在桌面上飞来飞去. 这只需要一些简单的修改就可以 ...