Merge Coral/Flame into AOSP master

Bug: 141248619
Change-Id: I3b6cc97dc6873b1240535cea8f95c07ecbfaca95
Merged-In: I9fc77bfb2ee9c2a7567dc3645cf8cf436388e975
diff --git a/assets/carrier_list.pb b/assets/carrier_list.pb
index 125de1a..93bc1b3 100644
--- a/assets/carrier_list.pb
+++ b/assets/carrier_list.pb
Binary files differ
diff --git a/assets/carrier_list.textpb b/assets/carrier_list.textpb
index 648571e..1e033ee 100644
--- a/assets/carrier_list.textpb
+++ b/assets/carrier_list.textpb
Binary files differ
diff --git a/src/com/android/providers/telephony/TelephonyProvider.java b/src/com/android/providers/telephony/TelephonyProvider.java
index 7f3e463..b2d5487 100644
--- a/src/com/android/providers/telephony/TelephonyProvider.java
+++ b/src/com/android/providers/telephony/TelephonyProvider.java
@@ -138,7 +138,6 @@
 import java.util.Locale;
 import java.util.Map;
 import java.util.Set;
-import java.util.function.Consumer;
 import java.util.zip.CRC32;
 
 public class TelephonyProvider extends ContentProvider
@@ -2804,7 +2803,7 @@
         List<String> constraints = new ArrayList<String>();
 
         int match = s_urlMatcher.match(url);
-        checkQueryPermission(match, projectionIn, selection);
+        checkQueryPermission(match, projectionIn, selection, sort);
         switch (match) {
             case URL_TELEPHONY_USING_SUBID: {
                 subIdString = url.getLastPathSegment();
@@ -3013,19 +3012,21 @@
         return ret;
     }
 
-    private void checkQueryPermission(int match, String[] projectionIn, String selection) {
+    private void checkQueryPermission(int match, String[] projectionIn, String selection,
+            String sort) {
         if (match != URL_SIMINFO && match != URL_SIMINFO_USING_SUBID) {
             // Determine if we need to do a check for fields in the selection
-            boolean selectionContainsSensitiveFields;
+            boolean selectionOrSortContainsSensitiveFields;
             try {
-                selectionContainsSensitiveFields = containsSensitiveFields(selection);
+                selectionOrSortContainsSensitiveFields = containsSensitiveFields(selection);
+                selectionOrSortContainsSensitiveFields |= containsSensitiveFields(sort);
             } catch (IllegalArgumentException e) {
                 // Malformed sql, check permission anyway and return.
                 checkPermission();
                 return;
             }
 
-            if (selectionContainsSensitiveFields) {
+            if (selectionOrSortContainsSensitiveFields) {
                 try {
                     checkPermission();
                 } catch (SecurityException e) {