开发步骤
确认代码路径
查看编译用的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: 2409carrier_name: "Dishnet Wireless"carrier_attribute {mccmnc_tuple: "40448"}
}carrier_id {canonical_id: 2503carrier_name: "Boost"carrier_attribute {mccmnc_tuple: "50501"spn: "BOOST"}
}carrier_id {canonical_id: 2517carrier_name: "Dish"carrier_attribute {mccmnc_tuple: "313340"}
}
carrier_id {canonical_id: 2518carrier_name: "Boost Mobile - MNO"carrier_attribute {mccmnc_tuple: "313340"gid1: "6332"}
}
carrier_id {canonical_id: 2519carrier_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博客