summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Brad Ebinger <breadley@google.com> 2017-02-27 21:19:16 +0000
committer Gerrit Code Review <noreply-gerritcodereview@google.com> 2017-02-27 21:19:18 +0000
commit3e64003641c376573f4809aae79febd0187be81e (patch)
tree408493be4d54d4a7e1e057eabe0e607361bb62c0
parentf81911bcd222567cd51538fe30c44cfb6d3a0c49 (diff)
parentcd3c59c6400678adcd175f8a8d1a0d32388ca44e (diff)
Merge "Adds read/modify permission checks to ImsService"
-rw-r--r--telephony/java/android/telephony/ims/ImsService.java22
1 files changed, 22 insertions, 0 deletions
diff --git a/telephony/java/android/telephony/ims/ImsService.java b/telephony/java/android/telephony/ims/ImsService.java
index fe8dbfbd9f24..406f01e82c35 100644
--- a/telephony/java/android/telephony/ims/ImsService.java
+++ b/telephony/java/android/telephony/ims/ImsService.java
@@ -41,6 +41,9 @@ import com.android.ims.internal.IImsServiceFeatureListener;
import com.android.ims.internal.IImsUt;
import com.android.internal.annotations.VisibleForTesting;
+import static android.Manifest.permission.MODIFY_PHONE_STATE;
+import static android.Manifest.permission.READ_PHONE_STATE;
+
/**
* Main ImsService implementation, which binds via the Telephony ImsResolver. Services that extend
* ImsService must register the service in their AndroidManifest to be detected by the framework.
@@ -94,6 +97,7 @@ public abstract class ImsService extends ImsServiceBase {
public void createImsFeature(int slotId, int feature, IImsFeatureStatusCallback c)
throws RemoteException {
synchronized (mFeatures) {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "createImsFeature");
onCreateImsFeatureInternal(slotId, feature, c);
}
}
@@ -101,6 +105,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public void removeImsFeature(int slotId, int feature) throws RemoteException {
synchronized (mFeatures) {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "removeImsFeature");
onRemoveImsFeatureInternal(slotId, feature);
}
}
@@ -108,6 +113,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public int startSession(int slotId, int featureType, PendingIntent incomingCallIntent,
IImsRegistrationListener listener) throws RemoteException {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "startSession");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -120,6 +126,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public void endSession(int slotId, int featureType, int sessionId) throws RemoteException {
synchronized (mFeatures) {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "endSession");
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
feature.endSession(sessionId);
@@ -130,6 +137,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public boolean isConnected(int slotId, int featureType, int callSessionType, int callType)
throws RemoteException {
+ enforceCallingOrSelfPermission(READ_PHONE_STATE, "isConnected");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -141,6 +149,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public boolean isOpened(int slotId, int featureType) throws RemoteException {
+ enforceCallingOrSelfPermission(READ_PHONE_STATE, "isOpened");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -152,6 +161,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public int getFeatureStatus(int slotId, int featureType) throws RemoteException {
+ enforceCallingOrSelfPermission(READ_PHONE_STATE, "getFeatureStatus");
int status = ImsFeature.STATE_NOT_AVAILABLE;
synchronized (mFeatures) {
SparseArray<ImsFeature> featureMap = mFeatures.get(slotId);
@@ -168,6 +178,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public void addRegistrationListener(int slotId, int featureType,
IImsRegistrationListener listener) throws RemoteException {
+ enforceCallingOrSelfPermission(READ_PHONE_STATE, "addRegistrationListener");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -179,6 +190,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public void removeRegistrationListener(int slotId, int featureType,
IImsRegistrationListener listener) throws RemoteException {
+ enforceCallingOrSelfPermission(READ_PHONE_STATE, "removeRegistrationListener");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -190,6 +202,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public ImsCallProfile createCallProfile(int slotId, int featureType, int sessionId,
int callSessionType, int callType) throws RemoteException {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "createCallProfile");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -202,6 +215,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public IImsCallSession createCallSession(int slotId, int featureType, int sessionId,
ImsCallProfile profile, IImsCallSessionListener listener) throws RemoteException {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "createCallSession");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -214,6 +228,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public IImsCallSession getPendingCallSession(int slotId, int featureType, int sessionId,
String callId) throws RemoteException {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "getPendingCallSession");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -226,6 +241,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public IImsUt getUtInterface(int slotId, int featureType)
throws RemoteException {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "getUtInterface");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -238,6 +254,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public IImsConfig getConfigInterface(int slotId, int featureType)
throws RemoteException {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "getConfigInterface");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -249,6 +266,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public void turnOnIms(int slotId, int featureType) throws RemoteException {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "turnOnIms");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -259,6 +277,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public void turnOffIms(int slotId, int featureType) throws RemoteException {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "turnOffIms");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -270,6 +289,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public IImsEcbm getEcbmInterface(int slotId, int featureType)
throws RemoteException {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "getEcbmInterface");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -282,6 +302,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public void setUiTTYMode(int slotId, int featureType, int uiTtyMode, Message onComplete)
throws RemoteException {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "setUiTTYMode");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {
@@ -293,6 +314,7 @@ public abstract class ImsService extends ImsServiceBase {
@Override
public IImsMultiEndpoint getMultiEndpointInterface(int slotId, int featureType)
throws RemoteException {
+ enforceCallingOrSelfPermission(MODIFY_PHONE_STATE, "getMultiEndpointInterface");
synchronized (mFeatures) {
MMTelFeature feature = resolveMMTelFeature(slotId, featureType);
if (feature != null) {