Add method to clear out SubscriptionInfo#getCardString
In Androird 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 as the cardString from the SubscriptionInfo. While getCardString is a hidden API SubscriptionInfo#toString can be used to obtain this value. Bug: 152057778 Bug: 173421434 Test: atest SubscriptionControllerTest Change-Id: I9b8786a321b1ba79d81b74c3041589f30df8e9c8 Merged-In: I9b8786a321b1ba79d81b74c3041589f30df8e9c8
This commit is contained in:
@@ -38,8 +38,6 @@ import android.text.TextUtils;
|
||||
import android.util.DisplayMetrics;
|
||||
import android.util.Log;
|
||||
|
||||
import com.android.telephony.Rlog;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
@@ -629,8 +627,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
|
||||
*/
|
||||
@@ -638,6 +644,13 @@ public class SubscriptionInfo implements Parcelable {
|
||||
return this.mCardString;
|
||||
}
|
||||
|
||||
/**
|
||||
* @hide
|
||||
*/
|
||||
public void clearCardString() {
|
||||
this.mCardString = "";
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the card ID of the SIM card which contains the subscription (see
|
||||
* {@link UiccCardInfo#getCardId()}.
|
||||
|
||||
Reference in New Issue
Block a user