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

Commit d7159daf authored by Karuna Wadhera's avatar Karuna Wadhera
Browse files

Catch UnsupportedOperationException for getMeid

Bug: 341254535
Test: treehugger
Change-Id: I8544528a074cf7b871b77e9400aa1689ce68f90a
parent c59652fd
Loading
Loading
Loading
Loading
+10 −1
Original line number Original line Diff line number Diff line
@@ -20,6 +20,7 @@ import static android.security.keystore2.AndroidKeyStoreCipherSpiBase.DEFAULT_MG


import android.annotation.NonNull;
import android.annotation.NonNull;
import android.annotation.Nullable;
import android.annotation.Nullable;
import android.annotation.RequiresPermission;
import android.content.Context;
import android.content.Context;
import android.hardware.security.keymint.EcCurve;
import android.hardware.security.keymint.EcCurve;
import android.hardware.security.keymint.KeyParameter;
import android.hardware.security.keymint.KeyParameter;
@@ -732,6 +733,8 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato
        }
        }
    }
    }


    @RequiresPermission(value = android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE,
            conditional = true)
    private void addAttestationParameters(@NonNull List<KeyParameter> params)
    private void addAttestationParameters(@NonNull List<KeyParameter> params)
            throws ProviderException, IllegalArgumentException, DeviceIdAttestationException {
            throws ProviderException, IllegalArgumentException, DeviceIdAttestationException {
        byte[] challenge = mSpec.getAttestationChallenge();
        byte[] challenge = mSpec.getAttestationChallenge();
@@ -824,7 +827,13 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato
                        break;
                        break;
                    }
                    }
                    case AttestationUtils.ID_TYPE_MEID: {
                    case AttestationUtils.ID_TYPE_MEID: {
                        final String meid = telephonyService.getMeid(0);
                        String meid;
                        try {
                            meid = telephonyService.getMeid(0);
                        } catch (UnsupportedOperationException e) {
                            Log.e(TAG, "Unable to retrieve MEID", e);
                            meid = null;
                        }
                        if (meid == null) {
                        if (meid == null) {
                            throw new DeviceIdAttestationException("Unable to retrieve MEID");
                            throw new DeviceIdAttestationException("Unable to retrieve MEID");
                        }
                        }