一、导出APN文件
在system/etc/目录下,可以通过adb命令pull出来:
1、adb root
2、adb remount
3、adb pull /system/etc/apns-conf.xml
二、修改apns-conf.xml文件
1、打开文件如下:
<apn carrier="China Mobile" mcc="460" mnc="00" apn="cmnet" type="default,supl" />
<apn carrier="China Mobile" mcc="460" mnc="02" apn="cmnet" type="default,supl" />
<apn carrier="Cmiot" apn="Cmiot" mcc="460" mnc="11" user="" password="" server="" proxy="" port="" mmsproxy="" mmsport="" mmsc="" type="default" />
<apn carrier="中国移动 (China Mobile) GPRS" mcc="460" mnc="07" user="cmnet" password="cmnet" apn="cmnet" type="default,supl" />
<apn carrier="CHina Mobile MMS" mcc="460" mnc="00" apn="cmwap" proxy="10.0.0.172" port="80" mmsc="http://mmsc.monternet.com" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
<apn carrier="China Mobile MMS" mcc="460" mnc="02" apn="cmwap" proxy="10.0.0.172" port="80" mmsc="http://mmsc.monternet.com" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
<apn carrier="中国移动彩信 (China Mobile)" mcc="460" mnc="07" apn="cmwap" proxy="10.0.0.172" port="80" mmsc="http://mmsc.monternet.com" mmsproxy="10.0.0.172" mmsport="80" type="mms" />
Carrier:apn的名字,可为空,只用来显示apn列表中此apn的显示名字。
Mcc:由三位数组成。 用于识别移动用户的所在国家;
Mnc:由两位或三位组成。 用于识别移动用户的归属PLMN。 MNC的长度(两位或三位数)取决于MCC的值。
Apn:APN网络标识(接入点名称),是APN参数中的必选组成部分。此标识由运营商分配。
Proxy:代理服务器的地址
Port:代理服务器的端口号
Mmsc:MMS中继服务器/多媒体消息业务中心,是彩信的交换服务器。
Mmsproxy:彩信代理服务器的地址
Mmsport:彩信代理服务器的端口号
Protocol:支持的协议,不配置默认为IPV4。
User:用户
Password:密码
Authtype:apn的认证协议,PAP为口令认证协议,是二次握手机制。CHAP是质询握手认证协议,是三次握手机制。
2、程序会根据SIM卡号imsi中的mcc和mnc匹配到正确的APN,如中国移动的物联网卡,mcc和mnc分别为460,04,若类别中没有该信息,那么需要在文件中增加:
<apn carrier="attach" apn="" mcc="460" mnc="04" user="" password="" server="" proxy="" port="" mmsproxy="" mmsport="" mmsc="" type="ia" />
<apn carrier="default" apn="cmiot" mcc="460" mnc="04" user="" password="" server="" proxy="" port="" mmsproxy="" mmsport="" mmsc="" type="default" />
<apn carrier="ims" apn="cmiot" mcc="460" mnc="04" user="" password="" server="" proxy="" port="" mmsproxy="" mmsport="" mmsc="" type="ims" />
3、这里重点说明下apn type,不同的apn type通常处理不同的业务,如cmiot的type为default,用来拨号上网,ims的type为ims,用来IMS服务,cmwap的type为mms,用来彩信服务,如果type为ia,则代表该apn是用来attach网络的。
三、导入新的文件
1、导入:adb push apns-conf.xml /system/etc/
2、删除数据库
apn数据存储的数据库:/data/data/com.android.providers.telephony/databases/telephony.db,系统启动后,如果该数据库为空,则会根据system/etc/apn-conf.xml并把其中的内容加入到数据表中
3、adb shelll reboot
四、通过代码直接修改
以上方法为直接修改设备里面的apn列表,如果通过编译代码修改,则直接修改vendor\qcom\proprietary\qrdplus\Extension\apps\etc\apn-conf.xml
备注:不同的平台文件路径可能有差异。