Merge "Fix bluetooth tethering on multi-user" am: 4bb4c1a792
am: 1a0ac241e8
Change-Id: I73c2a061f2aeae466f650d85f16cb4587b264737
This commit is contained in:
@@ -223,7 +223,7 @@ public class NetworkStack {
|
||||
private void requestConnector(@NonNull NetworkStackCallback request) {
|
||||
// TODO: PID check.
|
||||
final int caller = Binder.getCallingUid();
|
||||
if (caller != Process.SYSTEM_UID && caller != Process.BLUETOOTH_UID) {
|
||||
if (caller != Process.SYSTEM_UID && !UserHandle.isSameApp(caller, Process.BLUETOOTH_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.");
|
||||
|
||||
@@ -19,6 +19,7 @@ package com.android.server.util;
|
||||
import static android.os.Binder.getCallingUid;
|
||||
|
||||
import android.os.Process;
|
||||
import android.os.UserHandle;
|
||||
|
||||
/**
|
||||
* Utility class to check calling permissions on the network stack.
|
||||
@@ -32,7 +33,7 @@ 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 && caller != Process.BLUETOOTH_UID) {
|
||||
if (caller != Process.SYSTEM_UID && UserHandle.getAppId(caller) != Process.BLUETOOTH_UID) {
|
||||
throw new SecurityException("Invalid caller: " + caller);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user