Check CarrierPriviledge for getPhoneAccountHandleForSubscriptionId
Currently getPhoneAccountHandleForSubscriptionId requires
READ_PRIVILEGED_PHONE_STATE permission. This change allows carrier
priviledged app to get the phone account handle of its own
subcriptionId.
Bug: 182966851
Test: manual
Change-Id: If23542fb003eb8af6299ffe6945c331b09ee9d9e
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 798d429..4905316 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -7351,8 +7351,11 @@
@Override
public @Nullable PhoneAccountHandle getPhoneAccountHandleForSubscriptionId(int subscriptionId) {
- enforceReadPrivilegedPermission("getPhoneAccountHandleForSubscriptionId, "
- + "subscriptionId: " + subscriptionId);
+ TelephonyPermissions
+ .enforeceCallingOrSelfReadPrivilegedPhoneStatePermissionOrCarrierPrivilege(
+ mApp,
+ subscriptionId,
+ "getPhoneAccountHandleForSubscriptionId, " + "subscriptionId: " + subscriptionId);
final long identity = Binder.clearCallingIdentity();
try {
Phone phone = getPhone(subscriptionId);