summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorpaulhu <paulhu@google.com>2021-01-27 11:21:09 +0800
committerpaulhu <paulhu@google.com>2021-02-09 10:11:41 +0800
commitba70fa80ac602deed13e892bff8e0c2028d38538 (patch)
treed94b5eaa10909d3c7ab902e1b29e1e683f404fde /core/java/android
parent905c2570cd4fa62504d7e1d71d4059681432c6b5 (diff)
New API for getting uids have specific permissions from SystemConfig
SysetmConfig is internal service for frameworks only which cannot use by Connectivity mainline module, but PermissionMonitor which is part of the module needs to get uids that have been granted INTERNET/UPDATE_DEVICE_STATS permission from SystemConfig. Therefore, add a new API to SystemConfigManager that can get these uids from SysetmConfig. Bug: 177188455 Test: atest SystemConfigTest Change-Id: I62bdd969b1b813631ed6223df97bda21a39aec2c
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/os/ISystemConfig.aidl5
-rw-r--r--core/java/android/os/SystemConfigManager.java18
2 files changed, 23 insertions, 0 deletions
diff --git a/core/java/android/os/ISystemConfig.aidl b/core/java/android/os/ISystemConfig.aidl
index 52f0ce1f054f..4d160da22ff8 100644
--- a/core/java/android/os/ISystemConfig.aidl
+++ b/core/java/android/os/ISystemConfig.aidl
@@ -35,4 +35,9 @@ interface ISystemConfig {
* @see SystemConfigManager#getDisabledUntilUsedPreinstalledCarrierAssociatedAppEntries
*/
Map getDisabledUntilUsedPreinstalledCarrierAssociatedAppEntries();
+
+ /**
+ * @see SystemConfigManager#getSystemPermissionUids
+ */
+ int[] getSystemPermissionUids(String permissionName);
}
diff --git a/core/java/android/os/SystemConfigManager.java b/core/java/android/os/SystemConfigManager.java
index 3f0632be90d1..9bfa8adc8571 100644
--- a/core/java/android/os/SystemConfigManager.java
+++ b/core/java/android/os/SystemConfigManager.java
@@ -111,4 +111,22 @@ public class SystemConfigManager {
return Collections.emptyMap();
}
}
+
+ /**
+ * Get uids which have been granted given permission in system configuration.
+ *
+ * The uids and assigning permissions are defined on data/etc/platform.xml
+ *
+ * @param permissionName The target permission.
+ * @return The uids have been granted given permission in system configuration.
+ */
+ @RequiresPermission(Manifest.permission.GET_RUNTIME_PERMISSIONS)
+ @NonNull
+ public int[] getSystemPermissionUids(@NonNull String permissionName) {
+ try {
+ return mInterface.getSystemPermissionUids(permissionName);
+ } catch (RemoteException e) {
+ throw e.rethrowFromSystemServer();
+ }
+ }
}