Skip to content
Snippets Groups Projects
Commit 296fea74 authored by Michael Groover's avatar Michael Groover
Browse files

Update the getIccId docs to reflect access requirements

In Android 10 access to device identifiers was limited to apps with
the READ_PRIVILEGED_PHONE_STATE permission, carrier privileges, the
READ_DEVICE_IDENTIFIERS appop set to allow, or those that pass a
device / profile owner check. TelephonyManager#getSimSerialNumber
was guarded behind these new access requirements, but the same value
is still accessible via SubscriptionInfo#getIccId. This change
updates the documentation to reflect that the getIccId will no
longer be accessible if the caller does not meet the new access
requirements.

Bug: 131909991
Test: Builds
Change-Id: I03072c65e1c7101538a7a20541d2ac59a2d213e3
parent ba61f702
No related branches found
No related tags found
No related merge requests found
......@@ -16,8 +16,6 @@
package android.telephony;
import com.android.telephony.Rlog;
import android.annotation.Nullable;
import android.annotation.SystemApi;
import android.compat.annotation.UnsupportedAppUsage;
......@@ -40,6 +38,7 @@ import android.util.DisplayMetrics;
import android.util.Log;
import com.android.internal.telephony.util.TelephonyUtils;
import com.android.telephony.Rlog;
import java.util.ArrayList;
import java.util.Arrays;
......@@ -217,6 +216,20 @@ public class SubscriptionInfo implements Parcelable {
*/
private boolean mAreUiccApplicationsEnabled = true;
/**
* Public copy constructor.
* @hide
*/
public SubscriptionInfo(SubscriptionInfo info) {
this(info.mId, info.mIccId, info.mSimSlotIndex, info.mDisplayName, info.mCarrierName,
info.mNameSource, info.mIconTint, info.mNumber, info.mDataRoaming, info.mIconBitmap,
info.mMcc, info.mMnc, info.mCountryIso, info.mIsEmbedded, info.mNativeAccessRules,
info.mCardString, info.mCardId, info.mIsOpportunistic,
info.mGroupUUID == null ? null : info.mGroupUUID.toString(), info.mIsGroupDisabled,
info.mCarrierId, info.mProfileClass, info.mSubscriptionType, info.mGroupOwner,
info.mCarrierConfigAccessRules, info.mAreUiccApplicationsEnabled);
}
/**
* @hide
*/
......@@ -292,12 +305,26 @@ public class SubscriptionInfo implements Parcelable {
}
/**
* @return the ICC ID.
* Returns the ICC ID 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 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>. Profile
* owner access is deprecated and will be removed in a future release.
*
* @return the ICC ID, or an empty string if one of these requirements is not met
*/
public String getIccId() {
return this.mIccId;
}
/**
* @hide
*/
public void clearIccId() {
this.mIccId = "";
}
/**
* @return the slot index of this Subscription's SIM card.
*/
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment