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

Commit dabfc5a8 authored by Tom Natan's avatar Tom Natan Committed by Automerger Merge Worker
Browse files

Merge "Handle multiple users when adding and rechecking overrides." into sc-dev am: b295cc90

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15080634

Change-Id: I28c36a5d0e8a9b876fc0f4a4f790adf2b65e3c98
parents 70ad1b76 b295cc90
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

package com.android.server.compat;

import static android.content.pm.PackageManager.MATCH_ANY_USER;

import android.annotation.Nullable;
import android.app.compat.ChangeIdStateCache;
import android.app.compat.PackageOverride;
@@ -693,7 +695,7 @@ final class CompatConfig {
    private Long getVersionCodeOrNull(String packageName) {
        try {
            ApplicationInfo applicationInfo = mContext.getPackageManager().getApplicationInfo(
                    packageName, 0);
                    packageName, MATCH_ANY_USER);
            return applicationInfo.longVersionCode;
        } catch (PackageManager.NameNotFoundException e) {
            return null;
+2 −1
Original line number Diff line number Diff line
@@ -17,6 +17,7 @@
package com.android.server.compat;

import static android.Manifest.permission.OVERRIDE_COMPAT_CHANGE_CONFIG_ON_RELEASE_BUILD;
import static android.content.pm.PackageManager.MATCH_ANY_USER;
import static android.content.pm.PackageManager.PERMISSION_GRANTED;

import static com.android.internal.compat.OverrideAllowedState.ALLOWED;
@@ -116,7 +117,7 @@ public class OverrideValidatorImpl extends IOverrideValidator.Stub {
        }
        ApplicationInfo applicationInfo;
        try {
            applicationInfo = packageManager.getApplicationInfo(packageName, 0);
            applicationInfo = packageManager.getApplicationInfo(packageName, MATCH_ANY_USER);
        } catch (NameNotFoundException e) {
            return new OverrideAllowedState(DEFERRED_VERIFICATION, -1, -1);
        }
+6 −5
Original line number Diff line number Diff line
@@ -508,7 +508,8 @@ public class PlatformCompat extends IPlatformCompat.Stub {
        filter.addAction(Intent.ACTION_PACKAGE_REPLACED);
        filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
        filter.addDataScheme("package");
        context.registerReceiver(receiver, filter);
        context.registerReceiverForAllUsers(receiver, filter, /* broadcastPermission= */
                null, /* scheduler= */ null);
    }

    /**
+10 −3
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@

package com.android.tests.gating;

import static android.Manifest.permission.INTERACT_ACROSS_USERS_FULL;
import static android.Manifest.permission.LOG_COMPAT_CHANGE;
import static android.Manifest.permission.OVERRIDE_COMPAT_CHANGE_CONFIG;
import static android.Manifest.permission.READ_COMPAT_CHANGE_CONFIG;
@@ -261,13 +262,15 @@ public final class PlatformCompatPermissionsTest {
    public void clearOverrides_noOverridesPermission_throwsSecurityException()
            throws Throwable {
        thrown.expect(SecurityException.class);
        mUiAutomation.adoptShellPermissionIdentity(INTERACT_ACROSS_USERS_FULL);

        mPlatformCompat.clearOverrides("foo.bar");
    }
    @Test
    public void clearOverrides_overridesPermission_noThrow()
            throws Throwable {
        mUiAutomation.adoptShellPermissionIdentity(OVERRIDE_COMPAT_CHANGE_CONFIG);
        mUiAutomation.adoptShellPermissionIdentity(OVERRIDE_COMPAT_CHANGE_CONFIG,
                INTERACT_ACROSS_USERS_FULL);

        mPlatformCompat.clearOverrides("foo.bar");
    }
@@ -276,13 +279,15 @@ public final class PlatformCompatPermissionsTest {
    public void clearOverridesForTest_noOverridesPermission_throwsSecurityException()
            throws Throwable {
        thrown.expect(SecurityException.class);
        mUiAutomation.adoptShellPermissionIdentity(INTERACT_ACROSS_USERS_FULL);

        mPlatformCompat.clearOverridesForTest("foo.bar");
    }
    @Test
    public void clearOverridesForTest_overridesPermission_noThrow()
            throws Throwable {
        mUiAutomation.adoptShellPermissionIdentity(OVERRIDE_COMPAT_CHANGE_CONFIG);
        mUiAutomation.adoptShellPermissionIdentity(OVERRIDE_COMPAT_CHANGE_CONFIG,
                INTERACT_ACROSS_USERS_FULL);

        mPlatformCompat.clearOverridesForTest("foo.bar");
    }
@@ -291,13 +296,15 @@ public final class PlatformCompatPermissionsTest {
    public void clearOverride_noOverridesPermission_throwsSecurityException()
            throws Throwable {
        thrown.expect(SecurityException.class);
        mUiAutomation.adoptShellPermissionIdentity(INTERACT_ACROSS_USERS_FULL);

        mPlatformCompat.clearOverride(1, "foo.bar");
    }
    @Test
    public void clearOverride_overridesPermission_noThrow()
            throws Throwable {
        mUiAutomation.adoptShellPermissionIdentity(OVERRIDE_COMPAT_CHANGE_CONFIG);
        mUiAutomation.adoptShellPermissionIdentity(OVERRIDE_COMPAT_CHANGE_CONFIG,
                INTERACT_ACROSS_USERS_FULL);

        mPlatformCompat.clearOverride(1, "foo.bar");
    }