Merge "New API for getting uids have specific permissions from SystemConfig"
This commit is contained in:
@@ -7539,6 +7539,7 @@ package android.os {
|
|||||||
public class SystemConfigManager {
|
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.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 @RequiresPermission(android.Manifest.permission.READ_CARRIER_APP_INFO) public java.util.Map<java.lang.String,java.util.List<java.lang.String>> getDisabledUntilUsedPreinstalledCarrierAssociatedApps();
|
||||||
|
method @NonNull @RequiresPermission(android.Manifest.permission.GET_RUNTIME_PERMISSIONS) public int[] getSystemPermissionUids(@NonNull String);
|
||||||
}
|
}
|
||||||
|
|
||||||
public class SystemProperties {
|
public class SystemProperties {
|
||||||
|
|||||||
@@ -35,4 +35,9 @@ interface ISystemConfig {
|
|||||||
* @see SystemConfigManager#getDisabledUntilUsedPreinstalledCarrierAssociatedAppEntries
|
* @see SystemConfigManager#getDisabledUntilUsedPreinstalledCarrierAssociatedAppEntries
|
||||||
*/
|
*/
|
||||||
Map getDisabledUntilUsedPreinstalledCarrierAssociatedAppEntries();
|
Map getDisabledUntilUsedPreinstalledCarrierAssociatedAppEntries();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @see SystemConfigManager#getSystemPermissionUids
|
||||||
|
*/
|
||||||
|
int[] getSystemPermissionUids(String permissionName);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -111,4 +111,22 @@ public class SystemConfigManager {
|
|||||||
return Collections.emptyMap();
|
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();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,6 +21,10 @@ import static java.util.stream.Collectors.toMap;
|
|||||||
import android.Manifest;
|
import android.Manifest;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.os.ISystemConfig;
|
import android.os.ISystemConfig;
|
||||||
|
import android.util.ArraySet;
|
||||||
|
import android.util.SparseArray;
|
||||||
|
|
||||||
|
import com.android.internal.util.ArrayUtils;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -64,6 +68,22 @@ public class SystemConfigService extends SystemService {
|
|||||||
return SystemConfig.getInstance()
|
return SystemConfig.getInstance()
|
||||||
.getDisabledUntilUsedPreinstalledCarrierAssociatedApps();
|
.getDisabledUntilUsedPreinstalledCarrierAssociatedApps();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int[] getSystemPermissionUids(String permissionName) {
|
||||||
|
mContext.enforceCallingOrSelfPermission(Manifest.permission.GET_RUNTIME_PERMISSIONS,
|
||||||
|
"getSystemPermissionUids requires GET_RUNTIME_PERMISSIONS");
|
||||||
|
final List<Integer> uids = new ArrayList<>();
|
||||||
|
final SparseArray<ArraySet<String>> systemPermissions =
|
||||||
|
SystemConfig.getInstance().getSystemPermissions();
|
||||||
|
for (int i = 0; i < systemPermissions.size(); i++) {
|
||||||
|
final ArraySet<String> permissions = systemPermissions.valueAt(i);
|
||||||
|
if (permissions != null && permissions.contains(permissionName)) {
|
||||||
|
uids.add(systemPermissions.keyAt(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return ArrayUtils.convertToIntArray(uids);
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
public SystemConfigService(Context context) {
|
public SystemConfigService(Context context) {
|
||||||
|
|||||||
Reference in New Issue
Block a user