So I dug around a bit and here's what I can gather:
I know it would be really cool if custom ROMs could include the APN info by default, but I just don't see a reasonable way to do this without either installing ODA-DM client (evil!) or throwing together a quick app that applies the appropriate MVNO APN settings based on user selection. These things were designed by the carriers to do things in a way not so different than we already do by patching the system with flashable zips.
Contents of /persist/telephony/apn.perm on my Virgin Mobile XT1526:
I should have dug around in here months ago.
- mcc="310" mnc="120" is appropriate for LTE on Sprint MVNOs, at least it is on VM.
- 310120 is derived from IMSI which is provided by the RUIM.
- The MVNOs inject APN information via ODA-DM client.
- /persist/odadm_cust_database/pridata contains some interesting information. It's a SQLite3 database, but opening it in a text editor is enlightening.
- /persist/telephony/apn.perm contains everything one would need to reconstruct the APN injected by ODA-DM.
I know it would be really cool if custom ROMs could include the APN info by default, but I just don't see a reasonable way to do this without either installing ODA-DM client (evil!) or throwing together a quick app that applies the appropriate MVNO APN settings based on user selection. These things were designed by the carriers to do things in a way not so different than we already do by patching the system with flashable zips.
Contents of /persist/telephony/apn.perm on my Virgin Mobile XT1526:
Code:
>>>>> Dumping cursor [email protected]
0 {
_id=2427
name=otasn
numeric=310000
mcc=310
mnc=000
apn=otasn
user=null
server=null
password=null
proxy=
port=
mmsproxy=68.28.31.7
mmsport=80
mmsc=http://mms.plspictures.com
authtype=0
type=fota
current=1
protocol=IPV4
roaming_protocol=IPV4
carrier_enabled=1
bearer=13
bearers=null
mvno_type=
mvno_match_data=
sub_id=1
profile_id=-1
modem_cognitive=0
max_conns=0
wait_time=0
max_conns_time=0
mtu=null
mode=17
}
1 {
_id=2428
name=otasn
numeric=310000
mcc=310
mnc=000
apn=otasn
user=null
server=null
password=null
proxy=
port=
mmsproxy=68.28.31.7
mmsport=80
mmsc=http://mms.plspictures.com
authtype=0
type=fota
current=1
protocol=IPV4
roaming_protocol=IPV4
carrier_enabled=1
bearer=14
bearers=null
mvno_type=
mvno_match_data=
sub_id=1
profile_id=-1
modem_cognitive=0
max_conns=0
wait_time=0
max_conns_time=0
mtu=null
mode=17
}
2 {
_id=2956
name=n.ij.ispsn
numeric=310000
mcc=310
mnc=000
apn=n.ij.ispsn
user=null
server=
password=null
proxy=
port=
mmsproxy=68.28.31.7
mmsport=80
mmsc=http://mms.plspictures.com
authtype=0
type=default,mms,ia
current=1
protocol=IPV4
roaming_protocol=IPV4
carrier_enabled=1
bearer=14
bearers=null
mvno_type=
mvno_match_data=
sub_id=1
profile_id=-1
modem_cognitive=0
max_conns=0
wait_time=0
max_conns_time=0
mtu=null
mode=17
}
3 {
_id=2957
name=n.ij.ispsn
numeric=310000
mcc=310
mnc=000
apn=n.ij.ispsn
user=null
server=
password=null
proxy=
port=
mmsproxy=68.28.31.7
mmsport=80
mmsc=http://mms.plspictures.com
authtype=0
type=default,mms,ia
current=1
protocol=IPV4
roaming_protocol=IPV4
carrier_enabled=1
bearer=13
bearers=null
mvno_type=
mvno_match_data=
sub_id=1
profile_id=-1
modem_cognitive=0
max_conns=0
wait_time=0
max_conns_time=0
mtu=null
mode=17
}
<<<<<