Reset any non-runtime permissions with user sensitive
If a package has non-runtime permissions with either of the user sensitive flags set, reset the flags Test: Manual Bug: 152784093 Change-Id: Idc5dc8d9c444e79ca0ba5e8a0504d080b5de7847
This commit is contained in:
@@ -2497,10 +2497,24 @@ public class PermissionManagerService extends IPermissionManager.Stub {
|
||||
synchronized (mLock) {
|
||||
ArraySet<String> newImplicitPermissions = new ArraySet<>();
|
||||
|
||||
// TODO ntmyren: Remove once propagated to droidfood
|
||||
int flagMask = PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_GRANTED
|
||||
| PackageManager.FLAG_PERMISSION_USER_SENSITIVE_WHEN_DENIED;
|
||||
int user = UserHandle.getUserId(pkg.getUid());
|
||||
|
||||
final int N = pkg.getRequestedPermissions().size();
|
||||
for (int i = 0; i < N; i++) {
|
||||
final String permName = pkg.getRequestedPermissions().get(i);
|
||||
final BasePermission bp = mSettings.getPermissionLocked(permName);
|
||||
|
||||
// TODO ntmyren: Remove once propagated to droidfood
|
||||
if (bp != null && !bp.isRuntime()) {
|
||||
PermissionState permState = permissionsState.getInstallPermissionState(bp.name);
|
||||
if (permState == null || (permState.getFlags() & flagMask) != 0) {
|
||||
permissionsState.updatePermissionFlags(bp, user, flagMask, 0);
|
||||
}
|
||||
}
|
||||
|
||||
final boolean appSupportsRuntimePermissions =
|
||||
pkg.getTargetSdkVersion() >= Build.VERSION_CODES.M;
|
||||
String upgradedActivityRecognitionPermission = null;
|
||||
|
||||
Reference in New Issue
Block a user