Merge changes from topic "am-4ee6cb21c374473988dd3ff94a06bfae" into main

* changes:
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: 155d65accc -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 47f6bb26f0 -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: 05f6a10f86 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 8fb8385fb3 -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: b997445e95 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 6a34f4123f -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: 2a60edb087 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: b5547af0d8 -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: 03aa130050 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 274d000913 -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: ebc4086bc1 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: a6a1d996c9 -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: 1dbfb8f0d9 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 8b10dfd74d -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: 5125ead4a9 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 0a1c93b800 -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: 2463475cea -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 52d361c6b2 -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: c4d9aaa699 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: b03cf06a90 -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: 67c78ab0c5 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 040b67542e -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: c67bd31120 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 730d578187 -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: 32f825f2b5 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 92805fcf7c -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: 7c7f80464f -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 3f817ece65 -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: b36c7d056e -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: fcbae27918 -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: 9b24393795 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 7a93128be6 -s ours
  [automerger skipped] Merge "Import translations. DO NOT MERGE ANYWHERE" into 24D1-dev am: 754d80330f -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 76c1a566f6 -s ours
  [automerger skipped] Import translations. DO NOT MERGE ANYWHERE am: 6be53ffb2e -s ours
diff --git a/packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java b/packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java
index e77cf2f..2227943 100644
--- a/packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java
+++ b/packages/SettingsProvider/src/com/android/providers/settings/DeviceConfigService.java
@@ -189,22 +189,13 @@
 
       public static HashMap<String, String> getAllFlags(IContentProvider provider) {
         HashMap<String, String> allFlags = new HashMap<String, String>();
-        try {
-            Bundle args = new Bundle();
-            args.putInt(Settings.CALL_METHOD_USER_KEY,
-                ActivityManager.getService().getCurrentUser().id);
-            Bundle b = provider.call(new AttributionSource(Process.myUid(),
-                    resolveCallingPackage(), null), Settings.AUTHORITY,
-                    Settings.CALL_METHOD_LIST_CONFIG, null, args);
-            if (b != null) {
-                Map<String, String> flagsToValues =
-                    (HashMap) b.getSerializable(Settings.NameValueTable.VALUE);
-                allFlags.putAll(flagsToValues);
+        for (DeviceConfig.Properties properties : DeviceConfig.getAllProperties()) {
+            List<String> keys = new ArrayList<>(properties.getKeyset());
+            for (String flagName : properties.getKeyset()) {
+                String fullName = properties.getNamespace() + "/" + flagName;
+                allFlags.put(fullName, properties.getString(flagName, null));
             }
-        } catch (RemoteException e) {
-            throw new RuntimeException("Failed in IPC", e);
         }
-
         return allFlags;
       }
 
diff --git a/services/core/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
index bacfd8f..3633d0f 100644
--- a/services/core/java/com/android/server/TelephonyRegistry.java
+++ b/services/core/java/com/android/server/TelephonyRegistry.java
@@ -2989,7 +2989,7 @@
         // Always redact location info from PhysicalChannelConfig if the registrant is from neither
         // PHONE nor SYSTEM process. There is no user case that the registrant needs the location
         // info (e.g. physicalCellId). This also remove the need for the location permissions check.
-        return record.callerUid != Process.PHONE_UID && record.callerUid != Process.SYSTEM_UID;
+        return !TelephonyPermissions.isSystemOrPhone(record.callerUid);
     }
 
     /**