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

Commit f99ccbba authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Add check for cross user permission" into rvc-dev am: c12e6914

Change-Id: I9d4ef37562be2558e8cc2a88ff190ae05fdeed74
parents c7f72430 c12e6914
Loading
Loading
Loading
Loading
+15 −2
Original line number Diff line number Diff line
@@ -4420,6 +4420,11 @@ public class PackageManagerService extends IPackageManager.Stub
        if (getInstantAppPackageName(callingUid) != null) {
            throw new SecurityException("Instant applications don't have access to this method");
        }
        if (!mUserManager.exists(userId)) {
            throw new SecurityException("User doesn't exist");
        }
        mPermissionManager.enforceCrossUserPermission(
                callingUid, userId, false, false, "checkPackageStartable");
        final boolean userKeyUnlocked = StorageManager.isUserKeyUnlocked(userId);
        synchronized (mLock) {
            final PackageSetting ps = mSettings.mPackages.get(packageName);
@@ -5777,9 +5782,15 @@ public class PackageManagerService extends IPackageManager.Stub
    @Override
    public ChangedPackages getChangedPackages(int sequenceNumber, int userId) {
        if (getInstantAppPackageName(Binder.getCallingUid()) != null) {
        final int callingUid = Binder.getCallingUid();
        if (getInstantAppPackageName(callingUid) != null) {
            return null;
        }
        if (!mUserManager.exists(userId)) {
            return null;
        }
        mPermissionManager.enforceCrossUserPermission(
                callingUid, userId, false, false, "getChangedPackages");
        synchronized (mLock) {
            if (sequenceNumber >= mChangedPackagesSequenceNumber) {
                return null;
@@ -8772,8 +8783,10 @@ public class PackageManagerService extends IPackageManager.Stub
    private ProviderInfo resolveContentProviderInternal(String name, int flags, int userId) {
        if (!mUserManager.exists(userId)) return null;
        flags = updateFlagsForComponent(flags, userId);
        final int callingUid = Binder.getCallingUid();
        mPermissionManager.enforceCrossUserPermission(
                callingUid, userId, false, false, "resolveContentProvider");
        flags = updateFlagsForComponent(flags, userId);
        final ProviderInfo providerInfo = mComponentResolver.queryProvider(name, flags, userId);
        if (providerInfo == null) {
            return null;