Loading core/res/AndroidManifest.xml +8 −0 Original line number Diff line number Diff line Loading @@ -1257,6 +1257,14 @@ android:description="@string/permdesc_bind_call_service" android:label="@string/permlab_bind_call_service" /> <!-- @SystemApi Allows an application to bind to ConnectionService implementations. @hide --> <permission android:name="android.permission.BIND_CONNECTION_SERVICE" android:permissionGroup="android.permission-group.PHONE_CALLS" android:protectionLevel="system|signature" android:description="@string/permdesc_bind_connection_service" android:label="@string/permlab_bind_connection_service" /> <!-- ================================== --> <!-- Permissions for sdcard interaction --> <!-- ================================== --> Loading core/res/res/values/strings.xml +5 −0 Original line number Diff line number Diff line Loading @@ -2116,6 +2116,11 @@ <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permdesc_bind_call_service">Allows the app to control when and how the user sees the in-call screen.</string> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permlab_bind_connection_service">interact with telephony services</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permdesc_bind_connection_service">Allows the app to interact with telephony services to make/receive calls.</string> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permlab_readNetworkUsageHistory">read historical network usage</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> Loading telecomm/java/android/telecomm/ConnectionService.java +23 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.telecomm; import android.Manifest; import android.annotation.SdkConstant; import android.app.PendingIntent; import android.app.Service; Loading @@ -26,6 +27,8 @@ import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.Message; import android.os.Parcel; import android.os.RemoteException; import android.telephony.DisconnectCause; import com.android.internal.os.SomeArgs; Loading @@ -45,7 +48,6 @@ import java.util.Map; * Android device. */ public abstract class ConnectionService extends Service { /** * The {@link Intent} that must be declared as handled by the service. */ Loading Loading @@ -81,6 +83,18 @@ public abstract class ConnectionService extends Service { private final ConnectionServiceAdapter mAdapter = new ConnectionServiceAdapter(); private final IBinder mBinder = new IConnectionService.Stub() { /** * Enforces the requirement that all calls into the ConnectionService require the * {@code BIND_CONNECTION_SERVICE} permission. */ @Override public boolean onTransact(int code, Parcel data, Parcel reply, int flags) throws RemoteException { enforceBindConnectionServicePermission(); return super.onTransact(code, data, reply, flags); } @Override public void addConnectionServiceAdapter(IConnectionServiceAdapter adapter) { mHandler.obtainMessage(MSG_ADD_CONNECTION_SERVICE_ADAPTER, adapter).sendToTarget(); Loading Loading @@ -617,7 +631,8 @@ public abstract class ConnectionService extends Service { public void onError(String request, int code, String reason) { // no-op } }); } ); } private void splitFromConference(String callId) { Loading Loading @@ -830,4 +845,10 @@ public abstract class ConnectionService extends Service { return Connection.getNullConnection(); } /** * Enforces the {@code BIND_CONNECTION_SERVICE} permission for connection service calls. */ private void enforceBindConnectionServicePermission() { enforceCallingPermission(Manifest.permission.BIND_CONNECTION_SERVICE, null); } } Loading
core/res/AndroidManifest.xml +8 −0 Original line number Diff line number Diff line Loading @@ -1257,6 +1257,14 @@ android:description="@string/permdesc_bind_call_service" android:label="@string/permlab_bind_call_service" /> <!-- @SystemApi Allows an application to bind to ConnectionService implementations. @hide --> <permission android:name="android.permission.BIND_CONNECTION_SERVICE" android:permissionGroup="android.permission-group.PHONE_CALLS" android:protectionLevel="system|signature" android:description="@string/permdesc_bind_connection_service" android:label="@string/permlab_bind_connection_service" /> <!-- ================================== --> <!-- Permissions for sdcard interaction --> <!-- ================================== --> Loading
core/res/res/values/strings.xml +5 −0 Original line number Diff line number Diff line Loading @@ -2116,6 +2116,11 @@ <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permdesc_bind_call_service">Allows the app to control when and how the user sees the in-call screen.</string> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permlab_bind_connection_service">interact with telephony services</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permdesc_bind_connection_service">Allows the app to interact with telephony services to make/receive calls.</string> <!-- Title of an application permission, listed so the user can choose whether they want to allow the application to do this. --> <string name="permlab_readNetworkUsageHistory">read historical network usage</string> <!-- Description of an application permission, listed so the user can choose whether they want to allow the application to do this. --> Loading
telecomm/java/android/telecomm/ConnectionService.java +23 −2 Original line number Diff line number Diff line Loading @@ -16,6 +16,7 @@ package android.telecomm; import android.Manifest; import android.annotation.SdkConstant; import android.app.PendingIntent; import android.app.Service; Loading @@ -26,6 +27,8 @@ import android.os.Handler; import android.os.IBinder; import android.os.Looper; import android.os.Message; import android.os.Parcel; import android.os.RemoteException; import android.telephony.DisconnectCause; import com.android.internal.os.SomeArgs; Loading @@ -45,7 +48,6 @@ import java.util.Map; * Android device. */ public abstract class ConnectionService extends Service { /** * The {@link Intent} that must be declared as handled by the service. */ Loading Loading @@ -81,6 +83,18 @@ public abstract class ConnectionService extends Service { private final ConnectionServiceAdapter mAdapter = new ConnectionServiceAdapter(); private final IBinder mBinder = new IConnectionService.Stub() { /** * Enforces the requirement that all calls into the ConnectionService require the * {@code BIND_CONNECTION_SERVICE} permission. */ @Override public boolean onTransact(int code, Parcel data, Parcel reply, int flags) throws RemoteException { enforceBindConnectionServicePermission(); return super.onTransact(code, data, reply, flags); } @Override public void addConnectionServiceAdapter(IConnectionServiceAdapter adapter) { mHandler.obtainMessage(MSG_ADD_CONNECTION_SERVICE_ADAPTER, adapter).sendToTarget(); Loading Loading @@ -617,7 +631,8 @@ public abstract class ConnectionService extends Service { public void onError(String request, int code, String reason) { // no-op } }); } ); } private void splitFromConference(String callId) { Loading Loading @@ -830,4 +845,10 @@ public abstract class ConnectionService extends Service { return Connection.getNullConnection(); } /** * Enforces the {@code BIND_CONNECTION_SERVICE} permission for connection service calls. */ private void enforceBindConnectionServicePermission() { enforceCallingPermission(Manifest.permission.BIND_CONNECTION_SERVICE, null); } }