Loading services/core/java/com/android/server/pm/permission/PermissionManagerService.java +10 −1 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.AppOpsManager; import android.app.ApplicationPackageManager; import android.app.IActivityManager; import android.content.Context; Loading Loading @@ -1541,6 +1542,7 @@ public class PermissionManagerService extends IPermissionManager.Stub { } }; final AppOpsManager appOpsManager = mContext.getSystemService(AppOpsManager.class); for (int i = 0; i < permissionCount; i++) { final String permName = pkg.requestedPermissions.get(i); final BasePermission bp; Loading Loading @@ -1606,9 +1608,16 @@ public class PermissionManagerService extends IPermissionManager.Stub { // If this permission was granted by default, make sure it is. if ((oldFlags & FLAG_PERMISSION_GRANTED_BY_DEFAULT) != 0) { // PermissionPolicyService will handle the app op for runtime permissions later. grantRuntimePermissionInternal(permName, packageName, false, 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 // are represented as constantly granted runtime ones, so don't revoke. } else if ((flags & FLAG_PERMISSION_REVIEW_REQUIRED) == 0) { Loading services/core/java/com/android/server/policy/PermissionPolicyService.java +3 −2 Original line number Diff line number Diff line Loading @@ -152,7 +152,7 @@ public final class PermissionPolicyService extends SystemService { for (int i = 0; i < numDangerousPerms; i++) { PermissionInfo perm = dangerousPerms.get(i); if (perm.isRuntime()) { if (perm.isRestricted() || perm.backgroundPermission != null) { appOpsService.startWatchingMode(getSwitchOp(perm.name), null, appOpsListener); } if (perm.isSoftRestricted()) { Loading Loading @@ -499,7 +499,8 @@ public final class PermissionPolicyService extends SystemService { private void addPermissionAppOp(@NonNull PackageInfo packageInfo, @NonNull PermissionInfo permissionInfo) { if (!permissionInfo.isRuntime()) { // TODO: Sync all permissions in the future. if (!permissionInfo.isRestricted() && permissionInfo.backgroundPermission == null) { return; } Loading Loading
services/core/java/com/android/server/pm/permission/PermissionManagerService.java +10 −1 Original line number Diff line number Diff line Loading @@ -53,6 +53,7 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.UserIdInt; import android.app.ActivityManager; import android.app.AppOpsManager; import android.app.ApplicationPackageManager; import android.app.IActivityManager; import android.content.Context; Loading Loading @@ -1541,6 +1542,7 @@ public class PermissionManagerService extends IPermissionManager.Stub { } }; final AppOpsManager appOpsManager = mContext.getSystemService(AppOpsManager.class); for (int i = 0; i < permissionCount; i++) { final String permName = pkg.requestedPermissions.get(i); final BasePermission bp; Loading Loading @@ -1606,9 +1608,16 @@ public class PermissionManagerService extends IPermissionManager.Stub { // If this permission was granted by default, make sure it is. if ((oldFlags & FLAG_PERMISSION_GRANTED_BY_DEFAULT) != 0) { // PermissionPolicyService will handle the app op for runtime permissions later. grantRuntimePermissionInternal(permName, packageName, false, 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 // are represented as constantly granted runtime ones, so don't revoke. } else if ((flags & FLAG_PERMISSION_REVIEW_REQUIRED) == 0) { Loading
services/core/java/com/android/server/policy/PermissionPolicyService.java +3 −2 Original line number Diff line number Diff line Loading @@ -152,7 +152,7 @@ public final class PermissionPolicyService extends SystemService { for (int i = 0; i < numDangerousPerms; i++) { PermissionInfo perm = dangerousPerms.get(i); if (perm.isRuntime()) { if (perm.isRestricted() || perm.backgroundPermission != null) { appOpsService.startWatchingMode(getSwitchOp(perm.name), null, appOpsListener); } if (perm.isSoftRestricted()) { Loading Loading @@ -499,7 +499,8 @@ public final class PermissionPolicyService extends SystemService { private void addPermissionAppOp(@NonNull PackageInfo packageInfo, @NonNull PermissionInfo permissionInfo) { if (!permissionInfo.isRuntime()) { // TODO: Sync all permissions in the future. if (!permissionInfo.isRestricted() && permissionInfo.backgroundPermission == null) { return; } Loading