Loading src/java/com/android/internal/telephony/CarrierPrivilegesTracker.java +13 −9 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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; Loading Loading @@ -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 Loading tests/telephonytests/src/com/android/internal/telephony/CarrierPrivilegesTrackerTest.java +2 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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))) Loading Loading @@ -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); Loading Loading
src/java/com/android/internal/telephony/CarrierPrivilegesTracker.java +13 −9 Original line number Diff line number Diff line Loading @@ -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. Loading Loading @@ -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; Loading Loading @@ -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 Loading
tests/telephonytests/src/com/android/internal/telephony/CarrierPrivilegesTrackerTest.java +2 −3 Original line number Diff line number Diff line Loading @@ -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; Loading Loading @@ -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))) Loading Loading @@ -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); Loading