Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d5dcb6d4 authored by Martijn Coenen's avatar Martijn Coenen Committed by Android Git Automerger
Browse files

am 1b3a4362: am f77445cd: am b1a01ab0: Merge "Allow the NFC process to call...

am 1b3a4362: am f77445cd: am b1a01ab0: Merge "Allow the NFC process to call Bluetooth APIs." into jb-mr1.1-dev

* commit '1b3a4362':
  Allow the NFC process to call Bluetooth APIs.
parents 0f6f2102 1b3a4362
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -43,8 +43,6 @@ import android.os.SystemClock;
import android.os.UserHandle;
import android.provider.Settings;
import android.util.Log;
import java.util.ArrayList;
import java.util.List;
class BluetoothManagerService extends IBluetoothManager.Stub {
    private static final String TAG = "BluetoothManagerService";
    private static final boolean DBG = true;
@@ -330,9 +328,12 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
            Log.d(TAG,"enableNoAutoConnect():  mBluetooth =" + mBluetooth +
                    " mBinding = " + mBinding);
        }
        if (Binder.getCallingUid() != Process.NFC_UID) {
        int callingAppId = UserHandle.getAppId(Binder.getCallingUid());

        if (callingAppId != Process.NFC_UID) {
            throw new SecurityException("no permission to enable Bluetooth quietly");
        }

        Message msg = mHandler.obtainMessage(MESSAGE_ENABLE);
        msg.arg1=0; //No persist
        msg.arg2=1; //Quiet mode
@@ -968,11 +969,14 @@ class BluetoothManagerService extends IBluetoothManager.Stub {
    private boolean checkIfCallerIsForegroundUser() {
        int foregroundUser;
        int callingUser = UserHandle.getCallingUserId();
        int callingUid = Binder.getCallingUid();
        long callingIdentity = Binder.clearCallingIdentity();
        int callingAppId = UserHandle.getAppId(callingUid);
        boolean valid = false;
        try {
            foregroundUser = ActivityManager.getCurrentUser();
            valid = (callingUser == foregroundUser);
            valid = (callingUser == foregroundUser) ||
                    callingAppId == Process.NFC_UID;
            if (DBG) {
                Log.d(TAG, "checkIfCallerIsForegroundUser: valid=" + valid
                    + " callingUser=" + callingUser