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

Commit f7149f15 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: I8d1ea625ad7e9f7831d803f00dc8cd65290ac82d
parents 57ef6870 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");
    }