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

Commit 9eada416 authored by Rahul Sabnis's avatar Rahul Sabnis
Browse files

Update permission enforcement for BluetoothPan System APIs to enforce

the BLUETOOTH_PRIVILEGED permission

Bug: 146045934
Test: Manual
Merged-In: I8a243949391ec20e43aa5fdc83ab5a11cb5df159
Change-Id: I8a243949391ec20e43aa5fdc83ab5a11cb5df159
parent 0a9bd3ae
Loading
Loading
Loading
Loading
+10 −4
Original line number Diff line number Diff line
@@ -360,6 +360,8 @@ public class PanService extends ProfileService {
    }

    public int getConnectionState(BluetoothDevice device) {
        enforceCallingOrSelfPermission(
                BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission");
        BluetoothPanDevice panDevice = mPanDevices.get(device);
        if (panDevice == null) {
            return BluetoothPan.STATE_DISCONNECTED;
@@ -383,7 +385,8 @@ public class PanService extends ProfileService {

    public boolean isTetheringOn() {
        // TODO(BT) have a variable marking the on/off state
        enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
        enforceCallingOrSelfPermission(
                BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission");
        return mTetherOn;
    }

@@ -391,7 +394,8 @@ public class PanService extends ProfileService {
        if (DBG) {
            Log.d(TAG, "setBluetoothTethering: " + value + ", mTetherOn: " + mTetherOn);
        }
        enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission");
        enforceCallingOrSelfPermission(
                BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission");
        final Context context = getBaseContext();

        ConnectivityManager.enforceTetherChangePermission(context, pkgName);
@@ -426,7 +430,8 @@ public class PanService extends ProfileService {
     * @return true if connectionPolicy is set, false on error
     */
    public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy) {
        enforceCallingOrSelfPermission(BLUETOOTH_ADMIN_PERM, "Need BLUETOOTH_ADMIN permission");
        enforceCallingOrSelfPermission(
                BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission");
        if (DBG) {
            Log.d(TAG, "Saved connectionPolicy " + device + " = " + connectionPolicy);
        }
@@ -461,7 +466,8 @@ public class PanService extends ProfileService {
    }

    public List<BluetoothDevice> getConnectedDevices() {
        enforceCallingOrSelfPermission(BLUETOOTH_PERM, "Need BLUETOOTH permission");
        enforceCallingOrSelfPermission(
                BLUETOOTH_PRIVILEGED, "Need BLUETOOTH_PRIVILEGED permission");
        List<BluetoothDevice> devices =
                getDevicesMatchingConnectionStates(new int[]{BluetoothProfile.STATE_CONNECTED});
        return devices;