Merge "DO NOT MERGE Set app op mode to allowed when granting permissions to reset state." into qt-r1-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
21de89ccc6
@@ -19860,6 +19860,9 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
final AppOpsManager appOpsManager = mContext.getSystemService(AppOpsManager.class);
|
||||||
|
final int uid = UserHandle.getUid(userId, ps.pkg.applicationInfo.uid);
|
||||||
|
|
||||||
final int permissionCount = ps.pkg.requestedPermissions.size();
|
final int permissionCount = ps.pkg.requestedPermissions.size();
|
||||||
for (int i = 0; i < permissionCount; i++) {
|
for (int i = 0; i < permissionCount; i++) {
|
||||||
final String permName = ps.pkg.requestedPermissions.get(i);
|
final String permName = ps.pkg.requestedPermissions.get(i);
|
||||||
@@ -19919,6 +19922,14 @@ public class PackageManagerService extends IPackageManager.Stub
|
|||||||
if ((oldFlags & FLAG_PERMISSION_GRANTED_BY_DEFAULT) != 0) {
|
if ((oldFlags & FLAG_PERMISSION_GRANTED_BY_DEFAULT) != 0) {
|
||||||
mPermissionManager.grantRuntimePermission(permName, packageName, false,
|
mPermissionManager.grantRuntimePermission(permName, packageName, false,
|
||||||
Process.SYSTEM_UID, userId, delayingPermCallback);
|
Process.SYSTEM_UID, userId, delayingPermCallback);
|
||||||
|
// Allow app op later as we are holding mPackages
|
||||||
|
// PermissionPolicyService will handle the app op for foreground/background
|
||||||
|
// permissions.
|
||||||
|
String appOp = AppOpsManager.permissionToOp(permName);
|
||||||
|
if (appOp != null) {
|
||||||
|
mHandler.post(() -> appOpsManager.setUidMode(appOp, uid,
|
||||||
|
AppOpsManager.MODE_ALLOWED));
|
||||||
|
}
|
||||||
// If permission review is enabled the permissions for a legacy apps
|
// If permission review is enabled the permissions for a legacy apps
|
||||||
// are represented as constantly granted runtime ones, so don't revoke.
|
// are represented as constantly granted runtime ones, so don't revoke.
|
||||||
} else if ((flags & FLAG_PERMISSION_REVIEW_REQUIRED) == 0) {
|
} else if ((flags & FLAG_PERMISSION_REVIEW_REQUIRED) == 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user