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

Commit 824dad18 authored by Peter Wang's avatar Peter Wang
Browse files

Restrict access to the resolution PendingIntent created by

EuiccController to EuiccResolutionUiDispatcherActivity

Bug: 156097472
Bug: 155094269
Bug: 158014355
Fix: 156097472
Fix: 158014355
Test: Local, with jpd@'s PoC app
Change-Id: I76a9eb55d8321ea695594693580be468522e4de8
Merged-In: I76a9eb55d8321ea695594693580be468522e4de8
parent 0ea366ae
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.annotation.NonNull;
import android.annotation.Nullable;
import android.app.AppOpsManager;
import android.app.PendingIntent;
import android.content.ComponentName;
import android.content.Context;
import android.content.Intent;
import android.content.pm.ComponentInfo;
@@ -84,6 +85,11 @@ public class EuiccController extends IEuiccController.Stub {
    private static final String EXTRA_EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTION =
            EuiccManager.EXTRA_EMBEDDED_SUBSCRIPTION_DOWNLOADABLE_SUBSCRIPTION;

    /** Restrictions limiting access to the PendingIntent */
    private static final String RESOLUTION_ACTIVITY_PACKAGE_NAME = "com.android.phone";
    private static final String RESOLUTION_ACTIVITY_CLASS_NAME =
            "com.android.phone.euicc.EuiccResolutionUiDispatcherActivity";

    private static EuiccController sInstance;

    private final Context mContext;
@@ -1255,6 +1261,9 @@ public class EuiccController extends IEuiccController.Stub {
            String callingPackage, int resolvableErrors, boolean confirmationCodeRetried,
            EuiccOperation op, int cardId) {
        Intent intent = new Intent(EuiccManager.ACTION_RESOLVE_ERROR);
        intent.setPackage(RESOLUTION_ACTIVITY_PACKAGE_NAME);
        intent.setComponent(new ComponentName(
                        RESOLUTION_ACTIVITY_PACKAGE_NAME, RESOLUTION_ACTIVITY_CLASS_NAME));
        intent.putExtra(EuiccManager.EXTRA_EMBEDDED_SUBSCRIPTION_RESOLUTION_ACTION,
                resolutionAction);
        intent.putExtra(EuiccService.EXTRA_RESOLUTION_CALLING_PACKAGE, callingPackage);