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

Commit 0126084d 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
Fix: 156097472
Test: Local, with jpd@'s PoC app
Change-Id: I76a9eb55d8321ea695594693580be468522e4de8
Merged-In: I76a9eb55d8321ea695594693580be468522e4de8
parent 3555e5d0
Loading
Loading
Loading
Loading
+9 −0
Original line number Diff line number Diff line
@@ -19,6 +19,7 @@ import android.Manifest;
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.PackageInfo;
@@ -64,6 +65,11 @@ public class EuiccController extends IEuiccController.Stub {
    private static final int ERROR =
            EuiccManager.EMBEDDED_SUBSCRIPTION_RESULT_ERROR;

    /** 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;
@@ -876,6 +882,9 @@ public class EuiccController extends IEuiccController.Stub {
    public void addResolutionIntent(Intent extrasIntent, String resolutionAction,
            String callingPackage, EuiccOperation op) {
        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);