diff options
| author | Android Build Coastguard Worker <android-build-coastguard-worker@google.com> | 2021-10-12 21:53:29 +0000 |
|---|---|---|
| committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2021-10-12 21:53:29 +0000 |
| commit | 85d80477a32d731b7dffb6d724c294034ec17617 (patch) | |
| tree | 3fddf8d5072cb27f481b22768580832224109210 | |
| parent | 3d54d2ba70666b3fff67af58f34e073483c148c6 (diff) | |
| parent | cbaab12cf2bc6cac32b0eb90717c9a6f0b117322 (diff) | |
| download | platform_packages_providers_TelephonyProvider-simpleperf-release.tar.gz platform_packages_providers_TelephonyProvider-simpleperf-release.tar.bz2 platform_packages_providers_TelephonyProvider-simpleperf-release.zip | |
Merge "Snap for 7817384 from 7c376deb24af2a6ad28fac211ec9f3bb373bc023 to simpleperf-release" into simpleperf-releasesimpleperf-release
20 files changed, 297 insertions, 827 deletions
@@ -32,3 +32,11 @@ filegroup { name: "telephonyprovider-assets-carrierlist", srcs: ["assets/latest_carrier_id/carrier_list.*"], } + +// used to share src with unit test app +filegroup { + name: "telephonyprovider-shared-srcs", + srcs: [ + "src/**/*.java", + ], +} diff --git a/assets/latest_carrier_id/carrier_list.pb b/assets/latest_carrier_id/carrier_list.pb Binary files differindex 4170a569..3bb6f2bd 100644 --- a/assets/latest_carrier_id/carrier_list.pb +++ b/assets/latest_carrier_id/carrier_list.pb diff --git a/assets/latest_carrier_id/carrier_list.textpb b/assets/latest_carrier_id/carrier_list.textpb index cd08effe..75e0864a 100644 --- a/assets/latest_carrier_id/carrier_list.textpb +++ b/assets/latest_carrier_id/carrier_list.textpb @@ -20,9 +20,6 @@ carrier_id { mccmnc_tuple: "310640" mccmnc_tuple: "310660" mccmnc_tuple: "310800" - mccmnc_tuple: "311660" - mccmnc_tuple: "311882" - mccmnc_tuple: "312250" } } carrier_id { @@ -243,7 +240,6 @@ carrier_id { imsi_prefix_xpattern: "204049" spn: "" spn: "vodafone NL" - spn: "Vodafone" } } carrier_id { @@ -351,10 +347,8 @@ carrier_id { canonical_id: 27 carrier_name: "SFR" carrier_attribute { - mccmnc_tuple: "20809" mccmnc_tuple: "20810" - mccmnc_tuple: "20811" - mccmnc_tuple: "20813" + mccmnc_tuple: "20809" } } carrier_id { @@ -944,8 +938,6 @@ carrier_id { canonical_id: 718 carrier_name: "EE" carrier_attribute { - mccmnc_tuple: "23431" - mccmnc_tuple: "23432" mccmnc_tuple: "23430" mccmnc_tuple: "23433" mccmnc_tuple: "23486" @@ -1519,7 +1511,6 @@ carrier_id { carrier_name: "Telenor" carrier_attribute { mccmnc_tuple: "24201" - mccmnc_tuple: "24212" } } carrier_id { @@ -6288,6 +6279,11 @@ carrier_id { carrier_attribute { mccmnc_tuple: "302490" } + carrier_attribute { + mccmnc_tuple: "22201" + mccmnc_tuple: "22288" + gid1: "ffffff00" + } } carrier_id { canonical_id: 1896 @@ -6700,9 +6696,6 @@ carrier_id { mccmnc_tuple: "310210" mccmnc_tuple: "310200" mccmnc_tuple: "310160" - mccmnc_tuple: "311660" - mccmnc_tuple: "311882" - mccmnc_tuple: "312250" gid1: "6D38" } } @@ -9885,7 +9878,7 @@ carrier_id { canonical_id: 2357 carrier_name: "Tuenti" carrier_attribute { - mccmnc_tuple: "21405" + mccmnc_tuple: "21432" spn: "Tuenti" } } @@ -9908,8 +9901,13 @@ carrier_id { carrier_name: "Telefonica" carrier_attribute { mccmnc_tuple: "26203" + gid1: "000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + gid1: "000500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" gid1: "010301FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" gid1: "010901FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + gid1: "010251FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + gid1: "020302FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + gid1: "020902FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" } } carrier_id { @@ -9917,8 +9915,13 @@ carrier_id { carrier_name: "o2" carrier_attribute { mccmnc_tuple: "26207" + gid1: "000000FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + gid1: "000500FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" gid1: "010301FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" gid1: "010901FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + gid1: "010251FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + gid1: "020302FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" + gid1: "020902FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF" } } carrier_id { @@ -10350,9 +10353,6 @@ carrier_id { } carrier_attribute { mccmnc_tuple: "310240" - mccmnc_tuple: "311660" - mccmnc_tuple: "311882" - mccmnc_tuple: "312250" gid1: "1A53" } } @@ -11014,102 +11014,6 @@ carrier_id { } } carrier_id { - canonical_id: 2517 - carrier_name: "Dish" - carrier_attribute { - mccmnc_tuple: "313340" - gid1: "6530" - } -} -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 - MVNO1" - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "6432" - } -} -carrier_id { - canonical_id: 2520 - carrier_name: "Republic - MNO" - carrier_attribute { - mccmnc_tuple: "313340" - gid1: "6630" - } -} -carrier_id { - canonical_id: 2521 - carrier_name: "Ting - MNO" - carrier_attribute { - mccmnc_tuple: "313340" - gid1: "7330" - } -} -carrier_id { - canonical_id: 2522 - carrier_name: "Republic - MVNO1" - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "6436" - } -} -carrier_id { - canonical_id: 2523 - carrier_name: "Ting - MVNO1" - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "6430" - } -} -carrier_id { - canonical_id: 2524 - carrier_name: "Erate" - carrier_attribute { - mccmnc_tuple: "24215" - gid1: "0e" - } -} -carrier_id { - canonical_id: 2525 - carrier_name: "Boost Mobile - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3432" - } -} -carrier_id { - canonical_id: 2526 - carrier_name: "Ting - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3430" - } -} -carrier_id { - canonical_id: 2527 - carrier_name: "Republic - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3436" - } -} -carrier_id { - canonical_id: 2528 - carrier_name: "Project Genesis - MNO" - carrier_attribute { - mccmnc_tuple: "313340" - gid1: "6538" - } -} -carrier_id { canonical_id: 10000 carrier_name: "Tracfone-ATT" carrier_attribute { @@ -11386,11 +11290,11 @@ carrier_id { } carrier_id { canonical_id: 10027 - carrier_name: "LINEMO" + carrier_name: "Softbank linemo" carrier_attribute { mccmnc_tuple: "44020" gid1: "48FFFF" } parent_canonical_id: 1894 } -version: 67108867 +version: 67108865 diff --git a/assets/sdk28_carrier_id/carrier_list.pb b/assets/sdk28_carrier_id/carrier_list.pb Binary files differindex aa7da64c..91d6640f 100644 --- a/assets/sdk28_carrier_id/carrier_list.pb +++ b/assets/sdk28_carrier_id/carrier_list.pb diff --git a/assets/sdk28_carrier_id/carrier_list.textpb b/assets/sdk28_carrier_id/carrier_list.textpb index 6d08b5ec..0cd3a99a 100644 --- a/assets/sdk28_carrier_id/carrier_list.textpb +++ b/assets/sdk28_carrier_id/carrier_list.textpb @@ -22,15 +22,6 @@ carrier_id { mccmnc_tuple: "310660" mccmnc_tuple: "310800" } - carrier_attribute { - mccmnc_tuple: "311660" - } - carrier_attribute { - mccmnc_tuple: "311882" - } - carrier_attribute { - mccmnc_tuple: "312250" - } } carrier_id { canonical_id: 2 @@ -589,12 +580,6 @@ carrier_id { carrier_attribute { mccmnc_tuple: "20809" } - carrier_attribute { - mccmnc_tuple: "20811" - } - carrier_attribute { - mccmnc_tuple: "20813" - } } carrier_id { canonical_id: 28 @@ -1024,9 +1009,6 @@ carrier_id { carrier_attribute { mccmnc_tuple: "732130" } - carrier_attribute { - mccmnc_tuple: "732360" - } } carrier_id { canonical_id: 627 @@ -1198,12 +1180,6 @@ carrier_id { carrier_attribute { mccmnc_tuple: "23486" } - carrier_attribute { - mccmnc_tuple: "23431" - } - carrier_attribute { - mccmnc_tuple: "23432" - } } carrier_id { canonical_id: 720 @@ -1788,9 +1764,6 @@ carrier_id { carrier_attribute { mccmnc_tuple: "24201" } - carrier_attribute { - mccmnc_tuple: "24212" - } } carrier_id { canonical_id: 959 @@ -6747,6 +6720,14 @@ carrier_id { carrier_attribute { mccmnc_tuple: "302490" } + carrier_attribute { + mccmnc_tuple: "22201" + gid1: "ffffff00" + } + carrier_attribute { + mccmnc_tuple: "22288" + gid1: "ffffff00" + } } carrier_id { canonical_id: 1896 @@ -7217,18 +7198,6 @@ carrier_id { mccmnc_tuple: "310160" gid1: "6D38" } - carrier_attribute { - mccmnc_tuple: "311660" - gid1: "6D38" - } - carrier_attribute { - mccmnc_tuple: "311882" - gid1: "6D38" - } - carrier_attribute { - mccmnc_tuple: "312250" - gid1: "6D38" - } } carrier_id { canonical_id: 1950 @@ -7808,7 +7777,7 @@ carrier_id { } carrier_id { canonical_id: 2005 - carrier_name: "EURO INFORMATION TELECOM" + carrier_name: "NRJ Mobile" carrier_attribute { mccmnc_tuple: "20826" } @@ -7816,10 +7785,6 @@ carrier_id { mccmnc_tuple: "20810" gid1: "4E" } - carrier_attribute { - mccmnc_tuple: "20601" - gid1: "4E524A31" - } } carrier_id { canonical_id: 2006 @@ -8903,22 +8868,6 @@ carrier_id { mccmnc_tuple: "50502" imsi_prefix_xpattern: "50502100" } - carrier_attribute { - mccmnc_tuple: "20812" - gid1: "547275554b3030656e" - } - carrier_attribute { - mccmnc_tuple: "310300" - gid1: "547275554b3030656e" - } - carrier_attribute { - mccmnc_tuple: "310690" - gid1: "547275554b3030656e" - } - carrier_attribute { - mccmnc_tuple: "45408" - gid1: "547275554b3030656e" - } } carrier_id { canonical_id: 2144 @@ -10526,10 +10475,6 @@ carrier_id { mccmnc_tuple: "21432" spn: "Tuenti" } - carrier_attribute { - mccmnc_tuple: "21405" - spn: "Tuenti" - } } carrier_id { canonical_id: 2358 @@ -10898,22 +10843,6 @@ carrier_id { mccmnc_tuple: "312530" gid1: "000006" } - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "1A53" - } - carrier_attribute { - mccmnc_tuple: "311660" - gid1: "1A53" - } - carrier_attribute { - mccmnc_tuple: "311882" - gid1: "1A53" - } - carrier_attribute { - mccmnc_tuple: "312250" - gid1: "1A53" - } } carrier_id { canonical_id: 2434 @@ -10957,14 +10886,6 @@ carrier_id { } } carrier_id { - canonical_id: 2439 - carrier_name: "VERY" - carrier_attribute { - mccmnc_tuple: "22299" - gid1: "0000000099" - } -} -carrier_id { canonical_id: 2442 carrier_name: "Digi Spain" carrier_attribute { @@ -11132,10 +11053,6 @@ carrier_id { spn: "GigSky" gid1: "6E" } - carrier_attribute { - mccmnc_tuple: "22201" - spn: "GigSky" - } } carrier_id { canonical_id: 2460 @@ -11519,121 +11436,6 @@ carrier_id { } } carrier_id { - canonical_id: 2512 - carrier_name: "Goodspeed" - carrier_attribute { - mccmnc_tuple: "24042" - gid1: "C5" - } - carrier_attribute { - mccmnc_tuple: "23203" - gid1: "C5" - } -} -carrier_id { - canonical_id: 2514 - carrier_name: "povo" - carrier_attribute { - mccmnc_tuple: "44051" - gid1: "26" - } -} -carrier_id { - canonical_id: 2516 - carrier_name: "HMD Connect Pro" - carrier_attribute { - mccmnc_tuple: "22201" - spn: "hmd connect" - } -} -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 - MVNO1" - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "6432" - } -} -carrier_id { - canonical_id: 2520 - carrier_name: "Republic - MNO" - carrier_attribute { - mccmnc_tuple: "313340" - gid1: "6630" - } -} -carrier_id { - canonical_id: 2521 - carrier_name: "Ting - MNO" - carrier_attribute { - mccmnc_tuple: "313340" - gid1: "7330" - } -} -carrier_id { - canonical_id: 2522 - carrier_name: "Republic - MVNO1" - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "6436" - } -} -carrier_id { - canonical_id: 2523 - carrier_name: "Ting - MVNO1" - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "6430" - } -} -carrier_id { - canonical_id: 2524 - carrier_name: "Erate" - carrier_attribute { - mccmnc_tuple: "24215" - gid1: "0e" - } -} -carrier_id { - canonical_id: 2525 - carrier_name: "Boost Mobile - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3432" - } -} -carrier_id { - canonical_id: 2526 - carrier_name: "Ting - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3430" - } -} -carrier_id { - canonical_id: 2527 - carrier_name: "Republic - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3436" - } -} -carrier_id { canonical_id: 10000 carrier_name: "Tracfone-ATT" carrier_attribute { @@ -11876,4 +11678,4 @@ carrier_id { } parent_canonical_id: 2023 } -version: 14 +version: 12 diff --git a/assets/sdk29_carrier_id/carrier_list.pb b/assets/sdk29_carrier_id/carrier_list.pb Binary files differindex 44507d84..5e78f396 100644 --- a/assets/sdk29_carrier_id/carrier_list.pb +++ b/assets/sdk29_carrier_id/carrier_list.pb diff --git a/assets/sdk29_carrier_id/carrier_list.textpb b/assets/sdk29_carrier_id/carrier_list.textpb index 131b714a..6c1420c6 100644 --- a/assets/sdk29_carrier_id/carrier_list.textpb +++ b/assets/sdk29_carrier_id/carrier_list.textpb @@ -22,15 +22,6 @@ carrier_id { mccmnc_tuple: "310660" mccmnc_tuple: "310800" } - carrier_attribute { - mccmnc_tuple: "311660" - } - carrier_attribute { - mccmnc_tuple: "311882" - } - carrier_attribute { - mccmnc_tuple: "312250" - } } carrier_id { canonical_id: 2 @@ -583,12 +574,6 @@ carrier_id { mccmnc_tuple: "20810" mccmnc_tuple: "20809" } - carrier_attribute { - mccmnc_tuple: "20811" - } - carrier_attribute { - mccmnc_tuple: "20813" - } } carrier_id { canonical_id: 28 @@ -1016,9 +1001,6 @@ carrier_id { carrier_attribute { mccmnc_tuple: "732130" } - carrier_attribute { - mccmnc_tuple: "732360" - } } carrier_id { canonical_id: 627 @@ -1183,12 +1165,6 @@ carrier_id { mccmnc_tuple: "23433" mccmnc_tuple: "23486" } - carrier_attribute { - mccmnc_tuple: "23431" - } - carrier_attribute { - mccmnc_tuple: "23432" - } } carrier_id { canonical_id: 720 @@ -1750,9 +1726,6 @@ carrier_id { carrier_attribute { mccmnc_tuple: "24201" } - carrier_attribute { - mccmnc_tuple: "24212" - } } carrier_id { canonical_id: 959 @@ -6562,6 +6535,11 @@ carrier_id { carrier_attribute { mccmnc_tuple: "302490" } + carrier_attribute { + mccmnc_tuple: "22201" + mccmnc_tuple: "22288" + gid1: "ffffff00" + } } carrier_id { canonical_id: 1896 @@ -6983,18 +6961,6 @@ carrier_id { mccmnc_tuple: "310160" gid1: "6D38" } - carrier_attribute { - mccmnc_tuple: "311660" - gid1: "6D38" - } - carrier_attribute { - mccmnc_tuple: "311882" - gid1: "6D38" - } - carrier_attribute { - mccmnc_tuple: "312250" - gid1: "6D38" - } } carrier_id { canonical_id: 1950 @@ -7545,7 +7511,7 @@ carrier_id { } carrier_id { canonical_id: 2005 - carrier_name: "EURO INFORMATION TELECOM" + carrier_name: "NRJ Mobile" carrier_attribute { mccmnc_tuple: "20826" } @@ -8684,22 +8650,6 @@ carrier_id { mccmnc_tuple: "50502" imsi_prefix_xpattern: "50502100" } - carrier_attribute { - mccmnc_tuple: "20812" - gid1: "547275554b3030656e" - } - carrier_attribute { - mccmnc_tuple: "310300" - gid1: "547275554b3030656e" - } - carrier_attribute { - mccmnc_tuple: "310690" - gid1: "547275554b3030656e" - } - carrier_attribute { - mccmnc_tuple: "45408" - gid1: "547275554b3030656e" - } } carrier_id { canonical_id: 2144 @@ -10727,22 +10677,6 @@ carrier_id { mccmnc_tuple: "312530" gid1: "000006" } - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "1A53" - } - carrier_attribute { - mccmnc_tuple: "311660" - gid1: "1A53" - } - carrier_attribute { - mccmnc_tuple: "311882" - gid1: "1A53" - } - carrier_attribute { - mccmnc_tuple: "312250" - gid1: "1A53" - } } carrier_id { canonical_id: 2434 @@ -10786,14 +10720,6 @@ carrier_id { } } carrier_id { - canonical_id: 2439 - carrier_name: "VERY" - carrier_attribute { - mccmnc_tuple: "22299" - gid1: "0000000099" - } -} -carrier_id { canonical_id: 2442 carrier_name: "Digi Spain" carrier_attribute { @@ -10961,10 +10887,6 @@ carrier_id { spn: "GigSky" gid1: "6E" } - carrier_attribute { - mccmnc_tuple: "22201" - spn: "GigSky" - } } carrier_id { canonical_id: 2460 @@ -11348,121 +11270,6 @@ carrier_id { } } carrier_id { - canonical_id: 2512 - carrier_name: "Goodspeed" - carrier_attribute { - mccmnc_tuple: "24042" - gid1: "C5" - } - carrier_attribute { - mccmnc_tuple: "23203" - gid1: "C5" - } -} -carrier_id { - canonical_id: 2514 - carrier_name: "povo" - carrier_attribute { - mccmnc_tuple: "44051" - gid1: "26" - } -} -carrier_id { - canonical_id: 2516 - carrier_name: "HMD Connect Pro" - carrier_attribute { - mccmnc_tuple: "22201" - spn: "hmd connect" - } -} -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 - MVNO1" - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "6432" - } -} -carrier_id { - canonical_id: 2520 - carrier_name: "Republic - MNO" - carrier_attribute { - mccmnc_tuple: "313340" - gid1: "6630" - } -} -carrier_id { - canonical_id: 2521 - carrier_name: "Ting - MNO" - carrier_attribute { - mccmnc_tuple: "313340" - gid1: "7330" - } -} -carrier_id { - canonical_id: 2522 - carrier_name: "Republic - MVNO1" - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "6436" - } -} -carrier_id { - canonical_id: 2523 - carrier_name: "Ting - MVNO1" - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "6430" - } -} -carrier_id { - canonical_id: 2524 - carrier_name: "Erate" - carrier_attribute { - mccmnc_tuple: "24215" - gid1: "0e" - } -} -carrier_id { - canonical_id: 2525 - carrier_name: "Boost Mobile - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3432" - } -} -carrier_id { - canonical_id: 2526 - carrier_name: "Ting - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3430" - } -} -carrier_id { - canonical_id: 2527 - carrier_name: "Republic - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3436" - } -} -carrier_id { canonical_id: 10000 carrier_name: "Tracfone-ATT" carrier_attribute { @@ -11704,4 +11511,4 @@ carrier_id { } parent_canonical_id: 2023 } -version: 16777238 +version: 16777236 diff --git a/assets/sdk30_carrier_id/carrier_list.pb b/assets/sdk30_carrier_id/carrier_list.pb Binary files differindex 9287167b..946634dc 100644 --- a/assets/sdk30_carrier_id/carrier_list.pb +++ b/assets/sdk30_carrier_id/carrier_list.pb diff --git a/assets/sdk30_carrier_id/carrier_list.textpb b/assets/sdk30_carrier_id/carrier_list.textpb index 67daa47b..e301ad02 100644 --- a/assets/sdk30_carrier_id/carrier_list.textpb +++ b/assets/sdk30_carrier_id/carrier_list.textpb @@ -22,15 +22,6 @@ carrier_id { mccmnc_tuple: "310660" mccmnc_tuple: "310800" } - carrier_attribute { - mccmnc_tuple: "311660" - } - carrier_attribute { - mccmnc_tuple: "311882" - } - carrier_attribute { - mccmnc_tuple: "312250" - } } carrier_id { canonical_id: 2 @@ -579,12 +570,6 @@ carrier_id { mccmnc_tuple: "20810" mccmnc_tuple: "20809" } - carrier_attribute { - mccmnc_tuple: "20811" - } - carrier_attribute { - mccmnc_tuple: "20813" - } } carrier_id { canonical_id: 28 @@ -1012,9 +997,6 @@ carrier_id { carrier_attribute { mccmnc_tuple: "732130" } - carrier_attribute { - mccmnc_tuple: "732360" - } } carrier_id { canonical_id: 627 @@ -1179,12 +1161,6 @@ carrier_id { mccmnc_tuple: "23433" mccmnc_tuple: "23486" } - carrier_attribute { - mccmnc_tuple: "23431" - } - carrier_attribute { - mccmnc_tuple: "23432" - } } carrier_id { canonical_id: 720 @@ -1757,9 +1733,6 @@ carrier_id { carrier_attribute { mccmnc_tuple: "24201" } - carrier_attribute { - mccmnc_tuple: "24212" - } } carrier_id { canonical_id: 959 @@ -6555,6 +6528,11 @@ carrier_id { carrier_attribute { mccmnc_tuple: "302490" } + carrier_attribute { + mccmnc_tuple: "22201" + mccmnc_tuple: "22288" + gid1: "ffffff00" + } } carrier_id { canonical_id: 1896 @@ -6976,18 +6954,6 @@ carrier_id { mccmnc_tuple: "310160" gid1: "6D38" } - carrier_attribute { - mccmnc_tuple: "311660" - gid1: "6D38" - } - carrier_attribute { - mccmnc_tuple: "311882" - gid1: "6D38" - } - carrier_attribute { - mccmnc_tuple: "312250" - gid1: "6D38" - } } carrier_id { canonical_id: 1950 @@ -7532,7 +7498,7 @@ carrier_id { } carrier_id { canonical_id: 2005 - carrier_name: "EURO INFORMATION TELECOM" + carrier_name: "NRJ Mobile" carrier_attribute { mccmnc_tuple: "20826" } @@ -8640,22 +8606,6 @@ carrier_id { mccmnc_tuple: "50502" imsi_prefix_xpattern: "50502100" } - carrier_attribute { - mccmnc_tuple: "20812" - gid1: "547275554b3030656e" - } - carrier_attribute { - mccmnc_tuple: "310300" - gid1: "547275554b3030656e" - } - carrier_attribute { - mccmnc_tuple: "310690" - gid1: "547275554b3030656e" - } - carrier_attribute { - mccmnc_tuple: "45408" - gid1: "547275554b3030656e" - } } carrier_id { canonical_id: 2144 @@ -10676,22 +10626,6 @@ carrier_id { mccmnc_tuple: "312530" gid1: "000006" } - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "1A53" - } - carrier_attribute { - mccmnc_tuple: "311660" - gid1: "1A53" - } - carrier_attribute { - mccmnc_tuple: "311882" - gid1: "1A53" - } - carrier_attribute { - mccmnc_tuple: "312250" - gid1: "1A53" - } } carrier_id { canonical_id: 2434 @@ -10734,15 +10668,11 @@ carrier_id { } carrier_id { canonical_id: 2439 - carrier_name: "VERY" + carrier_name: "3 Digital" carrier_attribute { mccmnc_tuple: "22288" gid1: "0000000099" } - carrier_attribute { - mccmnc_tuple: "22299" - gid1: "0000000099" - } } carrier_id { canonical_id: 2442 @@ -10901,10 +10831,6 @@ carrier_id { gid1: "6F" gid1: "6E" } - carrier_attribute { - mccmnc_tuple: "22201" - spn: "GigSky" - } } carrier_id { canonical_id: 2460 @@ -11321,121 +11247,6 @@ carrier_id { } } carrier_id { - canonical_id: 2512 - carrier_name: "Goodspeed" - carrier_attribute { - mccmnc_tuple: "24042" - gid1: "C5" - } - carrier_attribute { - mccmnc_tuple: "23203" - gid1: "C5" - } -} -carrier_id { - canonical_id: 2514 - carrier_name: "povo" - carrier_attribute { - mccmnc_tuple: "44051" - gid1: "26" - } -} -carrier_id { - canonical_id: 2516 - carrier_name: "HMD Connect Pro" - carrier_attribute { - mccmnc_tuple: "22201" - spn: "hmd connect" - } -} -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 - MVNO1" - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "6432" - } -} -carrier_id { - canonical_id: 2520 - carrier_name: "Republic - MNO" - carrier_attribute { - mccmnc_tuple: "313340" - gid1: "6630" - } -} -carrier_id { - canonical_id: 2521 - carrier_name: "Ting - MNO" - carrier_attribute { - mccmnc_tuple: "313340" - gid1: "7330" - } -} -carrier_id { - canonical_id: 2522 - carrier_name: "Republic - MVNO1" - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "6436" - } -} -carrier_id { - canonical_id: 2523 - carrier_name: "Ting - MVNO1" - carrier_attribute { - mccmnc_tuple: "310240" - gid1: "6430" - } -} -carrier_id { - canonical_id: 2524 - carrier_name: "Erate" - carrier_attribute { - mccmnc_tuple: "24215" - gid1: "0e" - } -} -carrier_id { - canonical_id: 2525 - carrier_name: "Boost Mobile - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3432" - } -} -carrier_id { - canonical_id: 2526 - carrier_name: "Ting - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3430" - } -} -carrier_id { - canonical_id: 2527 - carrier_name: "Republic - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3436" - } -} -carrier_id { canonical_id: 10000 carrier_name: "Tracfone-ATT" carrier_attribute { @@ -11679,4 +11490,4 @@ carrier_id { } parent_canonical_id: 2023 } -version: 33554472 +version: 33554470 diff --git a/assets/sdk31_carrier_id/carrier_list.pb b/assets/sdk31_carrier_id/carrier_list.pb Binary files differindex 12d57d2c..d0380167 100644 --- a/assets/sdk31_carrier_id/carrier_list.pb +++ b/assets/sdk31_carrier_id/carrier_list.pb diff --git a/assets/sdk31_carrier_id/carrier_list.textpb b/assets/sdk31_carrier_id/carrier_list.textpb index aee2bff5..62398c01 100644 --- a/assets/sdk31_carrier_id/carrier_list.textpb +++ b/assets/sdk31_carrier_id/carrier_list.textpb @@ -11039,7 +11039,7 @@ carrier_id { } carrier_id { canonical_id: 2519 - carrier_name: "Boost Mobile - MVNO1" + carrier_name: "Boost Mobile - MVNO" carrier_attribute { mccmnc_tuple: "310240" gid1: "6432" @@ -11063,7 +11063,7 @@ carrier_id { } carrier_id { canonical_id: 2522 - carrier_name: "Republic - MVNO1" + carrier_name: "Republic - MVNO" carrier_attribute { mccmnc_tuple: "310240" gid1: "6436" @@ -11071,45 +11071,13 @@ carrier_id { } carrier_id { canonical_id: 2523 - carrier_name: "Ting - MVNO1" + carrier_name: "Ting - MVNO" carrier_attribute { mccmnc_tuple: "310240" gid1: "6430" } } carrier_id { - canonical_id: 2524 - carrier_name: "Erate" - carrier_attribute { - mccmnc_tuple: "24215" - gid1: "0e" - } -} -carrier_id { - canonical_id: 2525 - carrier_name: "Boost Mobile - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3432" - } -} -carrier_id { - canonical_id: 2526 - carrier_name: "Ting - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3430" - } -} -carrier_id { - canonical_id: 2527 - carrier_name: "Republic - MVNO2" - carrier_attribute { - mccmnc_tuple: "310410" - gid1: "3436" - } -} -carrier_id { canonical_id: 10000 carrier_name: "Tracfone-ATT" carrier_attribute { @@ -11393,4 +11361,4 @@ carrier_id { } parent_canonical_id: 1894 } -version: 50331664 +version: 50331662 diff --git a/src/com/android/providers/telephony/CarrierIdProvider.java b/src/com/android/providers/telephony/CarrierIdProvider.java index 3e751aa6..9b6c2c0d 100644 --- a/src/com/android/providers/telephony/CarrierIdProvider.java +++ b/src/com/android/providers/telephony/CarrierIdProvider.java @@ -189,14 +189,17 @@ public class CarrierIdProvider extends ContentProvider { + CarrierId.All.MCCMNC + ");"; } + static { + s_urlMatcher.addURI(AUTHORITY, "all", URL_ALL); + s_urlMatcher.addURI(AUTHORITY, "all/update_db", URL_ALL_UPDATE_FROM_PB); + s_urlMatcher.addURI(AUTHORITY, "all/get_version", URL_ALL_GET_VERSION); + } + @Override public boolean onCreate() { Log.d(TAG, "onCreate"); mDbHelper = new CarrierIdDatabaseHelper(getContext()); mDbHelper.getReadableDatabase(); - s_urlMatcher.addURI(AUTHORITY, "all", URL_ALL); - s_urlMatcher.addURI(AUTHORITY, "all/update_db", URL_ALL_UPDATE_FROM_PB); - s_urlMatcher.addURI(AUTHORITY, "all/get_version", URL_ALL_GET_VERSION); updateDatabaseFromPb(mDbHelper.getWritableDatabase()); return true; } diff --git a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java index 068f2090..a9494fb0 100644 --- a/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java +++ b/src/com/android/providers/telephony/MmsSmsDatabaseHelper.java @@ -526,6 +526,15 @@ public class MmsSmsDatabaseHelper extends SQLiteOpenHelper { @Override public void onCreate(SQLiteDatabase db) { localLog("onCreate: Creating all SMS-MMS tables."); + + createMmsTables(db); + createSmsTables(db); + createCommonTables(db); + createCommonTriggers(db); + createMmsTriggers(db); + createWordsTables(db); + createIndices(db); + // if FBE is not supported, or if this onCreate is for CE partition database if (!StorageManager.isFileEncryptedNativeOrEmulated() || (mContext != null && mContext.isCredentialProtectedStorage())) { @@ -546,13 +555,6 @@ public class MmsSmsDatabaseHelper extends SQLiteOpenHelper { mContext.sendBroadcast(intent); } - createMmsTables(db); - createSmsTables(db); - createCommonTables(db); - createCommonTriggers(db); - createMmsTriggers(db); - createWordsTables(db); - createIndices(db); } private static void localLog(String logMsg) { diff --git a/src/com/android/providers/telephony/TelephonyBackupAgent.java b/src/com/android/providers/telephony/TelephonyBackupAgent.java index 6ce5da15..34fed99d 100644 --- a/src/com/android/providers/telephony/TelephonyBackupAgent.java +++ b/src/com/android/providers/telephony/TelephonyBackupAgent.java @@ -36,6 +36,7 @@ import android.net.Uri; import android.os.Build; import android.os.ParcelFileDescriptor; import android.os.PowerManager; +import android.preference.PreferenceManager; import android.provider.BaseColumns; import android.provider.Telephony; import android.telephony.PhoneNumberUtils; @@ -50,6 +51,7 @@ import android.util.Log; import android.util.SparseArray; import com.android.internal.annotations.VisibleForTesting; +import com.android.internal.telephony.PhoneFactory; import com.google.android.mms.ContentType; import com.google.android.mms.pdu.CharacterSets; @@ -114,6 +116,15 @@ public class TelephonyBackupAgent extends BackupAgent { private static final boolean DEBUG = false; private static volatile boolean sIsRestoring; + // SharedPreferences keys + private static final String NUM_SMS_RESTORED = "num_sms_restored"; + private static final String NUM_SMS_EXCEPTIONS = "num_sms_exceptions"; + private static final String NUM_SMS_FILES_STORED = "num_sms_files_restored"; + private static final String NUM_SMS_FILES_WITH_EXCEPTIONS = "num_sms_files_with_exceptions"; + private static final String NUM_MMS_RESTORED = "num_mms_restored"; + private static final String NUM_MMS_EXCEPTIONS = "num_mms_exceptions"; + private static final String NUM_MMS_FILES_STORED = "num_mms_files_restored"; + private static final String NUM_MMS_FILES_WITH_EXCEPTIONS = "num_mms_files_with_exceptions"; // Copied from packages/apps/Messaging/src/com/android/messaging/sms/MmsUtils.java. private static final int DEFAULT_DURATION = 5000; //ms @@ -316,7 +327,7 @@ public class TelephonyBackupAgent extends BackupAgent { @Override public void onCreate() { super.onCreate(); - + Log.d(TAG, "onCreate"); final SubscriptionManager subscriptionManager = SubscriptionManager.from(this); if (subscriptionManager != null) { final List<SubscriptionInfo> subInfo = @@ -505,6 +516,28 @@ public class TelephonyBackupAgent extends BackupAgent { public static class DeferredSmsMmsRestoreService extends IntentService { private static final String TAG = "DeferredSmsMmsRestoreService"; + private static boolean sSharedPrefsAddedToLocalLogs = false; + + public static void addAllSharedPrefToLocalLog(Context context) { + if (sSharedPrefsAddedToLocalLogs) return; + localLog("addAllSharedPrefToLocalLog"); + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context); + Map<String, ?> allPref = sp.getAll(); + if (allPref.keySet() == null || allPref.keySet().size() == 0) return; + for (String key : allPref.keySet()) { + try { + localLog(key + ":" + allPref.get(key).toString()); + } catch (Exception e) { + localLog("Skipping over key " + key + " due to exception " + e); + } + } + sSharedPrefsAddedToLocalLogs = true; + } + + public static void localLog(String logMsg) { + Log.d(TAG, logMsg); + PhoneFactory.localLog(TAG, logMsg); + } private final Comparator<File> mFileComparator = new Comparator<File>() { @Override @@ -515,6 +548,7 @@ public class TelephonyBackupAgent extends BackupAgent { public DeferredSmsMmsRestoreService() { super(TAG); + Log.d(TAG, "DeferredSmsMmsRestoreService"); setIntentRedelivery(true); } @@ -523,6 +557,7 @@ public class TelephonyBackupAgent extends BackupAgent { @Override protected void onHandleIntent(Intent intent) { + Log.d(TAG, "onHandleIntent"); try { mWakeLock.acquire(); sIsRestoring = true; @@ -545,6 +580,7 @@ public class TelephonyBackupAgent extends BackupAgent { } catch (Exception e) { // Either IOException or RuntimeException. Log.e(TAG, "onHandleIntent", e); + localLog("onHandleIntent: Exception " + e); } finally { file.delete(); } @@ -552,11 +588,12 @@ public class TelephonyBackupAgent extends BackupAgent { if (didRestore) { // Tell the default sms app to do a full sync now that the messages have been // restored. - Log.d(TAG, "onHandleIntent done - notifying default sms app"); + localLog("onHandleIntent: done - notifying default sms app"); ProviderUtil.notifyIfNotDefaultSmsApp(null /*uri*/, null /*calling package*/, this); } } finally { + addAllSharedPrefToLocalLog(this); sIsRestoring = false; mWakeLock.release(); } @@ -565,6 +602,12 @@ public class TelephonyBackupAgent extends BackupAgent { @Override public void onCreate() { super.onCreate(); + Log.d(TAG, "onCreate"); + try { + PhoneFactory.addLocalLog(TAG, 32); + } catch (IllegalArgumentException e) { + // ignore + } mTelephonyBackupAgent = new TelephonyBackupAgent(); mTelephonyBackupAgent.attach(this); mTelephonyBackupAgent.onCreate(); @@ -583,8 +626,15 @@ public class TelephonyBackupAgent extends BackupAgent { } static void startIfFilesExist(Context context) { + try { + PhoneFactory.addLocalLog(TAG, 32); + } catch (IllegalArgumentException e) { + // ignore + } File[] files = getFilesToRestore(context); if (files == null || files.length == 0) { + Log.d(TAG, "startIfFilesExist: no files to restore"); + addAllSharedPrefToLocalLog(context); return; } context.startService(new Intent(context, DeferredSmsMmsRestoreService.class)); @@ -618,7 +668,7 @@ public class TelephonyBackupAgent extends BackupAgent { Log.d(TAG, "Restoring text MMS"); putMmsMessagesToProvider(jsonReader); } else { - Log.e(TAG, "Unknown file to restore:" + fileName); + DeferredSmsMmsRestoreService.localLog("Unknown file to restore:" + fileName); } } } @@ -627,6 +677,7 @@ public class TelephonyBackupAgent extends BackupAgent { void putSmsMessagesToProvider(JsonReader jsonReader) throws IOException { jsonReader.beginArray(); int msgCount = 0; + int numExceptions = 0; final int bulkInsertSize = mMaxMsgPerFile; ContentValues[] values = new ContentValues[bulkInsertSize]; while (jsonReader.hasNext()) { @@ -639,8 +690,10 @@ public class TelephonyBackupAgent extends BackupAgent { if (msgCount % bulkInsertSize == 0) { mContentResolver.bulkInsert(Telephony.Sms.CONTENT_URI, values); } - } catch (Exception e) { + } catch (RuntimeException e) { Log.e(TAG, "putSmsMessagesToProvider", e); + DeferredSmsMmsRestoreService.localLog("putSmsMessagesToProvider: Exception " + e); + numExceptions++; } } if (msgCount % bulkInsertSize > 0) { @@ -648,12 +701,37 @@ public class TelephonyBackupAgent extends BackupAgent { Arrays.copyOf(values, msgCount % bulkInsertSize)); } jsonReader.endArray(); + incremenentSharedPref(true, msgCount, numExceptions); + } + + void incremenentSharedPref(boolean sms, int msgCount, int numExceptions) { + SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); + SharedPreferences.Editor editor = sp.edit(); + if (sms) { + editor.putInt(NUM_SMS_RESTORED, sp.getInt(NUM_SMS_RESTORED, 0) + msgCount); + editor.putInt(NUM_SMS_EXCEPTIONS, sp.getInt(NUM_SMS_EXCEPTIONS, 0) + numExceptions); + editor.putInt(NUM_SMS_FILES_STORED, sp.getInt(NUM_SMS_FILES_STORED, 0) + 1); + if (numExceptions > 0) { + editor.putInt(NUM_SMS_FILES_WITH_EXCEPTIONS, + sp.getInt(NUM_SMS_FILES_WITH_EXCEPTIONS, 0) + 1); + } + } else { + editor.putInt(NUM_MMS_RESTORED, sp.getInt(NUM_MMS_RESTORED, 0) + msgCount); + editor.putInt(NUM_MMS_EXCEPTIONS, sp.getInt(NUM_MMS_EXCEPTIONS, 0) + numExceptions); + editor.putInt(NUM_MMS_FILES_STORED, sp.getInt(NUM_MMS_FILES_STORED, 0) + 1); + if (numExceptions > 0) { + editor.putInt(NUM_MMS_FILES_WITH_EXCEPTIONS, + sp.getInt(NUM_MMS_FILES_WITH_EXCEPTIONS, 0) + 1); + } + } + editor.commit(); } @VisibleForTesting void putMmsMessagesToProvider(JsonReader jsonReader) throws IOException { jsonReader.beginArray(); int total = 0; + int numExceptions = 0; while (jsonReader.hasNext()) { final Mms mms = readMmsFromReader(jsonReader); if (DEBUG) { @@ -672,9 +750,12 @@ public class TelephonyBackupAgent extends BackupAgent { addMmsMessage(mms); } catch (Exception e) { Log.e(TAG, "putMmsMessagesToProvider", e); + numExceptions++; + DeferredSmsMmsRestoreService.localLog("putMmsMessagesToProvider: Exception " + e); } } Log.d(TAG, "putMmsMessagesToProvider handled " + total + " new messages."); + incremenentSharedPref(false, total, numExceptions); } @VisibleForTesting @@ -706,9 +787,17 @@ public class TelephonyBackupAgent extends BackupAgent { } }; + /** + * Sets a temporary {@code SmsProviderQuery} for testing; note that this method + * is not thread safe. + * + * @return the previous {@code SmsProviderQuery} + */ @VisibleForTesting - public void setSmsProviderQuery(SmsProviderQuery smsProviderQuery) { + public SmsProviderQuery getAndSetSmsProviderQuery(SmsProviderQuery smsProviderQuery) { + SmsProviderQuery result = mSmsProviderQuery; mSmsProviderQuery = smsProviderQuery; + return result; } private boolean doesMmsExist(Mms mms) { diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java index 4dc815db..0ff9fc69 100644 --- a/src/com/android/providers/telephony/TelephonyProvider.java +++ b/src/com/android/providers/telephony/TelephonyProvider.java @@ -69,21 +69,17 @@ import static android.provider.Telephony.Carriers.USER_EDITED; import static android.provider.Telephony.Carriers.USER_VISIBLE; import static android.provider.Telephony.Carriers.WAIT_TIME_RETRY; import static android.provider.Telephony.Carriers._ID; -import static java.nio.charset.StandardCharsets.UTF_8; import android.annotation.NonNull; import android.annotation.Nullable; -import android.annotation.RequiresPermission; import android.app.compat.CompatChanges; import android.content.ComponentName; import android.content.ContentProvider; -import android.content.ContentProviderOperation; import android.content.ContentResolver; import android.content.ContentUris; import android.content.ContentValues; import android.content.Context; import android.content.Intent; -import android.content.OperationApplicationException; import android.content.ServiceConnection; import android.content.SharedPreferences; import android.content.UriMatcher; @@ -115,6 +111,7 @@ import android.telephony.data.ApnSetting; import android.text.TextUtils; import android.util.ArrayMap; import android.util.ArraySet; +import android.util.AtomicFile; import android.util.Log; import android.util.Pair; import android.util.Xml; @@ -129,7 +126,6 @@ import android.service.carrier.IApnSourceService; import org.xmlpull.v1.XmlPullParser; import org.xmlpull.v1.XmlPullParserException; -import java.io.ByteArrayInputStream; import java.io.ByteArrayOutputStream; import java.io.File; import java.io.FileInputStream; @@ -139,11 +135,9 @@ import java.io.FileReader; import java.io.IOException; import java.io.InputStream; import java.lang.Integer; -import java.lang.NoSuchFieldException; import java.util.ArrayList; import java.util.Arrays; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.Collections; import java.util.HashMap; import java.util.HashSet; import java.util.List; @@ -568,8 +562,8 @@ public class TelephonyProvider extends ContentProvider + Telephony.SimInfo.COLUMN_CROSS_SIM_CALLING_ENABLED + " INTEGER DEFAULT 0," + Telephony.SimInfo.COLUMN_RCS_CONFIG + " BLOB," + Telephony.SimInfo.COLUMN_ALLOWED_NETWORK_TYPES_FOR_REASONS + " TEXT," - + Telephony.SimInfo.COLUMN_D2D_STATUS_SHARING + " INTEGER DEFAULT 0," + Telephony.SimInfo.COLUMN_VOIMS_OPT_IN_STATUS + " INTEGER DEFAULT 0," + + Telephony.SimInfo.COLUMN_D2D_STATUS_SHARING + " INTEGER DEFAULT 0," + Telephony.SimInfo.COLUMN_D2D_STATUS_SHARING_SELECTED_CONTACTS + " TEXT" + ");"; } @@ -1654,12 +1648,12 @@ public class TelephonyProvider extends ContentProvider try { // Try to update the siminfo table. It might not be there. db.execSQL("ALTER TABLE " + SIMINFO_TABLE + " ADD COLUMN " - + Telephony.SimInfo.COLUMN_D2D_STATUS_SHARING + + Telephony.SimInfo.COLUMN_VOIMS_OPT_IN_STATUS + " INTEGER DEFAULT 0;"); } catch (SQLiteException e) { if (DBG) { - log("onUpgrade failed to updated " + SIMINFO_TABLE - + " to add d2d status sharing column. "); + log("onUpgrade skipping " + SIMINFO_TABLE + " upgrade. " + + "The table will get created in onOpen."); } } oldVersion = 49 << 16 | 6; @@ -1669,12 +1663,12 @@ public class TelephonyProvider extends ContentProvider try { // Try to update the siminfo table. It might not be there. db.execSQL("ALTER TABLE " + SIMINFO_TABLE + " ADD COLUMN " - + Telephony.SimInfo.COLUMN_VOIMS_OPT_IN_STATUS + + Telephony.SimInfo.COLUMN_D2D_STATUS_SHARING + " INTEGER DEFAULT 0;"); } catch (SQLiteException e) { if (DBG) { - log("onUpgrade skipping " + SIMINFO_TABLE + " upgrade. " + - "The table will get created in onOpen."); + log("onUpgrade failed to updated " + SIMINFO_TABLE + + " to add d2d status sharing column. "); } } oldVersion = 50 << 16 | 6; @@ -2844,8 +2838,10 @@ public class TelephonyProvider extends ContentProvider r.getString(R.string.apn_source_service))); log("binding to service to restore apns, intent=" + intent); try { - if (context.bindService(intent, connection, Context.BIND_IMPORTANT | - Context.BIND_AUTO_CREATE)) { + if (context.bindService(intent, + Context.BIND_IMPORTANT | Context.BIND_AUTO_CREATE, + runnable -> new Thread(runnable).start(), + connection)) { synchronized (mLock) { while (mIApnSourceService == null && !connectionBindingInvalid.get()) { try { @@ -2898,10 +2894,10 @@ public class TelephonyProvider extends ContentProvider boolean isNewBuild = false; String newBuildId = SystemProperties.get("ro.build.id", null); + SharedPreferences sp = getContext().getSharedPreferences(BUILD_ID_FILE, + Context.MODE_PRIVATE); if (!TextUtils.isEmpty(newBuildId)) { // Check if build id has changed - SharedPreferences sp = getContext().getSharedPreferences(BUILD_ID_FILE, - Context.MODE_PRIVATE); String oldBuildId = sp.getString(RO_BUILD_ID, ""); if (!newBuildId.equals(oldBuildId)) { localLog("onCreate: build id changed from " + oldBuildId + " to " + newBuildId); @@ -2909,7 +2905,6 @@ public class TelephonyProvider extends ContentProvider } else { if (VDBG) log("onCreate: build id did not change: " + oldBuildId); } - sp.edit().putString(RO_BUILD_ID, newBuildId).apply(); } else { if (VDBG) log("onCreate: newBuildId is empty"); } @@ -2924,9 +2919,15 @@ public class TelephonyProvider extends ContentProvider if (DBG) addAllApnSharedPrefToLocalLog(); } - SharedPreferences sp = getContext().getSharedPreferences(ENFORCED_FILE, + // Write build id to SharedPreferences after APNs have been updated above by updateApnDb() + if (!TextUtils.isEmpty(newBuildId)) { + if (isNewBuild) log("onCreate: updating build id to " + newBuildId); + sp.edit().putString(RO_BUILD_ID, newBuildId).apply(); + } + + SharedPreferences spEnforcedFile = getContext().getSharedPreferences(ENFORCED_FILE, Context.MODE_PRIVATE); - mManagedApnEnforced = sp.getBoolean(ENFORCED_KEY, false); + mManagedApnEnforced = spEnforcedFile.getBoolean(ENFORCED_KEY, false); if (VDBG) log("onCreate:- ret true"); @@ -3196,10 +3197,17 @@ public class TelephonyProvider extends ContentProvider @VisibleForTesting boolean writeSimSettingsToInternalStorage(byte[] data) { - File file = new File(getContext().getFilesDir(), BACKED_UP_SIM_SPECIFIC_SETTINGS_FILE); - try (FileOutputStream fos = new FileOutputStream(file)) { + AtomicFile atomicFile = new AtomicFile( + new File(getContext().getFilesDir(), BACKED_UP_SIM_SPECIFIC_SETTINGS_FILE)); + FileOutputStream fos = null; + try { + fos = atomicFile.startWrite(); fos.write(data); + atomicFile.finishWrite(fos); } catch (IOException e) { + if (fos != null) { + atomicFile.failWrite(fos); + } loge("Not able to create internal file with per-sim configs. Failed with error " + e); return false; @@ -3226,8 +3234,9 @@ public class TelephonyProvider extends ContentProvider return; } + AtomicFile atomicFile = new AtomicFile(file); PersistableBundle bundle = null; - try (FileInputStream fis = new FileInputStream(file)) { + try (FileInputStream fis = atomicFile.openRead()) { bundle = PersistableBundle.readFromStream(fis); } catch (IOException e) { loge("Failed to convert backed up per-sim configs to bundle. Stopping restore. " @@ -3669,6 +3678,7 @@ public class TelephonyProvider extends ContentProvider checkPermissionCompat(match, projectionIn); switch (match) { case URL_TELEPHONY_USING_SUBID: { + // The behaves exactly same as URL_SIM_APN_LIST_ID. subIdString = url.getLastPathSegment(); try { subId = Integer.parseInt(subIdString); @@ -3677,13 +3687,13 @@ public class TelephonyProvider extends ContentProvider return null; } if (DBG) log("subIdString = " + subIdString + " subId = " + subId); - TelephonyManager telephonyManager = getContext() - .getSystemService(TelephonyManager.class).createForSubscriptionId(subId); - constraints.add(NUMERIC + " = '" + telephonyManager.getSimOperator() + "'"); + qb.appendWhereStandalone(IS_NOT_OWNED_BY_DPC); + return getSubscriptionMatchingAPNList(qb, projectionIn, selection, selectionArgs, + sort, subId); + // TODO b/74213956 turn this back on once insertion includes correct sub id // constraints.add(SUBSCRIPTION_ID + "=" + subIdString); } - // intentional fall through from above case case URL_TELEPHONY: { constraints.add(IS_NOT_OWNED_BY_DPC); break; @@ -3881,6 +3891,31 @@ public class TelephonyProvider extends ContentProvider } /** + * This method syncs PREF_FILE_FULL_APN with the db based on the current preferred apn ids. + */ + private void updatePreferredApns() { + SharedPreferences spApn = getContext().getSharedPreferences(PREF_FILE_APN, + Context.MODE_PRIVATE); + + Map<String, ?> allPrefApnId = spApn.getAll(); + for (String key : allPrefApnId.keySet()) { + if (key.startsWith(COLUMN_APN_ID)) { + int subId; + try { + subId = Integer.parseInt(key.substring(COLUMN_APN_ID.length())); + } catch (NumberFormatException e) { + loge("updatePreferredApns: NumberFormatException for key=" + key); + continue; + } + long preferredApnId = getPreferredApnId(subId, false); + if (preferredApnId != INVALID_APN_ID) { + setPreferredApn(preferredApnId, subId); + } + } + } + } + + /** * To find the current sim APN. Query APN based on {MCC, MNC, MVNO} and {Carrier_ID}. * * There has three steps: @@ -3942,10 +3977,19 @@ public class TelephonyProvider extends ContentProvider data.add(ret.getString(ret.getColumnIndex(column))); } + boolean isCurrentSimOperator; + final long identity = Binder.clearCallingIdentity(); + try { + isCurrentSimOperator = tm.matchesCurrentSimOperator( + ret.getString(numericIndex), + getMvnoTypeIntFromString(ret.getString(mvnoIndex)), + ret.getString(mvnoDataIndex)); + } finally { + Binder.restoreCallingIdentity(identity); + } + boolean isMVNOAPN = !TextUtils.isEmpty(ret.getString(numericIndex)) - && tm.matchesCurrentSimOperator(ret.getString(numericIndex), - getMvnoTypeIntFromString(ret.getString(mvnoIndex)), - ret.getString(mvnoDataIndex)); + && isCurrentSimOperator; boolean isMNOAPN = !TextUtils.isEmpty(ret.getString(numericIndex)) && ret.getString(numericIndex).equals(mccmnc) && TextUtils.isEmpty(ret.getString(mvnoIndex)); @@ -4619,6 +4663,19 @@ public class TelephonyProvider extends ContentProvider } } + // if APNs (CARRIERS_TABLE) have been updated, some of them may be preferred APN for + // different subs. So update the APN field values saved in SharedPref for all subIds. + switch (match) { + case URL_TELEPHONY_USING_SUBID: + case URL_TELEPHONY: + case URL_CURRENT_USING_SUBID: + case URL_CURRENT: + case URL_ID: + case URL_DPC_ID: + updatePreferredApns(); + break; + } + if (count > 0) { boolean usingSubId = false; switch (uriType) { @@ -4716,14 +4773,18 @@ public class TelephonyProvider extends ContentProvider TelephonyManager telephonyManager = (TelephonyManager) getContext().getSystemService(Context.TELEPHONY_SERVICE); - for (String pkg : packages) { - if (telephonyManager.checkCarrierPrivilegesForPackageAnyPhone(pkg) == + final long token = Binder.clearCallingIdentity(); + try { + for (String pkg : packages) { + if (telephonyManager.checkCarrierPrivilegesForPackageAnyPhone(pkg) == TelephonyManager.CARRIER_PRIVILEGE_STATUS_HAS_ACCESS) { - return; + return; + } } + } finally { + Binder.restoreCallingIdentity(token); } - throw new SecurityException("No permission to access APN settings"); } diff --git a/tests/Android.bp b/tests/Android.bp index dafd7cdf..8ecc3707 100644 --- a/tests/Android.bp +++ b/tests/Android.bp @@ -23,7 +23,7 @@ android_test { "android.test.base", "android.test.mock", ], - srcs: ["src/**/*.java"], + srcs: ["src/**/*.java", ":telephonyprovider-shared-srcs"], platform_apis: true, test_suites: ["device-tests"], certificate: "platform", diff --git a/tests/AndroidManifest.xml b/tests/AndroidManifest.xml index 59fd8bd1..e4e9e698 100644 --- a/tests/AndroidManifest.xml +++ b/tests/AndroidManifest.xml @@ -17,12 +17,17 @@ <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.android.providers.telephony.tests"> + <!-- Permissions required for reading and logging compat changes --> + <uses-permission android:name="android.permission.LOG_COMPAT_CHANGE"/> + <uses-permission android:name="android.permission.READ_COMPAT_CHANGE_CONFIG"/> + <uses-permission android:name="android.permission.INTERACT_ACROSS_USERS_FULL"/> + <application> <uses-library android:name="android.test.runner" /> </application> <instrumentation android:name="androidx.test.runner.AndroidJUnitRunner" - android:targetPackage="com.android.providers.telephony" + android:targetPackage="com.android.providers.telephony.tests" android:label="Tests for TelephonyProvider"> </instrumentation> </manifest> diff --git a/tests/src/com/android/providers/telephony/TelephonyBackupAgentTest.java b/tests/src/com/android/providers/telephony/TelephonyBackupAgentTest.java index 00bb15e1..f6a9c7f9 100644 --- a/tests/src/com/android/providers/telephony/TelephonyBackupAgentTest.java +++ b/tests/src/com/android/providers/telephony/TelephonyBackupAgentTest.java @@ -43,6 +43,8 @@ import android.util.JsonReader; import android.util.JsonWriter; import android.util.SparseArray; +import com.android.internal.telephony.PhoneFactory; + import libcore.io.IoUtils; import com.google.android.mms.pdu.CharacterSets; @@ -620,6 +622,7 @@ public class TelephonyBackupAgentTest extends AndroidTestCase { */ public void testRestoreSms_WithException() throws Exception { mTelephonyBackupAgent.initUnknownSender(); + PhoneFactory.addLocalLog("DeferredSmsMmsRestoreService", 1); JsonReader jsonReader = new JsonReader(new StringReader(addRandomDataToJson(mAllSmsJson))); FakeSmsProvider smsProvider = new FakeSmsProvider(mSmsRows, false); mMockContentResolver.addProvider("sms", smsProvider); @@ -635,12 +638,16 @@ public class TelephonyBackupAgentTest extends AndroidTestCase { return false; } }; - mTelephonyBackupAgent.setSmsProviderQuery(smsProviderQuery); - - mTelephonyBackupAgent.putSmsMessagesToProvider(jsonReader); - // the "- 1" is due to exception thrown for one of the messages - assertEquals(mSmsRows.length - 1, smsProvider.getRowsAdded()); - assertEquals(mThreadProvider.mIsThreadArchived, mThreadProvider.mUpdateThreadsArchived); + TelephonyBackupAgent.SmsProviderQuery previousQuery = + mTelephonyBackupAgent.getAndSetSmsProviderQuery(smsProviderQuery); + try { + mTelephonyBackupAgent.putSmsMessagesToProvider(jsonReader); + // the "- 1" is due to exception thrown for one of the messages + assertEquals(mSmsRows.length - 1, smsProvider.getRowsAdded()); + assertEquals(mThreadProvider.mIsThreadArchived, mThreadProvider.mUpdateThreadsArchived); + } finally { + mTelephonyBackupAgent.getAndSetSmsProviderQuery(previousQuery); + } } /** diff --git a/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java b/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java index fe2406f1..6f3f842a 100644 --- a/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java +++ b/tests/src/com/android/providers/telephony/TelephonyDatabaseHelperTest.java @@ -218,35 +218,35 @@ public final class TelephonyDatabaseHelperTest { } @Test - public void databaseHelperOnUpgrade_hasD2DStatusSharingField() { - Log.d(TAG, "databaseHelperOnUpgrade_hasD2DStatusSharingField"); - // (5 << 16 | 6) is the first upgrade trigger in onUpgrade + public void databaseHelperOnUpgrade_hasVoImsOptInStatusField() { + Log.d(TAG, "databaseHelperOnUpgrade_hasImsRcsUceEnabledField"); + // (5 << 16) is the first upgrade trigger in onUpgrade SQLiteDatabase db = mInMemoryDbHelper.getWritableDatabase(); - mHelper.onUpgrade(db, (4 << 16), TelephonyProvider.getVersion(mContext)); + mHelper.onUpgrade(db, 4 << 16, TelephonyProvider.getVersion(mContext)); - // the upgraded db must have the Telephony.SimInfo.COLUMN_D2D_SHARING_STATUS field + // the upgraded db must have the SubscriptionManager.VOIMS_OPT_IN_STATUS field Cursor cursor = db.query("siminfo", null, null, null, null, null, null); String[] upgradedColumns = cursor.getColumnNames(); Log.d(TAG, "siminfo columns: " + Arrays.toString(upgradedColumns)); assertTrue(Arrays.asList(upgradedColumns).contains( - Telephony.SimInfo.COLUMN_D2D_STATUS_SHARING)); + Telephony.SimInfo.COLUMN_VOIMS_OPT_IN_STATUS)); } @Test - public void databaseHelperOnUpgrade_hasVoImsOptInStatusField() { - Log.d(TAG, "databaseHelperOnUpgrade_hasImsRcsUceEnabledField"); - // (5 << 16) is the first upgrade trigger in onUpgrade + public void databaseHelperOnUpgrade_hasD2DStatusSharingField() { + Log.d(TAG, "databaseHelperOnUpgrade_hasD2DStatusSharingField"); + // (5 << 16 | 6) is the first upgrade trigger in onUpgrade SQLiteDatabase db = mInMemoryDbHelper.getWritableDatabase(); - mHelper.onUpgrade(db, 4 << 16, TelephonyProvider.getVersion(mContext)); + mHelper.onUpgrade(db, (4 << 16), TelephonyProvider.getVersion(mContext)); - // the upgraded db must have the SubscriptionManager.VOIMS_OPT_IN_STATUS field + // the upgraded db must have the Telephony.SimInfo.COLUMN_D2D_SHARING_STATUS field Cursor cursor = db.query("siminfo", null, null, null, null, null, null); String[] upgradedColumns = cursor.getColumnNames(); Log.d(TAG, "siminfo columns: " + Arrays.toString(upgradedColumns)); assertTrue(Arrays.asList(upgradedColumns).contains( - Telephony.SimInfo.COLUMN_VOIMS_OPT_IN_STATUS)); + Telephony.SimInfo.COLUMN_D2D_STATUS_SHARING)); } @Test diff --git a/tests/src/com/android/providers/telephony/TelephonyProviderTest.java b/tests/src/com/android/providers/telephony/TelephonyProviderTest.java index 37ba7ecb..1a9b46cb 100644 --- a/tests/src/com/android/providers/telephony/TelephonyProviderTest.java +++ b/tests/src/com/android/providers/telephony/TelephonyProviderTest.java @@ -45,7 +45,6 @@ import android.telephony.SubscriptionManager; import android.telephony.TelephonyManager; import android.test.mock.MockContentResolver; import android.test.mock.MockContext; -import android.test.mock.MockResources; import android.test.suitebuilder.annotation.SmallTest; import android.text.TextUtils; import android.util.Log; @@ -54,11 +53,14 @@ import androidx.test.InstrumentationRegistry; import junit.framework.TestCase; +import org.junit.Ignore; import org.junit.Test; import org.mockito.MockitoAnnotations; import org.mockito.Mock; import static org.mockito.Mockito.when; +import com.android.internal.telephony.PhoneFactory; + import java.io.File; import java.io.FileInputStream; import java.io.IOException; @@ -1647,6 +1649,7 @@ public class TelephonyProviderTest extends TestCase { assertEquals(1, cursor.getCount()); cursor.moveToFirst(); assertEquals(otherName, cursor.getString(0)); + PhoneFactory.addLocalLog("TelephonyProvider", 1); } /** |
