summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Chalard Jean <jchalard@google.com> 2019-03-08 08:38:35 -0800
committer android-build-merger <android-build-merger@google.com> 2019-03-08 08:38:35 -0800
commit1dba2f82ad288382e1232ab86360af8be5c3a7e8 (patch)
tree55a5bc1d4f3c81a3949010292d9ea32e9e2aabf1
parentb0498ba448baa3227cd45dad6fda15f3ddfd3e8d (diff)
parenta6f3476476104eed5c59d086da730092b3fe200e (diff)
Merge "Give Telephony the permissions to access the network stack."
am: a6f3476476 Change-Id: I4ae09aac25226904e34d77edb7333da0aabe86f9
-rw-r--r--packages/NetworkStack/src/com/android/server/util/PermissionUtil.java4
-rw-r--r--services/net/java/android/net/NetworkStackClient.java3
2 files changed, 5 insertions, 2 deletions
diff --git a/packages/NetworkStack/src/com/android/server/util/PermissionUtil.java b/packages/NetworkStack/src/com/android/server/util/PermissionUtil.java
index f6eb900c4910..6fbeeadb7e72 100644
--- a/packages/NetworkStack/src/com/android/server/util/PermissionUtil.java
+++ b/packages/NetworkStack/src/com/android/server/util/PermissionUtil.java
@@ -33,7 +33,9 @@ public final class PermissionUtil {
public static void checkNetworkStackCallingPermission() {
// TODO: check that the calling PID is the system server.
final int caller = getCallingUid();
- if (caller != Process.SYSTEM_UID && UserHandle.getAppId(caller) != Process.BLUETOOTH_UID) {
+ if (caller != Process.SYSTEM_UID
+ && UserHandle.getAppId(caller) != Process.BLUETOOTH_UID
+ && UserHandle.getAppId(caller) != Process.PHONE_UID) {
throw new SecurityException("Invalid caller: " + caller);
}
}
diff --git a/services/net/java/android/net/NetworkStackClient.java b/services/net/java/android/net/NetworkStackClient.java
index 830dbbe8b8c0..eed01aecf0e2 100644
--- a/services/net/java/android/net/NetworkStackClient.java
+++ b/services/net/java/android/net/NetworkStackClient.java
@@ -289,7 +289,8 @@ public class NetworkStackClient {
private void requestConnector(@NonNull NetworkStackCallback request) {
// TODO: PID check.
final int caller = Binder.getCallingUid();
- if (caller != Process.SYSTEM_UID && !UserHandle.isSameApp(caller, Process.BLUETOOTH_UID)) {
+ if (caller != Process.SYSTEM_UID && !UserHandle.isSameApp(caller, Process.BLUETOOTH_UID)
+ && !UserHandle.isSameApp(caller, Process.PHONE_UID)) {
// Don't even attempt to obtain the connector and give a nice error message
throw new SecurityException(
"Only the system server should try to bind to the network stack.");