[Networking] snoopy20:
A generic chinese phone running Android 8.1. The LTE network is active, calls and txt's working, but for some reason there's no data throughput. The device is rooted.

Here are the relevant sim and XML APN entry. You can see they match, so should be picked up and applied.

D/TelephonyManager( 2935): getTelephonyProperty: return propVal='gb' phoneId=0 property='gsm.sim.operator.iso-country' defaultVal='' prop=gb
D/SubscriptionController( 2935): [getSubInfoRecord] id:1 iccid:8944200118607 simSlotIndex:0 displayName:3 nameSource:0 iconTint:-16746133 dataRoaming:0 mcc:234 mnc:20 countIso:gb status:1 nwMode:0

<apn carrier="3" mcc="234" mnc="20" apn="three.co.uk" user="" password="" server="" proxy="" port="" mmsc="http://mms.um.three.co.uk:10021/mmsc" mmsproxy="mms.three.co.uk" mmsport="8799" type="default,mms,supl" authtype="0" mvno_type="pnn" mvno_match_data="3" protocol="IPV4V6" roaming_protocol="IP"/>

And a bit from logcat...

01-19 22:02:50.398 2075 4395 D TelephonyProvider: Checksum for /system/etc/apns-conf.xml is 2699958375
01-19 22:02:50.400 2075 2215 D QcDataStatusNotification Service: onChange():uri=content://telephony/carriers authority=telephony path=/carriers segments=[carriers] uriLastSegment=carriers
01-19 22:02:50.403 2075 2215 D QcDataStatusNotification Service: onApnChanged: phoneId = 0 subId = 1 operator = 23420
01-19 22:02:50.424 2075 2215 D TelephonyProvider: subIdString = 1 subId = 1
01-19 22:02:50.430 2075 2075 D TelephonyProvider: subIdString = 1 subId = 1
01-19 22:02:50.430 2075 2075 D TelephonyProvider: getPreferredApnIdFromApn: for subId 1
01-19 22:02:50.434 2075 2215 D QcDataStatusNotification Service: APN change URI is content://telephony/carriers/subId/1 count = 5
01-19 22:02:50.436 2075 2215 D TelephonyProvider: subIdString = 1 subId = 1
01-19 22:02:50.436 2075 2215 D TelephonyProvider: getPreferredApnIdFromApn: for subId 1
01-19 22:02:50.438 1238 3916 D PowerManagerService: acquireWakeLockInternal: lock=227824033, flags=0x1, tag="RILJ", ws=null, uid=1001, pid=2075, packageName=com.android.phone
01-19 22:02:50.438 1238 3916 D PowerManagerNotifier: onWakeLockAcquired: flags=1, tag="RILJ", packageName=com.android.phone, ownerUid=1001, ownerPid=2075, workSource=null
01-19 22:02:50.442 2075 2075 D TelephonyProvider: subIdString = 1 subId = 1
01-19 22:02:50.442 2075 2075 D TelephonyProvider: getPreferredApnIdFromApn: for subId 1
01-19 22:02:50.442 2075 2215 D QcDataStatusNotification Service: getApnFound: typesSupported = [dun] type requested = default
01-19 22:02:50.442 2075 2215 D QcDataStatusNotification Service: getApnFound: typesSupported = [default, mms, supl] type requested = default
01-19 22:02:50.442 2075 2215 D QcDataStatusNotification Service: getApnFound: Apn = [ Type=default, Apn=id]
01-19 22:02:50.442 2075 2215 D QcDataStatusNotification Service: Found default APN: [ Type=default, Apn=id]
01-19 22:02:50.446 2075 2215 D ApnCache: Missing key size 0
01-19 22:02:50.446 2075 2215 D QcDataStatusNotification Service: InformCurrentApnsToModemForPhoneId: 0
01-19 22:02:50.447 2136 2136 D QcrilMsgTunnelIfaceManager: handleMessage what = 3
01-19 22:02:50.448 1238 1248 D PowerManagerService: acquireWakeLockInternal: lock=210501574, flags=0x1, tag="QcrilOemhookMsgTunnel", ws=null, uid=1001, pid=2136, packageName=com.qualcomm.qcrilmsgtunnel
01-19 22:02:50.448 1238 1248 D PowerManagerNotifier: onWakeLockAcquired: flags=1, tag="QcrilOemhookMsgTunnel", packageName=com.qualcomm.qcrilmsgtunnel, ownerUid=1001, ownerPid=2136, workSource=null
01-19 22:02:50.449 2136 2136 I QcrilOemhookMsgTunnel: [0]invokeOemRilRequestRaw: serial=1038 length=59
01-19 22:02:50.449 2075 2075 D TelephonyProvider: subIdString = 1 subId = 1
01-19 22:02:50.449 2075 2075 D TelephonyProvider: getPreferredApnIdFromApn: for subId 1
01-19 22:02:50.449 2136 2136 D QcrilMsgTunnelIfaceManager: handleMessage what = 3
01-19 22:02:50.449 2075 2215 D QcDataStatusNotification Service: Adding preferred type to: id
01-19 22:02:50.449 1238 3916 D PowerManagerService: acquireWakeLockInternal: lock=210501574, flags=0x1, tag="QcrilOemhookMsgTunnel", ws=null, uid=1001, pid=2136, packageName=com.qualcomm.qcrilmsgtunnel
01-19 22:02:50.449 2136 2157 I QcrilOemhookMsgTunnel: [0]processOemHookResponse serial no: 1038 error: 0length=0
01-19 22:02:50.450 2136 2136 I QcrilOemhookMsgTunnel: [0]invokeOemRilRequestRaw: serial=1039 length=57
01-19 22:02:50.450 2136 2136 D QcrilMsgTunnelIfaceManager: handleMessage what = 3
01-19 22:02:50.451 1238 1952 D PowerManagerService: acquireWakeLockInternal: lock=210501574, flags=0x1, tag="QcrilOemhookMsgTunnel", ws=null, uid=1001, pid=2136, packageName=com.qualcomm.qcrilmsgtunnel
01-19 22:02:50.451 2075 2215 D QcDataStatusNotification Service: ***********************
01-19 22:02:50.451 2075 2215 D QcDataStatusNotification Service: Current APNs for PhoneId = 0
01-19 22:02:50.451 2075 2215 D QcDataStatusNotification Service: [ Type=default,supl,mms, Apn=superdrug.net]
01-19 22:02:50.451 2075 2215 D QcDataStatusNotification Service: [ Type=default,mms,supl, Apn=three.co.uk]
01-19 22:02:50.451 2075 2215 D QcDataStatusNotification Service: [ Type=dun, Apn=3hotspot]
01-19 22:02:50.451 2075 2215 D QcDataStatusNotification Service: [ Type=default,mms,supl, Apn=id]
01-19 22:02:50.451 2075 2215 D QcDataStatusNotification Service: [ Type=default,supl,mms, Apn=mob.asm.net]
01-19 22:02:50.451 2075 2215 D QcDataStatusNotification Service: ***********************

01-19 22:02:50.513 2044 2044 W DPMJ : |SERVICE| DPM received ACTION_ANY_DATA_CONNECTION_STATE_CHANGEDmms
01-19 22:02:50.517 2044 2044 W DPMJ : |SERVICE| DPM received ACTION_ANY_DATA_CONNECTION_STATE_CHANGEDcbs
01-19 22:02:50.522 2044 2044 W DPMJ : |SERVICE| DPM received ACTION_ANY_DATA_CONNECTION_STATE_CHANGEDfota
01-19 22:02:50.528 2044 2044 W DPMJ : |SERVICE| DPM received ACTION_ANY_DATA_CONNECTION_STATE_CHANGEDsupl
01-19 22:02:50.534 2044 2044 W DPMJ : |SERVICE| DPM received ACTION_ANY_DATA_CONNECTION_STATE_CHANGEDemergency
01-19 22:02:50.537 2044 2044 W DPMJ : |SERVICE| DPM received ACTION_ANY_DATA_CONNECTION_STATE_CHANGEDdun
01-19 22:02:50.543 2044 2044 W DPMJ : |SERVICE| DPM received ACTION_ANY_DATA_CONNECTION_STATE_CHANGEDhipri
01-19 22:02:50.547 2044 2044 W DPMJ : |SERVICE| DPM received ACTION_ANY_DATA_CONNECTION_STATE_CHANGEDims
01-19 22:02:50.547 2075 2075 D ApnSettings: mccmnc = 23420
01-19 22:02:50.549 2075 2075 D ApnSettings: isVzwCard = false
01-19 22:02:50.549 2075 2075 D ApnSettings: where = numeric="23420" AND NOT (type='ia' AND (apn="" OR apn IS NULL)) AND user_visible!=0
01-19 22:02:50.555 2075 2075 D ApnSettings: cursor = 5
01-19 22:02:50.557 2075 2075 D TelephonyProvider: subIdString = 1 subId = 1
01-19 22:02:50.557 2075 2075 D TelephonyProvider: getPreferredApnIdFromApn: for subId 1
01-19 22:02:50.562 2075 2075 W ResourceType: No package identifier when getting value for resource number 0x00000003
01-19 22:02:50.562 2075 2075 E Settings: Got execption while getting the localized apn name.
01-19 22:02:50.562 2075 2075 E Settings: android.content.res.Resources$NotFoundException: String resource ID #0x3
01-19 22:02:50.562 2075 2075 E Settings: at android.content.res.Resources.getText(Resources.ja va:348)
01-19 22:02:50.562 2075 2075 E Settings: at android.content.res.Resources.getString(Resources. java:442)
01-19 22:02:50.562 2075 2075 E Settings: at com.android.settings.Utils.getLocalizedName(Utils. java:1412)
01-19 22:02:50.562 2075 2075 E Settings: at com.android.settings.ApnSettings.fillList(ApnSetti ngs.java:382)
01-19 22:02:50.562 2075 2075 E Settings: at com.android.settings.ApnSettings.-wrap2(Unknown Source:0)
01-19 22:02:50.562 2075 2075 E Settings: at com.android.settings.ApnSettings$RestoreApnUiHandl er.handleMessage(ApnSettings.java:811)
01-19 22:02:50.562 2075 2075 E Settings: at android.os.Handler.dispatchMessage(Handler.java:10 6)
01-19 22:02:50.562 2075 2075 E Settings: at android.os.Looper.loop(Looper.java:164)
01-19 22:02:50.562 2075 2075 E Settings: at android.app.ActivityThread.main(ActivityThread.jav a:6603)
01-19 22:02:50.562 2075 2075 E Settings: at java.lang.reflect.Method.invoke(Native Method)
01-19 22:02:50.562 2075 2075 E Settings: at com.android.internal.os.RuntimeInit$MethodAndArgsC aller.run(RuntimeInit.java:438)
01-19 22:02:50.562 2075 2075 E Settings: at com.android.internal.os.ZygoteInit.main(ZygoteInit .java:807)
01-19 22:02:50.564 2075 2075 D ApnSettings: clazz =

Any ideas?