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

Commit 6536ba23 authored by Rambo Wang's avatar Rambo Wang Committed by Automerger Merge Worker
Browse files

Merge "CPT: always use same PackageManager flags to query installed packages"...

Merge "CPT: always use same PackageManager flags to query installed packages" into tm-dev am: 435bcfb0

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/opt/telephony/+/18334112



Change-Id: Ida0ab08fcbee7d45738f451c5808d419a63f63ad
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents c617e8e8 435bcfb0
Loading
Loading
Loading
Loading
+13 −9
Original line number Diff line number Diff line
@@ -112,6 +112,17 @@ public class CarrierPrivilegesTracker extends Handler {
     */
    private static final long CLEAR_UICC_RULES_DELAY_MILLIS = TimeUnit.SECONDS.toMillis(30);

    /**
     * PackageManager flags used to query installed packages.
     * Include DISABLED_UNTIL_USED components. This facilitates cases where a carrier app
     * is disabled by default, and some other component wants to enable it when it has
     * gained carrier privileges (as an indication that a matching SIM has been inserted).
     */
    private static final int INSTALLED_PACKAGES_QUERY_FLAGS =
            PackageManager.GET_SIGNING_CERTIFICATES
                    | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
                    | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS;

    /**
     * Action to register a Registrant with this Tracker.
     * obj: Registrant that will be notified of Carrier Privileged UID changes.
@@ -552,7 +563,7 @@ public class CarrierPrivilegesTracker extends Handler {

        PackageInfo pkg;
        try {
            pkg = mPackageManager.getPackageInfo(pkgName, PackageManager.GET_SIGNING_CERTIFICATES);
            pkg = mPackageManager.getPackageInfo(pkgName, INSTALLED_PACKAGES_QUERY_FLAGS);
        } catch (NameNotFoundException e) {
            Rlog.e(TAG, "Error getting installed package: " + pkgName, e);
            return;
@@ -624,16 +635,9 @@ public class CarrierPrivilegesTracker extends Handler {
    }

    private void refreshInstalledPackageCache() {
        // Include DISABLED_UNTIL_USED components. This facilitates cases where a carrier app
        // is disabled by default, and some other component wants to enable it when it has
        // gained carrier privileges (as an indication that a matching SIM has been inserted).
        int flags =
                PackageManager.GET_SIGNING_CERTIFICATES
                        | PackageManager.MATCH_DISABLED_UNTIL_USED_COMPONENTS
                        | PackageManager.MATCH_HIDDEN_UNTIL_INSTALLED_COMPONENTS;
        List<PackageInfo> installedPackages =
                mPackageManager.getInstalledPackagesAsUser(
                        flags, UserHandle.SYSTEM.getIdentifier());
                        INSTALLED_PACKAGES_QUERY_FLAGS, UserHandle.SYSTEM.getIdentifier());
        for (PackageInfo pkg : installedPackages) {
            updateCertsForPackage(pkg);
            // This may be unnecessary before initialization, but invalidate the cache all the time
+2 −3
Original line number Diff line number Diff line
@@ -16,7 +16,6 @@

package com.android.internal.telephony;

import static android.content.pm.PackageManager.GET_SIGNING_CERTIFICATES;
import static android.os.UserHandle.SYSTEM;
import static android.telephony.CarrierConfigManager.EXTRA_SLOT_INDEX;
import static android.telephony.CarrierConfigManager.EXTRA_SUBSCRIPTION_INDEX;
@@ -200,7 +199,7 @@ public class CarrierPrivilegesTrackerTest extends TelephonyTest {
            pkg.signatures = new Signature[] {new Signature(pkgCertInfo.cert)};

            when(mPackageManager.getPackageInfo(
                    eq(pkgCertInfo.pkgName), eq(GET_SIGNING_CERTIFICATES)))
                    eq(pkgCertInfo.pkgName), eq(PM_FLAGS)))
                    .thenReturn(pkg);
            when(mPackageManager.getPackageUidAsUser(
                    eq(pkgCertInfo.pkgName), eq(pkgCertInfo.userInfo.id)))
@@ -814,7 +813,7 @@ public class CarrierPrivilegesTrackerTest extends TelephonyTest {
        // Update PACKAGE_1 to have no signatures
        PackageInfo pkg = new PackageInfo();
        pkg.packageName = PACKAGE_1;
        when(mPackageManager.getPackageInfo(eq(PACKAGE_1), eq(GET_SIGNING_CERTIFICATES)))
        when(mPackageManager.getPackageInfo(eq(PACKAGE_1), eq(PM_FLAGS)))
                .thenReturn(pkg);

        sendPackageChangedIntent(Intent.ACTION_PACKAGE_ADDED, PACKAGE_1);