Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 61aebf6d authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

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

parents 239d9d86 97b9b530
Loading
Loading
Loading
Loading
+0 −5
Original line number Diff line number Diff line
@@ -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.
     *
+3 −9
Original line number Diff line number Diff line
@@ -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) {
+4 −3
Original line number Diff line number Diff line
@@ -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)) {