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

Commit b46d6711 authored by Sooraj Sasindran's avatar Sooraj Sasindran
Browse files

Do not use hidden putIntForUser

Do not use hidden

Secure;->getIntForUser
Secure;->putIntForUser

Bug: 146354533
Test: unit test

com.android.frameworks.telephonytests (25 Tests)
[1/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_EmptyList: PASSED (379ms)
[2/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_HasPrivileges_Associated_Default: PASSED (77ms)
[3/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_HasPrivileges_Associated_DisabledUntilUsed: PASSED (0ms)
[4/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_HasPrivileges_Disabled: PASSED (26ms)
[5/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_HasPrivileges_DisabledUser: PASSED (25ms)
[6/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_HasPrivileges_Enabled: PASSED (51ms)
[7/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_HasPrivileges_MissingAssociated_Default: PASSED (26ms)
[8/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_HasPrivileges_UpdatedApp: PASSED (26ms)
[9/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_HasPrivileges_UpdatedAssociated_DisabledUntilUsed: PASSED (51ms)
[10/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_MissingApp: PASSED (50ms)
[11/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NoPrivileges_Associated_Default: PASSED (1ms)
[12/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NoPrivileges_Associated_Default_AlreadyRun: PASSED (51ms)
[13/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NoPrivileges_Disabled: PASSED (0ms)
[14/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NoPrivileges_DisabledUntilUsed: PASSED (26ms)
[15/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NoPrivileges_DisabledUser: PASSED (25ms)
[16/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NoPrivileges_Enabled: PASSED (51ms)
[17/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NoPrivileges_EnabledAssociated_Default: PASSED (26ms)
[18/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NoPrivileges_UpdatedApp: PASSED (25ms)
[19/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NonSystemApp: PASSED (26ms)
[20/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NullPrivileges_Default: PASSED (26ms)
[21/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NullPrivileges_Disabled: PASSED (25ms)
[22/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NullPrivileges_DisabledUntilUsed: PASSED (26ms)
[23/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NullPrivileges_DisabledUser: PASSED (25ms)
[24/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NullPrivileges_Enabled: PASSED (26ms)
[25/25] com.android.internal.telephony.CarrierAppUtilsTest#testDisableCarrierAppsUntilPrivileged_NullPrivileges_UpdatedApp: PASSED (26ms)

Change-Id: Ide97d443f759ee60a41ba55096b6f9769c6eea3a
parent 2b00f7fc
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -20108,8 +20108,7 @@ public class PackageManagerService extends IPackageManager.Stub
        // Disable any carrier apps. We do this very early in boot to prevent the apps from being
        // disabled after already being started.
        CarrierAppUtils.disableCarrierAppsUntilPrivileged(mContext.getOpPackageName(), this,
                mPermissionManagerService, mContext.getContentResolver(),
                UserHandle.USER_SYSTEM);
                mPermissionManagerService, UserHandle.USER_SYSTEM, mContext);
        disableSkuSpecificApps();
+17 −8
Original line number Diff line number Diff line
@@ -18,11 +18,13 @@ package com.android.internal.telephony;

import android.annotation.Nullable;
import android.content.ContentResolver;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.res.Resources;
import android.os.RemoteException;
import android.os.UserHandle;
import android.permission.IPermissionManager;
import android.provider.Settings;
import android.telephony.Rlog;
@@ -76,7 +78,7 @@ public final class CarrierAppUtils {
     */
    public static synchronized void disableCarrierAppsUntilPrivileged(String callingPackage,
            IPackageManager packageManager, IPermissionManager permissionManager,
            TelephonyManager telephonyManager, ContentResolver contentResolver, int userId) {
            TelephonyManager telephonyManager, int userId, Context context) {
        if (DEBUG) {
            Rlog.d(TAG, "disableCarrierAppsUntilPrivileged");
        }
@@ -85,6 +87,7 @@ public final class CarrierAppUtils {
                config.getDisabledUntilUsedPreinstalledCarrierApps();
        ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed =
                config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps();
        ContentResolver contentResolver = getContentResolverForUser(context, userId);
        disableCarrierAppsUntilPrivileged(callingPackage, packageManager, permissionManager,
                telephonyManager, contentResolver, userId, systemCarrierAppsDisabledUntilUsed,
                systemCarrierAssociatedAppsDisabledUntilUsed);
@@ -102,8 +105,8 @@ public final class CarrierAppUtils {
     * 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,
            IPackageManager packageManager, IPermissionManager permissionManager,
            ContentResolver contentResolver, int userId) {
            IPackageManager packageManager, IPermissionManager permissionManager, int userId,
            Context context) {
        if (DEBUG) {
            Rlog.d(TAG, "disableCarrierAppsUntilPrivileged");
        }
@@ -114,15 +117,23 @@ public final class CarrierAppUtils {

        ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed =
                config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps();
        ContentResolver contentResolver = getContentResolverForUser(context, userId);
        disableCarrierAppsUntilPrivileged(callingPackage, packageManager, permissionManager,
                null /* telephonyManager */, contentResolver, userId,
                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
     * 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
    public static void disableCarrierAppsUntilPrivileged(String callingPackage,
            IPackageManager packageManager, IPermissionManager permissionManager,
@@ -142,9 +153,8 @@ public final class CarrierAppUtils {
                systemCarrierAssociatedAppsDisabledUntilUsed);

        List<String> enabledCarrierPackages = new ArrayList<>();

        boolean hasRunOnce = Settings.Secure.getIntForUser(
                contentResolver, Settings.Secure.CARRIER_APPS_HANDLED, 0, userId) == 1;
        boolean hasRunOnce = Settings.Secure.getInt(contentResolver,
                Settings.Secure.CARRIER_APPS_HANDLED, 0) == 1;

        try {
            for (ApplicationInfo ai : candidates) {
@@ -259,8 +269,7 @@ public final class CarrierAppUtils {

            // Mark the execution so we do not disable apps again.
            if (!hasRunOnce) {
                Settings.Secure.putIntForUser(
                        contentResolver, Settings.Secure.CARRIER_APPS_HANDLED, 1, userId);
                Settings.Secure.putInt(contentResolver, Settings.Secure.CARRIER_APPS_HANDLED, 1);
            }

            if (!enabledCarrierPackages.isEmpty()) {