CarrierConfig配置中父类子类的关系影响

在Carrier文件中定义了一系列运营商信息以及关系关联:

/packages/providers/TelephonyProvider/assets/latest_carrier_id/carrier_list.textpb

以Android U为例,如下代码 C Spire 运营商311-230对应1836和10009两个cid

carrier_id {
  canonical_id: 1836
  carrier_name: "C Spire"
  carrier_attribute {
    mccmnc_tuple: "311230"
    mccmnc_tuple: "310023"
  }
  carrier_attribute {
    mccmnc_tuple: "20404"
    spn: "C Spire"
  }
}

carrier_id {
  canonical_id: 10009
  carrier_name: "C Spire-US"
  carrier_attribute {
    mccmnc_tuple: "311230"
    mccmnc_tuple: "310023"
  }
  parent_canonical_id: 1836
}

carrier_id {
  canonical_id: 10010
  carrier_name: "C Spire-NL"
  carrier_attribute {
    mccmnc_tuple: "20404"
    spn: "C Spire"
  }
  parent_canonical_id: 1836
}

version: 117440538

经测试,发现插入311-230 SIM,生成的是cid=10009的配置,即adb获取设备文件时 ,carrierconfig-com.android.carrierconfig-imsi-10009.xml

设备路径:adb pull data/user_de/0/com.android.phone/files

配置文件:carrierconfig-com.android.carrierconfig-89148032547698214367-10009.xml

实际上,10009的内容是1836的配置项。cid=10009的parent_canonical_id是1836。

源码阅读:

http://aospxref.com/android-14.0.0_r2/

packages/providers/TelephonyProvider/assets/latest_carrier_id/carrier_list.textpb

配置举例:根据如下配置,以上10009的文件中都会包含下面的配置项,因为默认和父类的都会继承。

<!--packages/apps/CarrierConfig/res/xml/vendor.xml-->

<carrier_config_list>
    <!--默认通用配置-->
    <carrier_config>
        <string-array name="carrier_metered_apn_types_strings" num="3">
            <item value="default" />
            <item value="dun" />
            <item value="supl" />
        </string-array>
        <string-array name="carrier_metered_iwlan_apn_types_string_array" num="0">
    </carrier_config>


    <!-- For MCCMNC: 311-230 / 310-023 / 204-04(spn=C Spire) -->
    <carrier_config cid="1836" name="C Spire">
        <boolean name="carrier_data_always_enable_bool" value="false"/>
        <boolean name="carrier_default_data_roaming_enabled_bool" value="true" />
        <!--运营商名称定制,两个都配置才能overriede生效-->
        <boolean name="carrier_name_override_bool" value="true"/>
        <string name="carrier_name_string">C Spire</string>
    </carrier_config>

</carrier_config_list>

debug 时,可以直接push xml配置文件到设备(data/user_de/0/com.android.phone/files),但是有些场景直接替换文件carrierconfig配置是不生效的,主要还是看这个配置是如何工作的,比如在什么阶段执行使用的。

  • 5
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值