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

Commit 05ba9bb3 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)

Merged-In: Ide97d443f759ee60a41ba55096b6f9769c6eea3a
Change-Id: Ide97d443f759ee60a41ba55096b6f9769c6eea3a
parent c834e855
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -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
        // disabled after already being started.
        CarrierAppUtils.disableCarrierAppsUntilPrivileged(mContext.getOpPackageName(), this,
                mContext.getContentResolver(), UserHandle.USER_SYSTEM);
                UserHandle.USER_SYSTEM, mContext);
        disableSkuSpecificApps();
+17 −8
Original line number Diff line number Diff line
@@ -18,16 +18,18 @@ 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.provider.Settings;
import android.util.Log;
import android.telephony.TelephonyManager;
import android.util.ArrayMap;
import android.util.ArraySet;
import android.util.Log;

import com.android.internal.R;
import com.android.internal.annotations.VisibleForTesting;
@@ -75,7 +77,7 @@ public final class CarrierAppUtils {
     */
    public static synchronized void disableCarrierAppsUntilPrivileged(String callingPackage,
            IPackageManager packageManager, TelephonyManager telephonyManager,
            ContentResolver contentResolver, int userId) {
            int userId, Context context) {
        if (DEBUG) {
            Log.d(TAG, "disableCarrierAppsUntilPrivileged");
        }
@@ -84,6 +86,7 @@ public final class CarrierAppUtils {
                config.getDisabledUntilUsedPreinstalledCarrierApps();
        ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed =
                config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps();
        ContentResolver contentResolver = getContentResolverForUser(context, userId);
        disableCarrierAppsUntilPrivileged(callingPackage, packageManager, telephonyManager,
                contentResolver, userId, systemCarrierAppsDisabledUntilUsed,
                systemCarrierAssociatedAppsDisabledUntilUsed);
@@ -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.
     */
    public static synchronized void disableCarrierAppsUntilPrivileged(String callingPackage,
            IPackageManager packageManager, ContentResolver contentResolver, int userId) {
            IPackageManager packageManager, int userId, Context context) {
        if (DEBUG) {
            Log.d(TAG, "disableCarrierAppsUntilPrivileged");
        }
@@ -112,15 +115,23 @@ public final class CarrierAppUtils {

        ArrayMap<String, List<String>> systemCarrierAssociatedAppsDisabledUntilUsed =
                config.getDisabledUntilUsedPreinstalledCarrierAssociatedApps();
        ContentResolver contentResolver = getContentResolverForUser(context, userId);
        disableCarrierAppsUntilPrivileged(callingPackage, packageManager,
                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, @Nullable TelephonyManager telephonyManager,
@@ -139,9 +150,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) {
@@ -256,8 +266,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()) {