From 6eb7652b04b92b0c3786d96e6a97f5f4e46aec69 Mon Sep 17 00:00:00 2001 From: Zhihai Xu Date: Thu, 29 Nov 2012 15:41:04 -0800 Subject: BluetoothManagerService call should allow SYSTEM_UID bug 7561429 Change-Id: I1483bfe1361f71c7ae3529ea496b33504b95413e --- .../android/server/BluetoothManagerService.java | 34 +++++++++++----------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/services/java/com/android/server/BluetoothManagerService.java b/services/java/com/android/server/BluetoothManagerService.java index ea9187568c6e..e05fcf4d408b 100755 --- a/services/java/com/android/server/BluetoothManagerService.java +++ b/services/java/com/android/server/BluetoothManagerService.java @@ -297,8 +297,9 @@ class BluetoothManagerService extends IBluetoothManager.Stub { } public boolean isEnabled() { - if (!checkIfCallerIsForegroundUser()) { - Log.w(TAG,"isEnabled(): not allowed for non-active user"); + if ((Binder.getCallingUid() != Process.SYSTEM_UID) && + (!checkIfCallerIsForegroundUser())) { + Log.w(TAG,"isEnabled(): not allowed for non-active and non system user"); return false; } @@ -325,11 +326,6 @@ class BluetoothManagerService extends IBluetoothManager.Stub { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); - if (!checkIfCallerIsForegroundUser()) { - Log.w(TAG,"enableNoAutoConnect(): not allowed for non-active user"); - return false; - } - if (DBG) { Log.d(TAG,"enableNoAutoConnect(): mBluetooth =" + mBluetooth + " mBinding = " + mBinding); @@ -345,8 +341,9 @@ class BluetoothManagerService extends IBluetoothManager.Stub { } public boolean enable() { - if (!checkIfCallerIsForegroundUser()) { - Log.w(TAG,"enable(): not allowed for non-active user"); + if ((Binder.getCallingUid() != Process.SYSTEM_UID) && + (!checkIfCallerIsForegroundUser())) { + Log.w(TAG,"enable(): not allowed for non-active and non system user"); return false; } @@ -357,8 +354,9 @@ class BluetoothManagerService extends IBluetoothManager.Stub { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permissicacheNameAndAddresson"); - if (!checkIfCallerIsForegroundUser()) { - Log.w(TAG,"disable(): not allowed for non-active user"); + if ((Binder.getCallingUid() != Process.SYSTEM_UID) && + (!checkIfCallerIsForegroundUser())) { + Log.w(TAG,"disable(): not allowed for non-active and non system user"); return false; } @@ -456,9 +454,10 @@ class BluetoothManagerService extends IBluetoothManager.Stub { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); - if (!checkIfCallerIsForegroundUser()) { - Log.w(TAG,"getAddress(): not allowed for non-active user"); - return mAddress; + if ((Binder.getCallingUid() != Process.SYSTEM_UID) && + (!checkIfCallerIsForegroundUser())) { + Log.w(TAG,"getAddress(): not allowed for non-active and non system user"); + return null; } synchronized(mConnection) { @@ -480,9 +479,10 @@ class BluetoothManagerService extends IBluetoothManager.Stub { mContext.enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH ADMIN permission"); - if (!checkIfCallerIsForegroundUser()) { - Log.w(TAG,"getName(): not allowed for non-active user"); - return mName; + if ((Binder.getCallingUid() != Process.SYSTEM_UID) && + (!checkIfCallerIsForegroundUser())) { + Log.w(TAG,"getName(): not allowed for non-active and non system user"); + return null; } synchronized(mConnection) { -- cgit v1.2.3-59-g8ed1b