Android CarrierConfig 配置问题的解决流程
开发步骤
确认代码路径
查看编译用的CarrierConfig APK在项目代码的path,一般是源码或者厂商定制的:
- packages/apps/CarrierConfig/
- vendor/mediatek/proprietary/packages/apps/CarrierConfig
Note:一些overlay的方式是替换xml文件,CarrierConfigRes中product.xml覆盖vendor.xml的配置。
CC配置方法
配置时可根据源码支持的方式cid、mccmnc(gid)或内部定制的其他匹配方案。
AOSP支持的carrierid方式的对应关系可查看TelephonyProvider内的carrier_list.textpb文件定义,会映射运营商一组卡,不需要单独根据plmn/imsi来重复配置。
- packages/providers/TelephonyProvider/assets/latest_carrier_id/carrier_list.textpb
<!-- Dish Boost 相关定义,Android S 还不完善,详情如下 -->
carrier_id {
canonical_id: 2409
carrier_name: "Dishnet Wireless"
carrier_attribute {
mccmnc_tuple: "40448"
}
}
carrier_id {
canonical_id: 2503
carrier_name: "Boost"
carrier_attribute {
mccmnc_tuple: "50501"
spn: "BOOST"
}
}
carrier_id {
canonical_id: 2517
carrier_name: "Dish"
carrier_attribute {
mccmnc_tuple: "313340"
}
}
carrier_id {
canonical_id: 2518
carrier_name: "Boost Mobile - MNO"
carrier_attribute {
mccmnc_tuple: "313340"
gid1: "6332"
}
}
carrier_id {
canonical_id: 2519
carrier_name: "Boost Mobile - MVNO"
carrier_attribute {
mccmnc_tuple: "310240"
gid1: "6432"
}
}
如上并不match以下所有卡,含多个Gid,不能直接用mccmnc配置,也无法用carrierid覆盖。
- 313-340 (IMSI)
- 208-09 (SFR)
- 302-220 (TELUS)
疑问:配置cid=2517给313-340没有gid的,是否会影响其他带gid的,比如2518。
相关参考
文件介绍:Android carrier_list.textpb 和apns-conf.xml 配置文件参考-CSDN博客
debug指引:【笔记】CarrierConfig 解析加载的debug和日志分析-CSDN博客