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

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

Merge "Internal version of isChangeEnabled." into rvc-dev am: 6bf0b879 am: 1a31b4c2

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

Change-Id: I28e5b1da8a5368c84ae47e74f4bb2527332c3d0d
parents 5624a766 1a31b4c2
Loading
Loading
Loading
Loading
+7 −0
Original line number Diff line number Diff line
@@ -102,6 +102,13 @@ public class PlatformCompat extends IPlatformCompat.Stub {
    @Override
    public boolean isChangeEnabled(long changeId, ApplicationInfo appInfo) {
        checkCompatChangeReadAndLogPermission();
        return isChangeEnabledInternal(changeId, appInfo);
    }

    /**
     * Internal version of the above method. Does not perform costly permission check.
     */
    public boolean isChangeEnabledInternal(long changeId, ApplicationInfo appInfo) {
        if (mCompatConfig.isChangeEnabled(changeId, appInfo)) {
            reportChange(changeId, appInfo.uid,
                    ChangeReporter.STATE_ENABLED);
+7 −15
Original line number Diff line number Diff line
@@ -32,7 +32,6 @@ import android.content.pm.parsing.component.ParsedInstrumentation;
import android.content.pm.parsing.component.ParsedIntentInfo;
import android.content.pm.parsing.component.ParsedMainComponent;
import android.content.pm.parsing.component.ParsedProvider;
import android.os.Binder;
import android.os.Process;
import android.os.Trace;
import android.os.UserHandle;
@@ -239,21 +238,14 @@ public class AppsFilter {
        }

        private void updateEnabledState(AndroidPackage pkg) {
            final long token = Binder.clearCallingIdentity();
            try {
            // TODO(b/135203078): Do not use toAppInfo
                final boolean enabled =
                        mInjector.getCompatibility().isChangeEnabled(
                                PackageManager.FILTER_APPLICATION_QUERY,
                                pkg.toAppInfoWithoutState());
            final boolean enabled = mInjector.getCompatibility().isChangeEnabledInternal(
                    PackageManager.FILTER_APPLICATION_QUERY, pkg.toAppInfoWithoutState());
            if (enabled) {
                mDisabledPackages.remove(pkg.getPackageName());
            } else {
                mDisabledPackages.add(pkg.getPackageName());
            }
            } finally {
                Binder.restoreCallingIdentity(token);
            }
        }

        @Override
+2 −1
Original line number Diff line number Diff line
@@ -349,7 +349,8 @@ public final class SELinuxMMAC {
        if ((sharedUserSetting != null) && (sharedUserSetting.packages.size() != 0)) {
            return sharedUserSetting.seInfoTargetSdkVersion;
        }
        if (compatibility.isChangeEnabled(SELINUX_LATEST_CHANGES, pkg.toAppInfoWithoutState())) {
        if (compatibility.isChangeEnabledInternal(SELINUX_LATEST_CHANGES,
                pkg.toAppInfoWithoutState())) {
            return android.os.Build.VERSION_CODES.R;
        }

+3 −3
Original line number Diff line number Diff line
@@ -52,7 +52,7 @@ public class SELinuxMMACTest {
    @Test
    public void getSeInfoOptInToLatest() {
        AndroidPackage pkg = makePackage(Build.VERSION_CODES.P);
        when(mMockCompatibility.isChangeEnabled(eq(SELinuxMMAC.SELINUX_LATEST_CHANGES),
        when(mMockCompatibility.isChangeEnabledInternal(eq(SELinuxMMAC.SELINUX_LATEST_CHANGES),
                argThat(argument -> argument.packageName.equals(pkg.getPackageName()))))
                .thenReturn(true);
        assertThat(SELinuxMMAC.getSeInfo(pkg, null, mMockCompatibility),
@@ -62,7 +62,7 @@ public class SELinuxMMACTest {
    @Test
    public void getSeInfoNoOptIn() {
        AndroidPackage pkg = makePackage(Build.VERSION_CODES.P);
        when(mMockCompatibility.isChangeEnabled(eq(SELinuxMMAC.SELINUX_LATEST_CHANGES),
        when(mMockCompatibility.isChangeEnabledInternal(eq(SELinuxMMAC.SELINUX_LATEST_CHANGES),
                argThat(argument -> argument.packageName.equals(pkg.getPackageName()))))
                .thenReturn(false);
        assertThat(SELinuxMMAC.getSeInfo(pkg, null, mMockCompatibility),
@@ -72,7 +72,7 @@ public class SELinuxMMACTest {
    @Test
    public void getSeInfoNoOptInButAlreadyR() {
        AndroidPackage pkg = makePackage(OPT_IN_VERSION);
        when(mMockCompatibility.isChangeEnabled(eq(SELinuxMMAC.SELINUX_LATEST_CHANGES),
        when(mMockCompatibility.isChangeEnabledInternal(eq(SELinuxMMAC.SELINUX_LATEST_CHANGES),
                argThat(argument -> argument.packageName.equals(pkg.getPackageName()))))
                .thenReturn(false);
        assertThat(SELinuxMMAC.getSeInfo(pkg, null, mMockCompatibility),