Adding carrier privilege checks for public ImsMmtelManager APIs
Bug: 141928367
Test: manual
Change-Id: I55ba6408c4fe80e8749cdc11c244fb812e082873
diff --git a/src/com/android/phone/PhoneInterfaceManager.java b/src/com/android/phone/PhoneInterfaceManager.java
index 4ff6e9d..a3b3079 100755
--- a/src/com/android/phone/PhoneInterfaceManager.java
+++ b/src/com/android/phone/PhoneInterfaceManager.java
@@ -2965,10 +2965,17 @@
return false;
}
+ /**
+ * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+ * @param subId The subscription to use to check the configuration.
+ * @param c The callback that will be used to send the result.
+ */
@Override
public void registerImsRegistrationCallback(int subId, IImsRegistrationCallback c)
throws RemoteException {
+ //TODO: b/147498511 will add TelephonyPermissions#checkCallingOrSelfReadPrecisePhoneState
enforceReadPrivilegedPermission("registerImsRegistrationCallback");
+
if (!ImsManager.isImsSupportedOnDevice(mApp)) {
throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
"IMS not available on device.");
@@ -2985,8 +2992,14 @@
}
}
+ /**
+ * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+ * @param subId The subscription to use to check the configuration.
+ * @param c The callback that will be used to send the result.
+ */
@Override
public void unregisterImsRegistrationCallback(int subId, IImsRegistrationCallback c) {
+ //TODO: b/147498511 will add TelephonyPermissions#checkCallingOrSelfReadPrecisePhoneState
enforceReadPrivilegedPermission("unregisterImsRegistrationCallback");
if (!SubscriptionManager.isValidSubscriptionId(subId)) {
throw new IllegalArgumentException("Invalid Subscription ID: " + subId);
@@ -3043,6 +3056,7 @@
*/
@Override
public void getImsMmTelRegistrationTransportType(int subId, IIntegerConsumer consumer) {
+ //TODO: b/147498511 will add TelephonyPermissions#checkCallingOrSelfReadPrecisePhoneState
enforceReadPrivilegedPermission("getImsMmTelRegistrationTransportType");
if (!ImsManager.isImsSupportedOnDevice(mApp)) {
throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
@@ -3074,9 +3088,15 @@
}
}
+ /**
+ * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+ * @param subId The subscription to use to check the configuration.
+ * @param c The callback that will be used to send the result.
+ */
@Override
public void registerMmTelCapabilityCallback(int subId, IImsCapabilityCallback c)
throws RemoteException {
+ //TODO: b/147498511 will add TelephonyPermissions#checkCallingOrSelfReadPrecisePhoneState
enforceReadPrivilegedPermission("registerMmTelCapabilityCallback");
if (!ImsManager.isImsSupportedOnDevice(mApp)) {
throw new ServiceSpecificException(ImsException.CODE_ERROR_UNSUPPORTED_OPERATION,
@@ -3094,8 +3114,14 @@
}
}
+ /**
+ * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+ * @param subId The subscription to use to check the configuration.
+ * @param c The callback that will be used to send the result.
+ */
@Override
public void unregisterMmTelCapabilityCallback(int subId, IImsCapabilityCallback c) {
+ //TODO: b/147498511 will add TelephonyPermissions#checkCallingOrSelfReadPrecisePhoneState
enforceReadPrivilegedPermission("unregisterMmTelCapabilityCallback");
if (!SubscriptionManager.isValidSubscriptionId(subId)) {
throw new IllegalArgumentException("Invalid Subscription ID: " + subId);
@@ -3186,9 +3212,15 @@
}
}
+ /**
+ * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+ * @param subId The subscription to use to check the configuration.
+ */
@Override
public boolean isAdvancedCallingSettingEnabled(int subId) {
- enforceReadPrivilegedPermission("enforceReadPrivilegedPermission");
+ //TODO: b/147498511 will add TelephonyPermissions#checkCallingOrSelfReadPrecisePhoneState
+ enforceReadPrivilegedPermission("isAdvancedCallingSettingEnabled");
+
// TODO: Refactor to remove ImsManager dependence and query through ImsPhone directly.
final long token = Binder.clearCallingIdentity();
try {
@@ -3217,8 +3249,13 @@
}
}
+ /**
+ * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+ * @param subId The subscription to use to check the configuration.
+ */
@Override
public boolean isVtSettingEnabled(int subId) {
+ //TODO: b/147498511 will add TelephonyPermissions#checkCallingOrSelfReadPrecisePhoneState
enforceReadPrivilegedPermission("isVtSettingEnabled");
final long identity = Binder.clearCallingIdentity();
try {
@@ -3246,8 +3283,13 @@
}
}
+ /**
+ * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+ * @param subId The subscription to use to check the configuration.
+ */
@Override
public boolean isVoWiFiSettingEnabled(int subId) {
+ //TODO: b/147498511 will add TelephonyPermissions#checkCallingOrSelfReadPrecisePhoneState
enforceReadPrivilegedPermission("isVoWiFiSettingEnabled");
final long identity = Binder.clearCallingIdentity();
try {
@@ -3276,8 +3318,13 @@
}
}
+ /**
+ * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+ * @param subId The subscription to use to check the configuration.
+ */
@Override
public boolean isVoWiFiRoamingSettingEnabled(int subId) {
+ //TODO: b/147498511 will add TelephonyPermissions#checkCallingOrSelfReadPrecisePhoneState
enforceReadPrivilegedPermission("isVoWiFiRoamingSettingEnabled");
final long identity = Binder.clearCallingIdentity();
try {
@@ -3323,8 +3370,13 @@
}
}
+ /**
+ * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+ * @param subId The subscription to use to check the configuration.
+ */
@Override
public int getVoWiFiModeSetting(int subId) {
+ //TODO: b/147498511 will add TelephonyPermissions#checkCallingOrSelfReadPrecisePhoneState
enforceReadPrivilegedPermission("getVoWiFiModeSetting");
final long identity = Binder.clearCallingIdentity();
try {
@@ -3400,8 +3452,13 @@
}
}
+ /**
+ * Requires carrier privileges or READ_PRECISE_PHONE_STATE permission.
+ * @param subId The subscription to use to check the configuration.
+ */
@Override
public boolean isTtyOverVolteEnabled(int subId) {
+ //TODO: b/147498511 will add TelephonyPermissions#checkCallingOrSelfReadPrecisePhoneState
enforceReadPrivilegedPermission("isTtyOverVolteEnabled");
final long identity = Binder.clearCallingIdentity();
try {