From ee192b7412b4e80f649a2c65352b10fc377a7d93 Mon Sep 17 00:00:00 2001 From: Hunter Knepshield Date: Wed, 31 Mar 2021 14:13:29 -0700 Subject: [PATCH] Expose carrier privilege rules certificates as @TestApi. With the updated CTS UICC spec added this year, some SIM-dependent CTS tests will need to do runtime inspection of the certificates available to determine which SIM the test is running with. This information may be used to e.g. selectively enable tests only for newer SIMs if they require the updated hardware. Test: make Test: atest CtsCarrierApiTestCases Bug: 178419755 Change-Id: I34fa7392d58585e9559fef886671c759ed2d66b4 Merged-In: I942d4c0c7c786d7c8b561e5e65773367cefffb31 (cherry picked from commit 5bf8a8436fe9a1b69fabc341a8e7f472641a0990) --- core/api/test-current.txt | 1 + .../java/android/telephony/TelephonyManager.java | 16 ++++++++-------- 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/core/api/test-current.txt b/core/api/test-current.txt index fd6d47e56b520..e8f8f3a1c29d7 100644 --- a/core/api/test-current.txt +++ b/core/api/test-current.txt @@ -1683,6 +1683,7 @@ package android.telephony { public class TelephonyManager { method public int addDevicePolicyOverrideApn(@NonNull android.content.Context, @NonNull android.telephony.data.ApnSetting); method public int getCarrierIdListVersion(); + method @NonNull @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) public java.util.List getCertsFromCarrierPrivilegeAccessRules(); method @NonNull public java.util.List getDevicePolicyOverrideApns(@NonNull android.content.Context); method @RequiresPermission(android.Manifest.permission.READ_PHONE_STATE) public String getLine1AlphaTag(); method public android.util.Pair getRadioHalVersion(); diff --git a/telephony/java/android/telephony/TelephonyManager.java b/telephony/java/android/telephony/TelephonyManager.java index 1cfb1d43eacce..ae6a3e8469506 100644 --- a/telephony/java/android/telephony/TelephonyManager.java +++ b/telephony/java/android/telephony/TelephonyManager.java @@ -11205,26 +11205,26 @@ public class TelephonyManager { } /** - * Return a list of certs in hex string from loaded carrier privileges access rules. + * Return a list of certs as hex strings from loaded carrier privileges access rules. * - * @return a list of certificate in hex string. return {@code null} if there is no certs - * or privilege rules are not loaded yet. - * - *

Requires Permission: - * {@link android.Manifest.permission#READ_PRIVILEGED_PHONE_STATE} + * @return a list of certificates as hex strings, or an empty list if there are no certs or + * privilege rules are not loaded yet. * @hide */ + @TestApi @RequiresPermission(android.Manifest.permission.READ_PRIVILEGED_PHONE_STATE) + @NonNull public List getCertsFromCarrierPrivilegeAccessRules() { + List certs = null; try { ITelephony service = getITelephony(); if (service != null) { - return service.getCertsFromCarrierPrivilegeAccessRules(getSubId()); + certs = service.getCertsFromCarrierPrivilegeAccessRules(getSubId()); } } catch (RemoteException ex) { // This could happen if binder process crashes. } - return null; + return certs == null ? Collections.emptyList() : certs; } /**