Changed permission from READ_PHONE_STATE to READ_BASIC_PHONE_SATE for TM API.
TM#getCarrierRestrictionStatus permissions changes in order to avoid facing the
securityException in case the user disabled the READ_PHONE_STATE.
Flag: EXEMPT bugfix
Bug: 359910900
Test: CTS verified
Change-Id: If5bdd33bcb7f60f4bd92644cf1229decd0c3ed10
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 82e16fa..855ed74 100644
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -9321,11 +9321,17 @@
*/
@Override
public void getCarrierRestrictionStatus(IIntegerConsumer callback, String packageName) {
- enforceReadPermission("getCarrierRestrictionStatus");
-
+ String functionName = "getCarrierRestrictionStatus";
enforceTelephonyFeatureWithException(packageName,
- PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, "getCarrierRestrictionStatus");
-
+ PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION, functionName);
+ try {
+ mApp.enforceCallingOrSelfPermission(
+ android.Manifest.permission.READ_BASIC_PHONE_STATE,
+ functionName);
+ } catch (SecurityException e) {
+ mApp.enforceCallingOrSelfPermission(permission.READ_PHONE_STATE,
+ functionName);
+ }
Set<Integer> carrierIds = validateCallerAndGetCarrierIds(packageName);
if (carrierIds.contains(CarrierAllowListInfo.INVALID_CARRIER_ID)) {
Rlog.e(LOG_TAG, "getCarrierRestrictionStatus: caller is not registered");