Merge "Handle invalid package name in isPermissionsReviewRequired" into qt-dev

This commit is contained in:
TreeHugger Robot
2019-06-17 21:26:57 +00:00
committed by Android (Google) Code Review
3 changed files with 13 additions and 6 deletions

View File

@@ -24334,8 +24334,12 @@ public class PackageManagerService extends IPackageManager.Stub
@Override @Override
public boolean isPermissionsReviewRequired(String packageName, int userId) { public boolean isPermissionsReviewRequired(String packageName, int userId) {
synchronized (mPackages) { synchronized (mPackages) {
return mPermissionManager.isPermissionsReviewRequired( final PackageParser.Package pkg = mPackages.get(packageName);
mPackages.get(packageName), userId); if (pkg == null) {
return false;
}
return mPermissionManager.isPermissionsReviewRequired(pkg, userId);
} }
} }

View File

@@ -1897,14 +1897,15 @@ public class PermissionManagerService {
return Boolean.TRUE == granted; 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. // Permission review applies only to apps not supporting the new permission model.
if (pkg.applicationInfo.targetSdkVersion >= Build.VERSION_CODES.M) { if (pkg.applicationInfo.targetSdkVersion >= Build.VERSION_CODES.M) {
return false; return false;
} }
// Legacy apps have the permission and get user consent on launch. // Legacy apps have the permission and get user consent on launch.
if (pkg == null || pkg.mExtras == null) { if (pkg.mExtras == null) {
return false; return false;
} }
final PackageSetting ps = (PackageSetting) pkg.mExtras; final PackageSetting ps = (PackageSetting) pkg.mExtras;
@@ -2952,7 +2953,7 @@ public class PermissionManagerService {
PermissionManagerService.this.systemReady(); PermissionManagerService.this.systemReady();
} }
@Override @Override
public boolean isPermissionsReviewRequired(Package pkg, int userId) { public boolean isPermissionsReviewRequired(@NonNull Package pkg, @UserIdInt int userId) {
return PermissionManagerService.this.isPermissionsReviewRequired(pkg, userId); return PermissionManagerService.this.isPermissionsReviewRequired(pkg, userId);
} }
@Override @Override

View File

@@ -18,6 +18,7 @@ package com.android.server.pm.permission;
import android.annotation.NonNull; import android.annotation.NonNull;
import android.annotation.Nullable; import android.annotation.Nullable;
import android.annotation.UserIdInt;
import android.content.pm.PackageManager; import android.content.pm.PackageManager;
import android.content.pm.PackageManager.PermissionInfoFlags; import android.content.pm.PackageManager.PermissionInfoFlags;
import android.content.pm.PackageParser; import android.content.pm.PackageParser;
@@ -65,7 +66,8 @@ public abstract class PermissionManagerServiceInternal extends PermissionManager
public abstract void systemReady(); 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( public abstract void grantRuntimePermission(
@NonNull String permName, @NonNull String packageName, boolean overridePolicy, @NonNull String permName, @NonNull String packageName, boolean overridePolicy,