Merge "Revert "Check permissions only against packagesettings"" into pi-dev

This commit is contained in:
TreeHugger Robot
2018-04-11 16:05:39 +00:00
committed by Android (Google) Code Review
3 changed files with 7 additions and 17 deletions

View File

@@ -520,11 +520,6 @@ public abstract class PackageManagerInternal {
*/
public abstract @Nullable PackageParser.Package getPackage(@NonNull String packageName);
/**
* Returns a {@link com.android.server.pm.PackageSetting} for a given package name.
*/
public abstract @Nullable Object getPackageSetting(String packageName);
/**
* Returns a list without a change observer.
*

View File

@@ -5304,7 +5304,7 @@ public class PackageManagerService extends IPackageManager.Stub
synchronized (mPackages) {
final String[] packageNames = getPackagesForUid(uid);
final PackageParser.Package pkg = (packageNames != null && packageNames.length > 0)
? mSettings.getPackageLPr(packageNames[0]).getPackage()
? mPackages.get(packageNames[0])
: null;
return mPermissionManager.checkUidPermission(permName, pkg, uid, getCallingUid());
}
@@ -8070,6 +8070,7 @@ public class PackageManagerService extends IPackageManager.Stub
callingUid = mIsolatedOwners.get(callingUid);
}
final PackageSetting ps = mSettings.mPackages.get(packageName);
PackageParser.Package pkg = mPackages.get(packageName);
final boolean returnAllowed =
ps != null
&& (isCallerSameApp(packageName, callingUid)
@@ -8140,7 +8141,7 @@ public class PackageManagerService extends IPackageManager.Stub
}
private boolean isCallerSameApp(String packageName, int uid) {
PackageParser.Package pkg = mSettings.getPackageLPr(packageName).getPackage();
PackageParser.Package pkg = mPackages.get(packageName);
return pkg != null
&& UserHandle.getAppId(uid) == pkg.applicationInfo.uid;
}
@@ -23596,13 +23597,6 @@ Slog.v(TAG, ":: stepped forward, applying functor at tag " + parser.getName());
}
}
@Override
public Object getPackageSetting(String packageName) {
synchronized (mPackages) {
return mSettings.getPackageLPr(packageName);
}
}
@Override
public PackageList getPackageList(PackageListObserver observer) {
synchronized (mPackages) {

View File

@@ -212,11 +212,12 @@ public class PermissionManagerService {
return PackageManager.PERMISSION_DENIED;
}
final PackageSetting ps = (PackageSetting) mPackageManagerInt.getPackageSetting(pkgName);
if (ps != null && ps.getPackage() != null) {
if (mPackageManagerInt.filterAppAccess(ps.getPackage(), callingUid, userId)) {
final PackageParser.Package pkg = mPackageManagerInt.getPackage(pkgName);
if (pkg != null && pkg.mExtras != null) {
if (mPackageManagerInt.filterAppAccess(pkg, callingUid, userId)) {
return PackageManager.PERMISSION_DENIED;
}
final PackageSetting ps = (PackageSetting) pkg.mExtras;
final boolean instantApp = ps.getInstantApp(userId);
final PermissionsState permissionsState = ps.getPermissionsState();
if (permissionsState.hasPermission(permName, userId)) {