diff options
author | 2021-09-14 18:18:30 +0000 | |
---|---|---|
committer | 2021-09-14 18:18:30 +0000 | |
commit | bca93eafe52edb1005ca23552efbca0ffc5515e9 (patch) | |
tree | 3a97cb9bad98ca16ab8e2ecbeecc43fd964b2beb | |
parent | 1353c413790ac6d60ee3a4c1a1a9b325c404a1e8 (diff) | |
parent | 29dbede14401e09c6328e65b2bc3c17b9cdf3a66 (diff) |
Merge "New API for getting enabledcomponent"
-rw-r--r-- | core/api/system-current.txt | 1 | ||||
-rw-r--r-- | core/java/android/os/ISystemConfig.aidl | 5 | ||||
-rw-r--r-- | core/java/android/os/SystemConfigManager.java | 18 | ||||
-rw-r--r-- | services/java/com/android/server/SystemConfigService.java | 16 |
4 files changed, 40 insertions, 0 deletions
diff --git a/core/api/system-current.txt b/core/api/system-current.txt index 3c53683fb677..75c37748c719 100644 --- a/core/api/system-current.txt +++ b/core/api/system-current.txt @@ -7256,6 +7256,7 @@ package android.os { public class SystemConfigManager { method @NonNull @RequiresPermission(android.Manifest.permission.READ_CARRIER_APP_INFO) public java.util.Set<java.lang.String> getDisabledUntilUsedPreinstalledCarrierApps(); method @NonNull @RequiresPermission(android.Manifest.permission.READ_CARRIER_APP_INFO) public java.util.Map<java.lang.String,java.util.List<java.lang.String>> getDisabledUntilUsedPreinstalledCarrierAssociatedApps(); + method @NonNull public java.util.List<java.lang.String> getEnabledComponentOverrides(@NonNull String); method @NonNull @RequiresPermission(android.Manifest.permission.GET_RUNTIME_PERMISSIONS) public int[] getSystemPermissionUids(@NonNull String); } diff --git a/core/java/android/os/ISystemConfig.aidl b/core/java/android/os/ISystemConfig.aidl index 4d160da22ff8..d83d94a8ec77 100644 --- a/core/java/android/os/ISystemConfig.aidl +++ b/core/java/android/os/ISystemConfig.aidl @@ -40,4 +40,9 @@ interface ISystemConfig { * @see SystemConfigManager#getSystemPermissionUids */ int[] getSystemPermissionUids(String permissionName); + + /** + * @see SystemConfigManager#getEnabledComponentOverrides + */ + List<String> getEnabledComponentOverrides(String packageName); } diff --git a/core/java/android/os/SystemConfigManager.java b/core/java/android/os/SystemConfigManager.java index 9bfa8adc8571..a6316df0780c 100644 --- a/core/java/android/os/SystemConfigManager.java +++ b/core/java/android/os/SystemConfigManager.java @@ -17,6 +17,7 @@ package android.os; import android.Manifest; import android.annotation.NonNull; +import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SystemApi; import android.annotation.SystemService; @@ -129,4 +130,21 @@ public class SystemConfigManager { throw e.rethrowFromSystemServer(); } } + + /** + * Get enabled component for a specific package + * + * @param packageName The target package. + * @return The enabled component + * {@hide} + */ + @SystemApi + @NonNull + public List<String> getEnabledComponentOverrides(@NonNull String packageName) { + try { + return mInterface.getEnabledComponentOverrides(packageName); + } catch (RemoteException e) { + throw e.rethrowFromSystemServer(); + } + } } diff --git a/services/java/com/android/server/SystemConfigService.java b/services/java/com/android/server/SystemConfigService.java index a2768c637d79..3a9b2dca3921 100644 --- a/services/java/com/android/server/SystemConfigService.java +++ b/services/java/com/android/server/SystemConfigService.java @@ -21,6 +21,7 @@ import static java.util.stream.Collectors.toMap; import android.Manifest; import android.content.Context; import android.os.ISystemConfig; +import android.util.ArrayMap; import android.util.ArraySet; import android.util.SparseArray; @@ -84,6 +85,21 @@ public class SystemConfigService extends SystemService { } return ArrayUtils.convertToIntArray(uids); } + + @Override + public List<String> getEnabledComponentOverrides(String packageName) { + ArrayMap<String, Boolean> systemComponents = SystemConfig.getInstance() + .getComponentsEnabledStates(packageName); + List<String> enabledComponent = new ArrayList<>(); + if (systemComponents != null) { + for (Map.Entry<String, Boolean> entry : systemComponents.entrySet()) { + if (Boolean.TRUE.equals(entry.getValue())) { + enabledComponent.add(entry.getKey()); + } + } + } + return enabledComponent; + } }; public SystemConfigService(Context context) { |