summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--data/etc/privapp-permissions-platform.xml1
-rw-r--r--telephony/java/android/telephony/SubscriptionInfo.java19
2 files changed, 18 insertions, 2 deletions
diff --git a/data/etc/privapp-permissions-platform.xml b/data/etc/privapp-permissions-platform.xml
index ff4e1005c9d9..364828023305 100644
--- a/data/etc/privapp-permissions-platform.xml
+++ b/data/etc/privapp-permissions-platform.xml
@@ -177,6 +177,7 @@ applications that come with the platform
<permission name="android.permission.GET_ACCOUNTS_PRIVILEGED"/>
<permission name="android.permission.INTERACT_ACROSS_USERS"/>
<permission name="android.permission.MANAGE_USERS"/>
+ <permission name="android.permission.READ_PRIVILEGED_PHONE_STATE"/>
<permission name="android.permission.UPDATE_APP_OPS_STATS"/>
<permission name="android.permission.USE_RESERVED_DISK"/>
</privapp-permissions>
diff --git a/telephony/java/android/telephony/SubscriptionInfo.java b/telephony/java/android/telephony/SubscriptionInfo.java
index 1f560cab13d2..076b4f4fa6e8 100644
--- a/telephony/java/android/telephony/SubscriptionInfo.java
+++ b/telephony/java/android/telephony/SubscriptionInfo.java
@@ -652,8 +652,16 @@ public class SubscriptionInfo implements Parcelable {
}
/**
- * @return the card string of the SIM card which contains the subscription. The card string is
- * the ICCID for UICCs or the EID for eUICCs.
+ * Returns the card string if the calling app has been granted the READ_PRIVILEGED_PHONE_STATE
+ * permission, has carrier privileges (see {@link TelephonyManager#hasCarrierPrivileges}), or
+ * is a device owner or profile owner on an organization owned device that has been granted the
+ * READ_PHONE_STATE permission. The profile owner is an app that owns a managed profile on the
+ * device; for more details see <a href="https://developer.android.com/work/managed-profiles">
+ * Work profiles</a>.
+ *
+ * @return the card string of the SIM card which contains the subscription or an empty string
+ * if these requirements are not met. The card string is the ICCID for UICCs or the EID for
+ * eUICCs.
* @hide
* //TODO rename usages in LPA: UiccSlotUtil.java, UiccSlotsManager.java, UiccSlotInfoTest.java
*/
@@ -662,6 +670,13 @@ public class SubscriptionInfo implements Parcelable {
}
/**
+ * @hide
+ */
+ public void clearCardString() {
+ this.mCardString = "";
+ }
+
+ /**
* Returns the card ID of the SIM card which contains the subscription (see
* {@link UiccCardInfo#getCardId()}.
* @return the cardId