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

Commit 9831c414 authored by Android Build Coastguard Worker's avatar Android Build Coastguard Worker
Browse files

Snap for 9446458 from 86976c78 to tm-qpr2-release

Change-Id: I80cc689365c31f5b689d5447a08845b367f6f823
parents a509e329 86976c78
Loading
Loading
Loading
Loading
+11 −0
Original line number Diff line number Diff line
@@ -36,6 +36,9 @@ import android.os.ParcelFileDescriptor;
import android.provider.Telephony;
import android.util.Log;

import com.android.bluetooth.gatt.AppAdvertiseStats;
import com.android.bluetooth.gatt.ContextMap;
import com.android.bluetooth.gatt.GattService;
import com.android.internal.annotations.VisibleForTesting;
import com.android.obex.HeaderSet;

@@ -212,4 +215,12 @@ public class BluetoothMethodProxy {
            int advHandle, PeriodicAdvertisingCallback callback) {
        manager.transferSetInfo(bda, serviceData, advHandle, callback);
    }

    /**
     * Proxies {@link AppAdvertiseStats}.
     */
    public AppAdvertiseStats createAppAdvertiseStats(int appUid, int id, String name,
            ContextMap map, GattService service) {
        return new AppAdvertiseStats(appUid, id, name, map, service);
    }
}
+15 −2
Original line number Diff line number Diff line
@@ -408,6 +408,9 @@ public final class Utils {

    @RequiresPermission(android.Manifest.permission.BLUETOOTH_PRIVILEGED)
    public static void enforceBluetoothPrivilegedPermission(Context context) {
        if (isInstrumentationTestMode()) {
            return;
        }
        context.enforceCallingOrSelfPermission(
                android.Manifest.permission.BLUETOOTH_PRIVILEGED,
                "Need BLUETOOTH PRIVILEGED permission");
@@ -415,6 +418,9 @@ public final class Utils {

    @RequiresPermission(android.Manifest.permission.LOCAL_MAC_ADDRESS)
    public static void enforceLocalMacAddressPermission(Context context) {
        if (isInstrumentationTestMode()) {
            return;
        }
        context.enforceCallingOrSelfPermission(
                android.Manifest.permission.LOCAL_MAC_ADDRESS,
                "Need LOCAL_MAC_ADDRESS permission");
@@ -422,13 +428,14 @@ public final class Utils {

    @RequiresPermission(android.Manifest.permission.DUMP)
    public static void enforceDumpPermission(Context context) {
        if (isInstrumentationTestMode()) {
            return;
        }
        context.enforceCallingOrSelfPermission(
                android.Manifest.permission.DUMP,
                "Need DUMP permission");
    }

    /**
     */
    public static AttributionSource getCallingAttributionSource(Context context) {
        int callingUid = Binder.getCallingUid();
        if (callingUid == android.os.Process.ROOT_UID) {
@@ -463,6 +470,9 @@ public final class Utils {
    @SuppressLint("AndroidFrameworkRequiresPermission")
    private static boolean checkPermissionForDataDelivery(Context context, String permission,
            AttributionSource attributionSource, String message) {
        if (isInstrumentationTestMode()) {
            return true;
        }
        // STOPSHIP(b/188391719): enable this security enforcement
        // attributionSource.enforceCallingUid();
        AttributionSource currentAttribution = new AttributionSource
@@ -669,6 +679,9 @@ public final class Utils {
    }

    public static boolean checkCallerIsSystemOrActiveOrManagedUser(Context context, String tag) {
        if (isInstrumentationTestMode()) {
            return true;
        }
        final boolean res = checkCallerIsSystemOrActiveOrManagedUser(context);
        if (!res) {
            Log.w(TAG, tag + " - Not allowed for"
+5 −1
Original line number Diff line number Diff line
@@ -190,12 +190,16 @@ public class A2dpSinkService extends ProfileService {
    }

    //Binder object: Must be static class or memory leak may occur
    private static class A2dpSinkServiceBinder extends IBluetoothA2dpSink.Stub
    @VisibleForTesting
    static class A2dpSinkServiceBinder extends IBluetoothA2dpSink.Stub
            implements IProfileServiceBinder {
        private A2dpSinkService mService;

        @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
        private A2dpSinkService getService(AttributionSource source) {
            if (Utils.isInstrumentationTestMode()) {
                return mService;
            }
            if (!Utils.checkServiceAvailable(mService, TAG)
                    || !Utils.checkCallerIsSystemOrActiveOrManagedUser(mService, TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(mService, source, TAG)) {
+19 −7
Original line number Diff line number Diff line
@@ -247,7 +247,13 @@ public class AdapterService extends Service {
        return sAdapterService;
    }

    private static synchronized void setAdapterService(AdapterService instance) {
    /**
     * Sets AdapterService for testing.
     *
     * @hide
     */
    @VisibleForTesting
    public static synchronized void setAdapterService(AdapterService instance) {
        Log.d(TAG, "setAdapterService() - trying to set service to " + instance);
        if (instance == null) {
            return;
@@ -262,7 +268,8 @@ public class AdapterService extends Service {
    }

    private BluetoothAdapter mAdapter;
    private AdapterProperties mAdapterProperties;
    @VisibleForTesting
    AdapterProperties mAdapterProperties;
    private AdapterState mAdapterStateMachine;
    private BondStateMachine mBondStateMachine;
    private JniCallbacks mJniCallbacks;
@@ -1361,7 +1368,8 @@ public class AdapterService extends Service {
    }

    @BluetoothAdapter.RfcommListenerResult
    private int stopRfcommListener(ParcelUuid uuid, AttributionSource attributionSource) {
    @VisibleForTesting
    int stopRfcommListener(ParcelUuid uuid, AttributionSource attributionSource) {
        RfcommListenerData listenerData = mBluetoothServerSockets.get(uuid.getUuid());

        if (listenerData == null) {
@@ -1380,7 +1388,8 @@ public class AdapterService extends Service {
        return listenerData.closeServerAndPendingSockets(mHandler);
    }

    private IncomingRfcommSocketInfo retrievePendingSocketForServiceRecord(
    @VisibleForTesting
    IncomingRfcommSocketInfo retrievePendingSocketForServiceRecord(
            ParcelUuid uuid, AttributionSource attributionSource) {
        IncomingRfcommSocketInfo socketInfo = new IncomingRfcommSocketInfo();

@@ -1548,7 +1557,8 @@ public class AdapterService extends Service {
        }
    }

    private boolean isAvailable() {
    @VisibleForTesting
    boolean isAvailable() {
        return !mCleaningUp;
    }

@@ -3864,7 +3874,8 @@ public class AdapterService extends Service {
        return mAdapterProperties.getName().length();
    }

    private static boolean isValidIoCapability(int capability) {
    @VisibleForTesting
    static boolean isValidIoCapability(int capability) {
        if (capability < 0 || capability >= BluetoothAdapter.IO_CAPABILITY_MAX) {
            Log.e(TAG, "Invalid IO capability value - " + capability);
            return false;
@@ -4793,7 +4804,8 @@ public class AdapterService extends Service {
        return mAdapterProperties.isA2dpOffloadEnabled();
    }

    private BluetoothActivityEnergyInfo reportActivityInfo() {
    @VisibleForTesting
    BluetoothActivityEnergyInfo reportActivityInfo() {
        if (mAdapterProperties.getState() != BluetoothAdapter.STATE_ON
                || !mAdapterProperties.isActivityAndEnergyReportingSupported()) {
            return null;
+3 −0
Original line number Diff line number Diff line
@@ -974,6 +974,9 @@ public class CsipSetCoordinatorService extends ProfileService {
        private CsipSetCoordinatorService mService;

        private CsipSetCoordinatorService getService(AttributionSource source) {
            if (Utils.isInstrumentationTestMode()) {
                return mService;
            }
            if (!Utils.checkServiceAvailable(mService, TAG)
                    || !Utils.checkCallerIsSystemOrActiveOrManagedUser(mService, TAG)) {
                return null;
Loading