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

Commit 83241932 authored by Martin Brabham's avatar Martin Brabham
Browse files

Revert "Enforce BluetoothPrivileged Permission for ScanFilter APIs"

This reverts commit 580868ae.

Reverting due to some CTS failures until the issue is resolved.

Bug: 188630254
Test: atest CtsBluetoothTestCases:android.bluetooth.cts.BluetoothLeScanTest#testBasicBleScan -- --abi arm64-v8a
Tag: #feature
Change-Id: I6cc1071b71e13fd0c819e3cc9d49e5af753d88c2
parent 16ff6c77
Loading
Loading
Loading
Loading
+1 −22
Original line number Diff line number Diff line
@@ -85,7 +85,6 @@ import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
@@ -2264,7 +2263,6 @@ public class GattService extends ProfileService {
        enforcePrivilegedPermissionIfNeeded(settings);
        String callingPackage = attributionSource.getPackageName();
        settings = enforceReportDelayFloor(settings);
        enforcePrivilegedPermissionIfNeeded(filters);
        final ScanClient scanClient = new ScanClient(scannerId, settings, filters, storages);
        scanClient.userHandle = UserHandle.of(UserHandle.getCallingUserId());
        mAppOps.checkPackage(Binder.getCallingUid(), callingPackage);
@@ -2321,7 +2319,7 @@ public class GattService extends ProfileService {
        }
        enforcePrivilegedPermissionIfNeeded(settings);
        settings = enforceReportDelayFloor(settings);
        enforcePrivilegedPermissionIfNeeded(filters);

        UUID uuid = UUID.randomUUID();
        if (DBG) {
            Log.d(TAG, "startScan(PI) - UUID=" + uuid);
@@ -3668,25 +3666,6 @@ public class GattService extends ProfileService {
        return settings.getScanResultType() == ScanSettings.SCAN_RESULT_TYPE_ABBREVIATED;
    }

    /*
     * The {@link ScanFilter#setDeviceAddress} API overloads are @SystemApi access methods.  This
     * requires that the permissions be BLUETOOTH_PRIVILEGED.
     */
    @SuppressLint("AndroidFrameworkRequiresPermission")
    private void enforcePrivilegedPermissionIfNeeded(List<ScanFilter> filters) {
        if (DBG) {
            Log.d(TAG, "enforcePrivilegedPermissionIfNeeded(" + filters + ")");
        }
        Objects.requireNonNull(filters, "'filters' must not be null!");
        for (ScanFilter filter : filters) {
            if (filter.getDeviceAddress() != null && filter.getAddressType()
                    == BluetoothDevice.ADDRESS_TYPE_PUBLIC && filter.getIrk() == null) {
            } else {
                enforcePrivilegedPermission();
            }
        }
    }

    // Enforce caller has BLUETOOTH_PRIVILEGED permission. A {@link SecurityException} will be
    // thrown if the caller app does not have BLUETOOTH_PRIVILEGED permission.
    @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)