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

Commit b295cc90 authored by Tom Natan's avatar Tom Natan Committed by Android (Google) Code Review
Browse files

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

parents 881dc456 4d859f35
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");
    }