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

Commit 30ef2122 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "Move providers to permission manager"

parents 8857a6d2 bd24d794
Loading
Loading
Loading
Loading
+12 −6
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ import android.Manifest;
import android.annotation.Nullable;
import android.annotation.UnsupportedAppUsage;
import android.app.ActivityManager;
import android.app.AppGlobals;
import android.app.UserSwitchObserver;
import android.content.ContentResolver;
import android.content.ContentValues;
@@ -36,6 +37,7 @@ import android.os.ParcelUuid;
import android.os.PersistableBundle;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.permission.IPermissionManager;
import android.preference.PreferenceManager;
import android.provider.Settings;
import android.provider.Settings.Global;
@@ -112,6 +114,7 @@ public class SubscriptionInfoUpdater extends Handler {
    private EuiccManager mEuiccManager;
    @UnsupportedAppUsage
    private IPackageManager mPackageManager;
    private IPermissionManager mPermissionManager;
    private Handler mBackgroundHandler;

    // The current foreground user ID.
@@ -137,12 +140,14 @@ public class SubscriptionInfoUpdater extends Handler {
    public SubscriptionInfoUpdater(
            Looper looper, Context context, Phone[] phone, CommandsInterface[] ci) {
        this(looper, context, phone, ci,
                IPackageManager.Stub.asInterface(ServiceManager.getService("package")));
                IPackageManager.Stub.asInterface(ServiceManager.getService("package")),
                AppGlobals.getPermissionManager());
    }

    @VisibleForTesting public SubscriptionInfoUpdater(
            Looper looper, Context context, Phone[] phone,
            CommandsInterface[] ci, IPackageManager packageMgr) {
            CommandsInterface[] ci, IPackageManager packageMgr,
            IPermissionManager permissionMgr) {
        logd("Constructor invoked");
        mBackgroundHandler = new Handler(looper);

@@ -151,6 +156,7 @@ public class SubscriptionInfoUpdater extends Handler {
        mSubscriptionManager = SubscriptionManager.from(mContext);
        mEuiccManager = (EuiccManager) mContext.getSystemService(Context.EUICC_SERVICE);
        mPackageManager = packageMgr;
        mPermissionManager = permissionMgr;

        mCarrierServiceBindHelper = new CarrierServiceBindHelper(mContext);
        initializeCarrierApps();
@@ -169,7 +175,7 @@ public class SubscriptionInfoUpdater extends Handler {
                        throws RemoteException {
                    mCurrentlyActiveUserId = newUserId;
                    CarrierAppUtils.disableCarrierAppsUntilPrivileged(mContext.getOpPackageName(),
                            mPackageManager, TelephonyManager.getDefault(),
                            mPackageManager, mPermissionManager, TelephonyManager.getDefault(),
                            mContext.getContentResolver(), mCurrentlyActiveUserId);

                    if (reply != null) {
@@ -185,8 +191,8 @@ public class SubscriptionInfoUpdater extends Handler {
            logd("Couldn't get current user ID; guessing it's 0: " + e.getMessage());
        }
        CarrierAppUtils.disableCarrierAppsUntilPrivileged(mContext.getOpPackageName(),
                mPackageManager, TelephonyManager.getDefault(), mContext.getContentResolver(),
                mCurrentlyActiveUserId);
                mPackageManager, mPermissionManager, TelephonyManager.getDefault(),
                mContext.getContentResolver(), mCurrentlyActiveUserId);
    }

    /**
@@ -537,7 +543,7 @@ public class SubscriptionInfoUpdater extends Handler {

        // Update set of enabled carrier apps now that the privilege rules may have changed.
        CarrierAppUtils.disableCarrierAppsUntilPrivileged(mContext.getOpPackageName(),
                mPackageManager, TelephonyManager.getDefault(),
                mPackageManager, mPermissionManager, TelephonyManager.getDefault(),
                mContext.getContentResolver(), mCurrentlyActiveUserId);

        /**
+9 −5
Original line number Diff line number Diff line
@@ -24,7 +24,6 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.content.ServiceConnection;
import android.content.pm.IPackageManager;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.LinkProperties;
@@ -37,6 +36,7 @@ import android.os.RegistrantList;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.permission.IPermissionManager;
import android.telephony.AccessNetworkConstants;
import android.telephony.AccessNetworkConstants.TransportType;
import android.telephony.CarrierConfigManager;
@@ -74,7 +74,7 @@ public class DataServiceManager extends Handler {

    private final CarrierConfigManager mCarrierConfigManager;
    private final AppOpsManager mAppOps;
    private final IPackageManager mPackageManager;
    private final IPermissionManager mPermissionManager;

    private final int mTransportType;

@@ -122,7 +122,7 @@ public class DataServiceManager extends Handler {
    private void grantPermissionsToService(String packageName) {
        final String[] pkgToGrant = {packageName};
        try {
            mPackageManager.grantDefaultPermissionsToEnabledTelephonyDataServices(
            mPermissionManager.grantDefaultPermissionsToEnabledTelephonyDataServices(
                    pkgToGrant, mPhone.getContext().getUserId());
            mAppOps.setMode(AppOpsManager.OP_MANAGE_IPSEC_TUNNELS, mPhone.getContext().getUserId(),
                    pkgToGrant[0], AppOpsManager.MODE_ALLOWED);
@@ -146,7 +146,7 @@ public class DataServiceManager extends Handler {
        try {
            String[] dataServicesArray = new String[dataServices.size()];
            dataServices.toArray(dataServicesArray);
            mPackageManager.revokeDefaultPermissionsFromDisabledTelephonyDataServices(
            mPermissionManager.revokeDefaultPermissionsFromDisabledTelephonyDataServices(
                    dataServicesArray, mPhone.getContext().getUserId());
            for (String pkg : dataServices) {
                mAppOps.setMode(AppOpsManager.OP_MANAGE_IPSEC_TUNNELS,
@@ -258,7 +258,11 @@ public class DataServiceManager extends Handler {
        mBound = false;
        mCarrierConfigManager = (CarrierConfigManager) phone.getContext().getSystemService(
                Context.CARRIER_CONFIG_SERVICE);
        mPackageManager = IPackageManager.Stub.asInterface(ServiceManager.getService("package"));
        // NOTE: Do NOT use AppGlobals to retrieve the permission manager; AppGlobals
        // caches the service instance, but we need to explicitly request a new service
        // so it can be mocked out for tests
        mPermissionManager =
                IPermissionManager.Stub.asInterface(ServiceManager.getService("permissionmgr"));
        mAppOps = (AppOpsManager) phone.getContext().getSystemService(Context.APP_OPS_SERVICE);

        IntentFilter intentFilter = new IntentFilter();
+8 −8
Original line number Diff line number Diff line
@@ -16,17 +16,17 @@

package com.android.internal.telephony.ims;

import android.app.AppGlobals;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.ServiceConnection;
import android.content.pm.IPackageManager;
import android.os.Handler;
import android.os.HandlerThread;
import android.os.IBinder;
import android.os.IInterface;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.permission.IPermissionManager;
import android.telephony.ims.ImsService;
import android.telephony.ims.aidl.IImsConfig;
import android.telephony.ims.aidl.IImsMmTelFeature;
@@ -176,7 +176,7 @@ public class ImsServiceController {
    private static final int REBIND_MAXIMUM_DELAY_MS = 60 * 1000; // 1 minute
    private final ComponentName mComponentName;
    private final HandlerThread mHandlerThread = new HandlerThread("ImsServiceControllerHandler");
    private final IPackageManager mPackageManager;
    private final IPermissionManager mPermissionManager;
    private ImsServiceControllerCallbacks mCallbacks;
    private ExponentialBackoff mBackoff;

@@ -298,7 +298,7 @@ public class ImsServiceController {
                2, /* multiplier */
                mHandlerThread.getLooper(),
                mRestartImsServiceRunnable);
        mPackageManager = IPackageManager.Stub.asInterface(ServiceManager.getService("package"));
        mPermissionManager = AppGlobals.getPermissionManager();
    }

    @VisibleForTesting
@@ -315,7 +315,7 @@ public class ImsServiceController {
                2, /* multiplier */
                handler,
                mRestartImsServiceRunnable);
        mPackageManager = null;
        mPermissionManager = null;
    }

    /**
@@ -584,14 +584,14 @@ public class ImsServiceController {
        mBackoff.start();
    }

    // Grant runtime permissions to ImsService. PackageManager ensures that the ImsService is
    // Grant runtime permissions to ImsService. PermissionManager ensures that the ImsService is
    // system/signed before granting permissions.
    private void grantPermissionsToService() {
        Log.i(LOG_TAG, "Granting Runtime permissions to:" + getComponentName());
        String[] pkgToGrant = {mComponentName.getPackageName()};
        try {
            if (mPackageManager != null) {
                mPackageManager.grantDefaultPermissionsToEnabledImsServices(pkgToGrant,
            if (mPermissionManager != null) {
                mPermissionManager.grantDefaultPermissionsToEnabledImsServices(pkgToGrant,
                        mContext.getUserId());
            }
        } catch (RemoteException e) {
+74 −55

File changed.

Preview size limit exceeded, changes collapsed.

+5 −1
Original line number Diff line number Diff line
@@ -42,6 +42,7 @@ import android.net.Uri;
import android.os.HandlerThread;
import android.os.ParcelUuid;
import android.os.PersistableBundle;
import android.permission.IPermissionManager;
import android.service.euicc.EuiccProfileInfo;
import android.service.euicc.EuiccService;
import android.service.euicc.GetEuiccProfileInfoListResult;
@@ -99,6 +100,8 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest {
    @Mock
    private IPackageManager mPackageManager;
    @Mock
    private IPermissionManager mPermissionManager;
    @Mock
    private UiccSlot mUiccSlot;

    /*Custom ContentProvider */
@@ -118,7 +121,8 @@ public class SubscriptionInfoUpdaterTest extends TelephonyTest {
        @Override
        public void onLooperPrepared() {
            mUpdater = new SubscriptionInfoUpdater(getLooper(), mContext, new Phone[]{mPhone},
                    new CommandsInterface[]{mSimulatedCommands}, mPackageManager);
                    new CommandsInterface[]{mSimulatedCommands}, mPackageManager,
                    mPermissionManager);
            setReady(true);
        }
    }
Loading