emulator 修改MCCMNC后的联网问题

        在<<Emulator默认电话号码和MCC,MNC的修改>>中已经知道了模拟器的MCC,MNC是如何修改的. 但是修改后是有一个问题的.即模拟器无法联网了. 主要问题是在哪里呢?

        首先我们要知道手机SIM卡中是存储了国际移动用户识别码的就是我们常说的IMSI, 这串数字用于区别移动用户的有效信息. 其总长度一般为15位, 前面的三位就是MCC即国家代码. 如:中国的460 美国的310等. 那么MNC就是 第4位到第6位 . 中国的MNC是两位的所以IMSI  的前5位就是MCCMNC. 美国的MNC是三位,所以IMSI 的前6位就是MCCMNC. 模拟器默认的就是美国的MCCMNC. 即310260. 

        那么当手机插入SIM后是如何确定MNC的位数的呢? 毕竟手机需要根据MCC和MNC来确定apn好接入到对应的网络上网的.首先获取IMSI 是这样的.  在emulator 模拟器的源码中有 qemu/android/android-emu/android/telephony/modem.c  这个文件. 其中有下面这么一段

//原本的代码中 第二项是有数据的 就是相应的IMSI 和IMEI
// 我修改成通过后面的方法来获取相应的数据

{ "+CIMI", NULL, handleGetImsi },

{ "+CGSN", NULL, handleGetImei },

这一段是通过AT指令来获取相应的IMSI 和IMEI的.

         同样在/telephony文件夹下有一个文件 sim_card.c 文件 有这么一段. 

 { "+CRSM=176,28589,0,0,4",  "+CRSM: 144,0,00000002" },   //Change MNC Length to 2

这一段命令是通过AT指令 来确定MNC的长度的 原本最后的一个数字是3.即MNC的长度截取3位. 因为emulator默认MCC是美国的310 所以MNC截取为3位. 现在我们改成2位,这样 framework中就会截取MNC的长度就是两位了.

        确定了MCCMNC的长度后,我们就可以把apns-conf.xml 修改后打包进rom中了.  注意: 原有的aosp中apns-conf.xml  是不包含 其它国家的MCCMNC的. 我们可以将真机的 /system/etc/apns-conf.xml  pull出来 打包进rom中 这样apn的接入点就是 国内的移动网络代码了. 同样我们将真机的 /system/etc/spn-conf.xml  pull出来打包进rom中. 这样 运营商的名字就会根据这个配置文件来确定了. 

       另外 记得将 emulator 中 Cellular 设置项中的NetworkType 选为LTE 然后 重置 apn 就可以上网了.

       通过 adb shell getprop 查看gsm.sim 的相关属性 发现都变了!!.

       

       

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
中国移动3G上网及收发彩信的设置方法: 一、进入设置——无线控件——移动网络设置——接入点名称——点击外键MENU——还原默认——再次点menu——新APN 名称:cmnet APN:cmnet 代理:空 端口:空 用户名:空 密码:空 服务器:空 MMSC:空 彩信代理:空 彩信端口:空 彩信协议:WAP 2.0 MCC:460 MNC:00 APN类型:default 点击外键MENU——保存 二、再次点击MENU键——新APN 名称:cmwap APN:cmwap 代理:010.000.000.172 端口:80 用户名:空 密码:空 服务器:空 MMSC:空 彩信代理:空 彩信端口:空 彩信协议:WAP 2.0 MCC:460 MNC:00 APN类型:default 点击外键MENU——保存 三、再次点击MENU键——新APN 名称:cmmms APN:cmwap 代理:010.000.000.172 端口:80 用户名:空 密码:空 服务器:空 MMSC:mmsc.monternet.com 彩信代理:010.000.000.172 彩信端口:80 彩信协议:WAP 2.0 MCC:460 MNC:00 APN类型:mms 点击外键MENU——保存 四、编辑完以后,按MENU 选择 保存后自动退出。现在在APN页面,你可以看到“GPRS链接互联网cmnet”“移动梦网(GPRS)cmwap”“移动梦网(GPRS)(WAP)cmwap”选项,“GPRS链接互联网cmnet”右边有个白圆点,点下它。变成绿色。说明已经选用 五、网络运营商选择:中国移动 六、到待机界面。按“电话” 进入拨号面板输: *#*#4636#*#* 后自动弹出“手机信息”跟“电池信息”。点击“手机信息”拉到最下面 点击左下角的“切换DNS检查” 按钮,使按钮旁边显示0.0.0.0 allowed 七、重启手机

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值