Loading services/core/java/com/android/server/pm/PackageManagerService.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -21009,7 +21009,7 @@ public class PackageManagerService extends IPackageManager.Stub // Disable any carrier apps. We do this very early in boot to prevent the apps from being // Disable any carrier apps. We do this very early in boot to prevent the apps from being // disabled after already being started. // disabled after already being started. CarrierAppUtils.disableCarrierAppsUntilPrivileged(mContext.getOpPackageName(), this, CarrierAppUtils.disableCarrierAppsUntilPrivileged(mContext.getOpPackageName(), this, mContext.getContentResolver(), UserHandle.USER_SYSTEM); UserHandle.USER_SYSTEM, mContext); disableSkuSpecificApps(); disableSkuSpecificApps(); telephony/common/com/android/internal/telephony/CarrierAppUtils.java +17 −8 Original line number Original line Diff line number Diff line Loading @@ -18,16 +18,18 @@ package com.android.internal.telephony; import android.annotation.Nullable; import android.annotation.Nullable; import android.content.ContentResolver; import android.content.ContentResolver; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo; import android.content.pm.IPackageManager; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.content.res.Resources; import android.content.res.Resources; import android.os.RemoteException; import android.os.RemoteException; import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings; import android.util.Log; import android.telephony.TelephonyManager; import android.telephony.TelephonyManager; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.ArraySet; import android.util.ArraySet; import android.util.Log; import com.android.internal.R; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -75,7 +77,7 @@ public final class CarrierAppUtils { */ */ public static synchronized void disableCarrierAppsUntilPrivileged(String callingPackage, public static synchronized void disableCarrierAppsUntilPrivileged(String callingPackage, IPackageManager packageManager, TelephonyManager telephonyManager, IPackageManager packageManager, TelephonyManager telephonyManager, ContentResolver contentResolver, int userId) { int userId, Context context) { if (DEBUG) { if (DEBUG) { Log.d(TAG, "disableCarrierAppsUntilPrivileged"); Log.d(TAG, "disableCarrierAppsUntilPrivileged"); } } Loading @@ -84,6 +86,7 @@ public final class CarrierAppUtils { config.getDisabledUntilUsedPreinstalledCarrierApps(); config.getDisabledUntilUsedPreinstalledCarrierApps(); ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed = ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed = config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps(); config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps(); ContentResolver contentResolver = getContentResolverForUser(context, userId); disableCarrierAppsUntilPrivileged(callingPackage, packageManager, telephonyManager, disableCarrierAppsUntilPrivileged(callingPackage, packageManager, telephonyManager, contentResolver, userId, systemCarrierAppsDisabledUntilUsed, contentResolver, userId, systemCarrierAppsDisabledUntilUsed, systemCarrierAssociatedAppsDisabledUntilUsed); systemCarrierAssociatedAppsDisabledUntilUsed); Loading @@ -101,7 +104,7 @@ public final class CarrierAppUtils { * Manager can kill it, and this can lead to crashes as the app is in an unexpected state. * Manager can kill it, and this can lead to crashes as the app is in an unexpected state. */ */ public static synchronized void disableCarrierAppsUntilPrivileged(String callingPackage, public static synchronized void disableCarrierAppsUntilPrivileged(String callingPackage, IPackageManager packageManager, ContentResolver contentResolver, int userId) { IPackageManager packageManager, int userId, Context context) { if (DEBUG) { if (DEBUG) { Log.d(TAG, "disableCarrierAppsUntilPrivileged"); Log.d(TAG, "disableCarrierAppsUntilPrivileged"); } } Loading @@ -112,15 +115,23 @@ public final class CarrierAppUtils { ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed = ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed = config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps(); config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps(); ContentResolver contentResolver = getContentResolverForUser(context, userId); disableCarrierAppsUntilPrivileged(callingPackage, packageManager, disableCarrierAppsUntilPrivileged(callingPackage, packageManager, null /* telephonyManager */, contentResolver, userId, null /* telephonyManager */, contentResolver, userId, systemCarrierAppsDisabledUntilUsed, systemCarrierAssociatedAppsDisabledUntilUsed); systemCarrierAppsDisabledUntilUsed, systemCarrierAssociatedAppsDisabledUntilUsed); } } private static ContentResolver getContentResolverForUser(Context context, int userId) { Context userContext = context.createContextAsUser(UserHandle.getUserHandleForUid(userId), 0); return userContext.getContentResolver(); } /** /** * Disable carrier apps until they are privileged * Disable carrier apps until they are privileged * Must be public b/c framework unit tests can't access package-private methods. * Must be public b/c framework unit tests can't access package-private methods. */ */ // Must be public b/c framework unit tests can't access package-private methods. @VisibleForTesting @VisibleForTesting public static void disableCarrierAppsUntilPrivileged(String callingPackage, public static void disableCarrierAppsUntilPrivileged(String callingPackage, IPackageManager packageManager, @Nullable TelephonyManager telephonyManager, IPackageManager packageManager, @Nullable TelephonyManager telephonyManager, Loading @@ -139,9 +150,8 @@ public final class CarrierAppUtils { systemCarrierAssociatedAppsDisabledUntilUsed); systemCarrierAssociatedAppsDisabledUntilUsed); List<String> enabledCarrierPackages = new ArrayList<>(); List<String> enabledCarrierPackages = new ArrayList<>(); boolean hasRunOnce = Settings.Secure.getInt(contentResolver, boolean hasRunOnce = Settings.Secure.getIntForUser( Settings.Secure.CARRIER_APPS_HANDLED, 0) == 1; contentResolver, Settings.Secure.CARRIER_APPS_HANDLED, 0, userId) == 1; try { try { for (ApplicationInfo ai : candidates) { for (ApplicationInfo ai : candidates) { Loading Loading @@ -256,8 +266,7 @@ public final class CarrierAppUtils { // Mark the execution so we do not disable apps again. // Mark the execution so we do not disable apps again. if (!hasRunOnce) { if (!hasRunOnce) { Settings.Secure.putIntForUser( Settings.Secure.putInt(contentResolver, Settings.Secure.CARRIER_APPS_HANDLED, 1); contentResolver, Settings.Secure.CARRIER_APPS_HANDLED, 1, userId); } } if (!enabledCarrierPackages.isEmpty()) { if (!enabledCarrierPackages.isEmpty()) { Loading Loading
services/core/java/com/android/server/pm/PackageManagerService.java +1 −1 Original line number Original line Diff line number Diff line Loading @@ -21009,7 +21009,7 @@ public class PackageManagerService extends IPackageManager.Stub // Disable any carrier apps. We do this very early in boot to prevent the apps from being // Disable any carrier apps. We do this very early in boot to prevent the apps from being // disabled after already being started. // disabled after already being started. CarrierAppUtils.disableCarrierAppsUntilPrivileged(mContext.getOpPackageName(), this, CarrierAppUtils.disableCarrierAppsUntilPrivileged(mContext.getOpPackageName(), this, mContext.getContentResolver(), UserHandle.USER_SYSTEM); UserHandle.USER_SYSTEM, mContext); disableSkuSpecificApps(); disableSkuSpecificApps();
telephony/common/com/android/internal/telephony/CarrierAppUtils.java +17 −8 Original line number Original line Diff line number Diff line Loading @@ -18,16 +18,18 @@ package com.android.internal.telephony; import android.annotation.Nullable; import android.annotation.Nullable; import android.content.ContentResolver; import android.content.ContentResolver; import android.content.Context; import android.content.pm.ApplicationInfo; import android.content.pm.ApplicationInfo; import android.content.pm.IPackageManager; import android.content.pm.IPackageManager; import android.content.pm.PackageManager; import android.content.pm.PackageManager; import android.content.res.Resources; import android.content.res.Resources; import android.os.RemoteException; import android.os.RemoteException; import android.os.UserHandle; import android.provider.Settings; import android.provider.Settings; import android.util.Log; import android.telephony.TelephonyManager; import android.telephony.TelephonyManager; import android.util.ArrayMap; import android.util.ArrayMap; import android.util.ArraySet; import android.util.ArraySet; import android.util.Log; import com.android.internal.R; import com.android.internal.R; import com.android.internal.annotations.VisibleForTesting; import com.android.internal.annotations.VisibleForTesting; Loading Loading @@ -75,7 +77,7 @@ public final class CarrierAppUtils { */ */ public static synchronized void disableCarrierAppsUntilPrivileged(String callingPackage, public static synchronized void disableCarrierAppsUntilPrivileged(String callingPackage, IPackageManager packageManager, TelephonyManager telephonyManager, IPackageManager packageManager, TelephonyManager telephonyManager, ContentResolver contentResolver, int userId) { int userId, Context context) { if (DEBUG) { if (DEBUG) { Log.d(TAG, "disableCarrierAppsUntilPrivileged"); Log.d(TAG, "disableCarrierAppsUntilPrivileged"); } } Loading @@ -84,6 +86,7 @@ public final class CarrierAppUtils { config.getDisabledUntilUsedPreinstalledCarrierApps(); config.getDisabledUntilUsedPreinstalledCarrierApps(); ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed = ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed = config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps(); config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps(); ContentResolver contentResolver = getContentResolverForUser(context, userId); disableCarrierAppsUntilPrivileged(callingPackage, packageManager, telephonyManager, disableCarrierAppsUntilPrivileged(callingPackage, packageManager, telephonyManager, contentResolver, userId, systemCarrierAppsDisabledUntilUsed, contentResolver, userId, systemCarrierAppsDisabledUntilUsed, systemCarrierAssociatedAppsDisabledUntilUsed); systemCarrierAssociatedAppsDisabledUntilUsed); Loading @@ -101,7 +104,7 @@ public final class CarrierAppUtils { * Manager can kill it, and this can lead to crashes as the app is in an unexpected state. * Manager can kill it, and this can lead to crashes as the app is in an unexpected state. */ */ public static synchronized void disableCarrierAppsUntilPrivileged(String callingPackage, public static synchronized void disableCarrierAppsUntilPrivileged(String callingPackage, IPackageManager packageManager, ContentResolver contentResolver, int userId) { IPackageManager packageManager, int userId, Context context) { if (DEBUG) { if (DEBUG) { Log.d(TAG, "disableCarrierAppsUntilPrivileged"); Log.d(TAG, "disableCarrierAppsUntilPrivileged"); } } Loading @@ -112,15 +115,23 @@ public final class CarrierAppUtils { ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed = ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed = config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps(); config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps(); ContentResolver contentResolver = getContentResolverForUser(context, userId); disableCarrierAppsUntilPrivileged(callingPackage, packageManager, disableCarrierAppsUntilPrivileged(callingPackage, packageManager, null /* telephonyManager */, contentResolver, userId, null /* telephonyManager */, contentResolver, userId, systemCarrierAppsDisabledUntilUsed, systemCarrierAssociatedAppsDisabledUntilUsed); systemCarrierAppsDisabledUntilUsed, systemCarrierAssociatedAppsDisabledUntilUsed); } } private static ContentResolver getContentResolverForUser(Context context, int userId) { Context userContext = context.createContextAsUser(UserHandle.getUserHandleForUid(userId), 0); return userContext.getContentResolver(); } /** /** * Disable carrier apps until they are privileged * Disable carrier apps until they are privileged * Must be public b/c framework unit tests can't access package-private methods. * Must be public b/c framework unit tests can't access package-private methods. */ */ // Must be public b/c framework unit tests can't access package-private methods. @VisibleForTesting @VisibleForTesting public static void disableCarrierAppsUntilPrivileged(String callingPackage, public static void disableCarrierAppsUntilPrivileged(String callingPackage, IPackageManager packageManager, @Nullable TelephonyManager telephonyManager, IPackageManager packageManager, @Nullable TelephonyManager telephonyManager, Loading @@ -139,9 +150,8 @@ public final class CarrierAppUtils { systemCarrierAssociatedAppsDisabledUntilUsed); systemCarrierAssociatedAppsDisabledUntilUsed); List<String> enabledCarrierPackages = new ArrayList<>(); List<String> enabledCarrierPackages = new ArrayList<>(); boolean hasRunOnce = Settings.Secure.getInt(contentResolver, boolean hasRunOnce = Settings.Secure.getIntForUser( Settings.Secure.CARRIER_APPS_HANDLED, 0) == 1; contentResolver, Settings.Secure.CARRIER_APPS_HANDLED, 0, userId) == 1; try { try { for (ApplicationInfo ai : candidates) { for (ApplicationInfo ai : candidates) { Loading Loading @@ -256,8 +266,7 @@ public final class CarrierAppUtils { // Mark the execution so we do not disable apps again. // Mark the execution so we do not disable apps again. if (!hasRunOnce) { if (!hasRunOnce) { Settings.Secure.putIntForUser( Settings.Secure.putInt(contentResolver, Settings.Secure.CARRIER_APPS_HANDLED, 1); contentResolver, Settings.Secure.CARRIER_APPS_HANDLED, 1, userId); } } if (!enabledCarrierPackages.isEmpty()) { if (!enabledCarrierPackages.isEmpty()) { Loading