diff options
author | 2025-01-08 01:44:35 +0000 | |
---|---|---|
committer | 2025-01-14 01:54:51 +0000 | |
commit | d7159daf5d66e3848e0ae9e562dedc873088f682 (patch) | |
tree | 867f61cb7366343c424c217b83f2d20806dd6f04 | |
parent | c59652fd2097ff233df1d078db0fce2954785b77 (diff) |
Catch UnsupportedOperationException for getMeid
Bug: 341254535
Test: treehugger
Change-Id: I8544528a074cf7b871b77e9400aa1689ce68f90a
-rw-r--r-- | keystore/java/android/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi.java | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/keystore/java/android/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi.java b/keystore/java/android/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi.java index e6c652c14c71..5e93f8db9388 100644 --- a/keystore/java/android/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi.java +++ b/keystore/java/android/security/keystore2/AndroidKeyStoreKeyPairGeneratorSpi.java @@ -20,6 +20,7 @@ import static android.security.keystore2.AndroidKeyStoreCipherSpiBase.DEFAULT_MG import android.annotation.NonNull; import android.annotation.Nullable; +import android.annotation.RequiresPermission; import android.content.Context; import android.hardware.security.keymint.EcCurve; 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) throws ProviderException, IllegalArgumentException, DeviceIdAttestationException { byte[] challenge = mSpec.getAttestationChallenge(); @@ -824,7 +827,13 @@ public abstract class AndroidKeyStoreKeyPairGeneratorSpi extends KeyPairGenerato break; } 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) { throw new DeviceIdAttestationException("Unable to retrieve MEID"); } |