diff options
3 files changed, 13 insertions, 6 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 4d84048fa603..5f4d11360160 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -24334,8 +24334,12 @@ public class PackageManagerService extends IPackageManager.Stub @Override public boolean isPermissionsReviewRequired(String packageName, int userId) { synchronized (mPackages) { - return mPermissionManager.isPermissionsReviewRequired( - mPackages.get(packageName), userId); + final PackageParser.Package pkg = mPackages.get(packageName); + if (pkg == null) { + return false; + } + + return mPermissionManager.isPermissionsReviewRequired(pkg, userId); } } diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java index 4edd9eff7397..e4e0c554a060 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerService.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerService.java @@ -1897,14 +1897,15 @@ public class PermissionManagerService { return Boolean.TRUE == granted; } - private boolean isPermissionsReviewRequired(PackageParser.Package pkg, int userId) { + private boolean isPermissionsReviewRequired(@NonNull PackageParser.Package pkg, + @UserIdInt int userId) { // Permission review applies only to apps not supporting the new permission model. if (pkg.applicationInfo.targetSdkVersion >= Build.VERSION_CODES.M) { return false; } // Legacy apps have the permission and get user consent on launch. - if (pkg == null || pkg.mExtras == null) { + if (pkg.mExtras == null) { return false; } final PackageSetting ps = (PackageSetting) pkg.mExtras; @@ -2952,7 +2953,7 @@ public class PermissionManagerService { PermissionManagerService.this.systemReady(); } @Override - public boolean isPermissionsReviewRequired(Package pkg, int userId) { + public boolean isPermissionsReviewRequired(@NonNull Package pkg, @UserIdInt int userId) { return PermissionManagerService.this.isPermissionsReviewRequired(pkg, userId); } @Override diff --git a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java index 9fb71f44716b..313de3daffa3 100644 --- a/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java +++ b/services/core/java/com/android/server/pm/permission/PermissionManagerServiceInternal.java @@ -18,6 +18,7 @@ package com.android.server.pm.permission; import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.UserIdInt; import android.content.pm.PackageManager; import android.content.pm.PackageManager.PermissionInfoFlags; import android.content.pm.PackageParser; @@ -65,7 +66,8 @@ public abstract class PermissionManagerServiceInternal extends PermissionManager public abstract void systemReady(); - public abstract boolean isPermissionsReviewRequired(PackageParser.Package pkg, int userId); + public abstract boolean isPermissionsReviewRequired(@NonNull PackageParser.Package pkg, + @UserIdInt int userId); public abstract void grantRuntimePermission( @NonNull String permName, @NonNull String packageName, boolean overridePolicy, |