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

Commit 239b7849 authored by Jeff Sharkey's avatar Jeff Sharkey
Browse files

Force AttributionSource on all BluetoothDevice.

When unparceling an BluetoothDevice instance, we use the default
process-wide AttributionSource, but in the case of incoming AIDL
calls we know the AttributionSource that the remote caller intended
to use.  This change brings these arguments into alignment by forcing
the AttributionSource for the BluetoothDevice AIDL argument.

Longer term we should find a better way of transporting these
values in AIDL directly, but this is the safest mechanical change
to make at this late stage of the release.

Bug: 188391719
Test: atest BluetoothInstrumentationTests
Change-Id: I614bf590c97fa19e03dc8aabf2badea233f63a4a
parent 85eedeef
Loading
Loading
Loading
Loading
+16 −0
Original line number Original line Diff line number Diff line
@@ -31,6 +31,7 @@ import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothUuid;
import android.bluetooth.BluetoothUuid;
import android.bluetooth.BufferConstraints;
import android.bluetooth.BufferConstraints;
import android.bluetooth.IBluetoothA2dp;
import android.bluetooth.IBluetoothA2dp;
import android.content.Attributable;
import android.content.AttributionSource;
import android.content.AttributionSource;
import android.content.BroadcastReceiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Context;
@@ -1241,6 +1242,7 @@ public class A2dpService extends ProfileService {


        @Override
        @Override
        public boolean connectWithAttribution(BluetoothDevice device, AttributionSource source) {
        public boolean connectWithAttribution(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return false;
                return false;
@@ -1255,6 +1257,7 @@ public class A2dpService extends ProfileService {


        @Override
        @Override
        public boolean disconnectWithAttribution(BluetoothDevice device, AttributionSource source) {
        public boolean disconnectWithAttribution(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return false;
                return false;
@@ -1300,6 +1303,7 @@ public class A2dpService extends ProfileService {
        @Override
        @Override
        public int getConnectionStateWithAttribution(BluetoothDevice device,
        public int getConnectionStateWithAttribution(BluetoothDevice device,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return BluetoothProfile.STATE_DISCONNECTED;
                return BluetoothProfile.STATE_DISCONNECTED;
@@ -1309,6 +1313,7 @@ public class A2dpService extends ProfileService {


        @Override
        @Override
        public boolean setActiveDevice(BluetoothDevice device, AttributionSource source) {
        public boolean setActiveDevice(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return false;
                return false;
@@ -1328,6 +1333,7 @@ public class A2dpService extends ProfileService {
        @Override
        @Override
        public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy,
        public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return false;
                return false;
@@ -1337,6 +1343,7 @@ public class A2dpService extends ProfileService {


        @Override
        @Override
        public int getPriority(BluetoothDevice device, AttributionSource source) {
        public int getPriority(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return BluetoothProfile.CONNECTION_POLICY_UNKNOWN;
                return BluetoothProfile.CONNECTION_POLICY_UNKNOWN;
@@ -1346,6 +1353,7 @@ public class A2dpService extends ProfileService {


        @Override
        @Override
        public int getConnectionPolicy(BluetoothDevice device, AttributionSource source) {
        public int getConnectionPolicy(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return BluetoothProfile.CONNECTION_POLICY_UNKNOWN;
                return BluetoothProfile.CONNECTION_POLICY_UNKNOWN;
@@ -1371,6 +1379,7 @@ public class A2dpService extends ProfileService {


        @Override
        @Override
        public boolean isA2dpPlaying(BluetoothDevice device, AttributionSource source) {
        public boolean isA2dpPlaying(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return false;
                return false;
@@ -1381,6 +1390,7 @@ public class A2dpService extends ProfileService {
        @Override
        @Override
        public BluetoothCodecStatus getCodecStatus(BluetoothDevice device,
        public BluetoothCodecStatus getCodecStatus(BluetoothDevice device,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return null;
                return null;
@@ -1391,6 +1401,7 @@ public class A2dpService extends ProfileService {
        @Override
        @Override
        public void setCodecConfigPreference(BluetoothDevice device,
        public void setCodecConfigPreference(BluetoothDevice device,
                BluetoothCodecConfig codecConfig, AttributionSource source) {
                BluetoothCodecConfig codecConfig, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return;
                return;
@@ -1400,6 +1411,7 @@ public class A2dpService extends ProfileService {


        @Override
        @Override
        public void enableOptionalCodecs(BluetoothDevice device, AttributionSource source) {
        public void enableOptionalCodecs(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return;
                return;
@@ -1409,6 +1421,7 @@ public class A2dpService extends ProfileService {


        @Override
        @Override
        public void disableOptionalCodecs(BluetoothDevice device, AttributionSource source) {
        public void disableOptionalCodecs(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return;
                return;
@@ -1418,6 +1431,7 @@ public class A2dpService extends ProfileService {


        @Override
        @Override
        public int supportsOptionalCodecs(BluetoothDevice device, AttributionSource source) {
        public int supportsOptionalCodecs(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return BluetoothA2dp.OPTIONAL_CODECS_SUPPORT_UNKNOWN;
                return BluetoothA2dp.OPTIONAL_CODECS_SUPPORT_UNKNOWN;
@@ -1427,6 +1441,7 @@ public class A2dpService extends ProfileService {


        @Override
        @Override
        public int getOptionalCodecsEnabled(BluetoothDevice device, AttributionSource source) {
        public int getOptionalCodecsEnabled(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return BluetoothA2dp.OPTIONAL_CODECS_PREF_UNKNOWN;
                return BluetoothA2dp.OPTIONAL_CODECS_PREF_UNKNOWN;
@@ -1437,6 +1452,7 @@ public class A2dpService extends ProfileService {
        @Override
        @Override
        public void setOptionalCodecsEnabled(BluetoothDevice device, int value,
        public void setOptionalCodecsEnabled(BluetoothDevice device, int value,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpService service = getService(source);
            A2dpService service = getService(source);
            if (service == null) {
            if (service == null) {
                return;
                return;
+8 −0
Original line number Original line Diff line number Diff line
@@ -21,6 +21,7 @@ import android.bluetooth.BluetoothAudioConfig;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.IBluetoothA2dpSink;
import android.bluetooth.IBluetoothA2dpSink;
import android.content.Attributable;
import android.content.AttributionSource;
import android.content.AttributionSource;
import android.media.AudioManager;
import android.media.AudioManager;
import android.util.Log;
import android.util.Log;
@@ -206,6 +207,7 @@ public class A2dpSinkService extends ProfileService {


        @Override
        @Override
        public boolean connect(BluetoothDevice device, AttributionSource source) {
        public boolean connect(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            A2dpSinkService service = getService(source);
            if (service == null) {
            if (service == null) {
                return false;
                return false;
@@ -215,6 +217,7 @@ public class A2dpSinkService extends ProfileService {


        @Override
        @Override
        public boolean disconnect(BluetoothDevice device, AttributionSource source) {
        public boolean disconnect(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            A2dpSinkService service = getService(source);
            if (service == null) {
            if (service == null) {
                return false;
                return false;
@@ -243,6 +246,7 @@ public class A2dpSinkService extends ProfileService {


        @Override
        @Override
        public int getConnectionState(BluetoothDevice device, AttributionSource source) {
        public int getConnectionState(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            A2dpSinkService service = getService(source);
            if (service == null) {
            if (service == null) {
                return BluetoothProfile.STATE_DISCONNECTED;
                return BluetoothProfile.STATE_DISCONNECTED;
@@ -253,6 +257,7 @@ public class A2dpSinkService extends ProfileService {
        @Override
        @Override
        public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy,
        public boolean setConnectionPolicy(BluetoothDevice device, int connectionPolicy,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            A2dpSinkService service = getService(source);
            if (service == null) {
            if (service == null) {
                return false;
                return false;
@@ -262,6 +267,7 @@ public class A2dpSinkService extends ProfileService {


        @Override
        @Override
        public int getConnectionPolicy(BluetoothDevice device, AttributionSource source) {
        public int getConnectionPolicy(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            A2dpSinkService service = getService(source);
            if (service == null) {
            if (service == null) {
                return BluetoothProfile.CONNECTION_POLICY_UNKNOWN;
                return BluetoothProfile.CONNECTION_POLICY_UNKNOWN;
@@ -271,6 +277,7 @@ public class A2dpSinkService extends ProfileService {


        @Override
        @Override
        public boolean isA2dpPlaying(BluetoothDevice device, AttributionSource source) {
        public boolean isA2dpPlaying(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            A2dpSinkService service = getService(source);
            if (service == null) {
            if (service == null) {
                return false;
                return false;
@@ -281,6 +288,7 @@ public class A2dpSinkService extends ProfileService {
        @Override
        @Override
        public BluetoothAudioConfig getAudioConfig(BluetoothDevice device,
        public BluetoothAudioConfig getAudioConfig(BluetoothDevice device,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            A2dpSinkService service = getService(source);
            A2dpSinkService service = getService(source);
            if (service == null) {
            if (service == null) {
                return null;
                return null;
+4 −0
Original line number Original line Diff line number Diff line
@@ -22,6 +22,7 @@ import android.bluetooth.BluetoothAvrcpPlayerSettings;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothDevice;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.BluetoothProfile;
import android.bluetooth.IBluetoothAvrcpController;
import android.bluetooth.IBluetoothAvrcpController;
import android.content.Attributable;
import android.content.AttributionSource;
import android.content.AttributionSource;
import android.content.Intent;
import android.content.Intent;
import android.support.v4.media.MediaBrowserCompat.MediaItem;
import android.support.v4.media.MediaBrowserCompat.MediaItem;
@@ -387,6 +388,7 @@ public class AvrcpControllerService extends ProfileService {


        @Override
        @Override
        public int getConnectionState(BluetoothDevice device, AttributionSource source) {
        public int getConnectionState(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AvrcpControllerService service = getService(source);
            AvrcpControllerService service = getService(source);
            if (service == null) {
            if (service == null) {
                return BluetoothProfile.STATE_DISCONNECTED;
                return BluetoothProfile.STATE_DISCONNECTED;
@@ -397,6 +399,7 @@ public class AvrcpControllerService extends ProfileService {
        @Override
        @Override
        public void sendGroupNavigationCmd(BluetoothDevice device, int keyCode, int keyState,
        public void sendGroupNavigationCmd(BluetoothDevice device, int keyCode, int keyState,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AvrcpControllerService service = getService(source);
            AvrcpControllerService service = getService(source);
            if (service == null) {
            if (service == null) {
                return;
                return;
@@ -418,6 +421,7 @@ public class AvrcpControllerService extends ProfileService {
        @Override
        @Override
        public BluetoothAvrcpPlayerSettings getPlayerSettings(BluetoothDevice device,
        public BluetoothAvrcpPlayerSettings getPlayerSettings(BluetoothDevice device,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AvrcpControllerService service = getService(source);
            AvrcpControllerService service = getService(source);
            if (service == null) {
            if (service == null) {
                return null;
                return null;
+35 −0
Original line number Original line Diff line number Diff line
@@ -58,6 +58,7 @@ import android.bluetooth.IBluetoothSocketManager;
import android.bluetooth.OobData;
import android.bluetooth.OobData;
import android.bluetooth.UidTraffic;
import android.bluetooth.UidTraffic;
import android.companion.CompanionDeviceManager;
import android.companion.CompanionDeviceManager;
import android.content.Attributable;
import android.content.AttributionSource;
import android.content.AttributionSource;
import android.content.BroadcastReceiver;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Context;
@@ -1560,6 +1561,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean createBond(BluetoothDevice device, int transport, OobData remoteP192Data,
        public boolean createBond(BluetoothDevice device, int transport, OobData remoteP192Data,
                OobData remoteP256Data, AttributionSource attributionSource) {
                OobData remoteP256Data, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveOrManagedUser(service, TAG, "createBond")
            if (service == null || !callerIsSystemOrActiveOrManagedUser(service, TAG, "createBond")
                    || !Utils.checkConnectPermissionForDataDelivery(
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -1579,6 +1581,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean cancelBondProcess(
        public boolean cancelBondProcess(
                BluetoothDevice device, AttributionSource attributionSource) {
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "cancelBondProcess")
            if (service == null || !callerIsSystemOrActiveUser(TAG, "cancelBondProcess")
                    || !Utils.checkConnectPermissionForDataDelivery(
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -1596,6 +1599,7 @@ public class AdapterService extends Service {


        @Override
        @Override
        public boolean removeBond(BluetoothDevice device, AttributionSource attributionSource) {
        public boolean removeBond(BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "removeBond")
            if (service == null || !callerIsSystemOrActiveUser(TAG, "removeBond")
                    || !Utils.checkConnectPermissionForDataDelivery(
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -1619,6 +1623,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public int getBondState(BluetoothDevice device, AttributionSource attributionSource) {
        public int getBondState(BluetoothDevice device, AttributionSource attributionSource) {
            // don't check caller, may be called from system UI
            // don't check caller, may be called from system UI
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !Utils.checkConnectPermissionForDataDelivery(
            if (service == null || !Utils.checkConnectPermissionForDataDelivery(
                    service, attributionSource, "AdapterService getBondState")) {
                    service, attributionSource, "AdapterService getBondState")) {
@@ -1632,6 +1637,7 @@ public class AdapterService extends Service {
        public boolean isBondingInitiatedLocally(
        public boolean isBondingInitiatedLocally(
                BluetoothDevice device, AttributionSource attributionSource) {
                BluetoothDevice device, AttributionSource attributionSource) {
            // don't check caller, may be called from system UI
            // don't check caller, may be called from system UI
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !Utils.checkConnectPermissionForDataDelivery(
            if (service == null || !Utils.checkConnectPermissionForDataDelivery(
                    service, attributionSource, "AdapterService isBondingInitiatedLocally")) {
                    service, attributionSource, "AdapterService isBondingInitiatedLocally")) {
@@ -1672,6 +1678,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public int getConnectionStateWithAttribution(
        public int getConnectionStateWithAttribution(
                BluetoothDevice device, AttributionSource attributionSource) {
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !Utils.checkConnectPermissionForDataDelivery(
            if (service == null || !Utils.checkConnectPermissionForDataDelivery(
                    service, attributionSource, "AdapterService getConnectionState")) {
                    service, attributionSource, "AdapterService getConnectionState")) {
@@ -1683,6 +1690,7 @@ public class AdapterService extends Service {


        @Override
        @Override
        public boolean canBondWithoutDialog(BluetoothDevice device, AttributionSource source) {
        public boolean canBondWithoutDialog(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
@@ -1709,6 +1717,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean setActiveDevice(BluetoothDevice device, @ActiveDeviceUse int profiles,
        public boolean setActiveDevice(BluetoothDevice device, @ActiveDeviceUse int profiles,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -1721,6 +1730,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean connectAllEnabledProfiles(BluetoothDevice device,
        public boolean connectAllEnabledProfiles(BluetoothDevice device,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -1742,6 +1752,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean disconnectAllEnabledProfiles(BluetoothDevice device,
        public boolean disconnectAllEnabledProfiles(BluetoothDevice device,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -1762,6 +1773,7 @@ public class AdapterService extends Service {


        @Override
        @Override
        public String getRemoteName(BluetoothDevice device, AttributionSource attributionSource) {
        public String getRemoteName(BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteName")
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteName")
@@ -1775,6 +1787,7 @@ public class AdapterService extends Service {


        @Override
        @Override
        public int getRemoteType(BluetoothDevice device, AttributionSource attributionSource) {
        public int getRemoteType(BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteType")
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteType")
@@ -1795,6 +1808,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public String getRemoteAliasWithAttribution(
        public String getRemoteAliasWithAttribution(
                BluetoothDevice device, AttributionSource attributionSource) {
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteAlias")
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteAlias")
@@ -1810,6 +1824,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public int setRemoteAlias(BluetoothDevice device, String name,
        public int setRemoteAlias(BluetoothDevice device, String name,
                AttributionSource attributionSource) {
                AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null) {
            if (service == null) {
                return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
                return BluetoothStatusCodes.ERROR_BLUETOOTH_NOT_ENABLED;
@@ -1840,6 +1855,7 @@ public class AdapterService extends Service {


        @Override
        @Override
        public int getRemoteClass(BluetoothDevice device, AttributionSource attributionSource) {
        public int getRemoteClass(BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteClass")
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteClass")
@@ -1855,6 +1871,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public ParcelUuid[] getRemoteUuids(
        public ParcelUuid[] getRemoteUuids(
                BluetoothDevice device, AttributionSource attributionSource) {
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteUuids")
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "getRemoteUuids")
@@ -1874,6 +1891,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean fetchRemoteUuidsWithAttribution(
        public boolean fetchRemoteUuidsWithAttribution(
                BluetoothDevice device, AttributionSource attributionSource) {
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "fetchRemoteUuids")
                    || !callerIsSystemOrActiveOrManagedUser(service, TAG, "fetchRemoteUuids")
@@ -1890,6 +1908,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean setPin(BluetoothDevice device, boolean accept, int len, byte[] pinCode,
        public boolean setPin(BluetoothDevice device, boolean accept, int len, byte[] pinCode,
                AttributionSource attributionSource) {
                AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setPin")
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setPin")
                    || !Utils.checkConnectPermissionForDataDelivery(
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -1915,6 +1934,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean setPasskey(BluetoothDevice device, boolean accept, int len, byte[] passkey,
        public boolean setPasskey(BluetoothDevice device, boolean accept, int len, byte[] passkey,
                AttributionSource attributionSource) {
                AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setPasskey")
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setPasskey")
                    || !Utils.checkConnectPermissionForDataDelivery(
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -1942,6 +1962,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean setPairingConfirmation(BluetoothDevice device, boolean accept,
        public boolean setPairingConfirmation(BluetoothDevice device, boolean accept,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -1965,6 +1986,7 @@ public class AdapterService extends Service {


        @Override
        @Override
        public boolean getSilenceMode(BluetoothDevice device, AttributionSource source) {
        public boolean getSilenceMode(BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -1981,6 +2003,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean setSilenceMode(BluetoothDevice device, boolean silence,
        public boolean setSilenceMode(BluetoothDevice device, boolean silence,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -1997,6 +2020,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public int getPhonebookAccessPermission(
        public int getPhonebookAccessPermission(
                BluetoothDevice device, AttributionSource attributionSource) {
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getPhonebookAccessPermission")
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getPhonebookAccessPermission")
                    || !Utils.checkConnectPermissionForDataDelivery(
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -2010,6 +2034,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean setPhonebookAccessPermission(BluetoothDevice device, int value,
        public boolean setPhonebookAccessPermission(BluetoothDevice device, int value,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2026,6 +2051,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public int getMessageAccessPermission(
        public int getMessageAccessPermission(
                BluetoothDevice device, AttributionSource attributionSource) {
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getMessageAccessPermission")
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getMessageAccessPermission")
                    || !Utils.checkConnectPermissionForDataDelivery(
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -2039,6 +2065,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean setMessageAccessPermission(BluetoothDevice device, int value,
        public boolean setMessageAccessPermission(BluetoothDevice device, int value,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2055,6 +2082,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public int getSimAccessPermission(
        public int getSimAccessPermission(
                BluetoothDevice device, AttributionSource attributionSource) {
                BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getSimAccessPermission")
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getSimAccessPermission")
                    || !Utils.checkConnectPermissionForDataDelivery(
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -2068,6 +2096,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean setSimAccessPermission(BluetoothDevice device, int value,
        public boolean setSimAccessPermission(BluetoothDevice device, int value,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2094,6 +2123,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean sdpSearch(
        public boolean sdpSearch(
                BluetoothDevice device, ParcelUuid uuid, AttributionSource attributionSource) {
                BluetoothDevice device, ParcelUuid uuid, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "sdpSearch")
            if (service == null || !callerIsSystemOrActiveUser(TAG, "sdpSearch")
                    || !Utils.checkConnectPermissionForDataDelivery(
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -2110,6 +2140,7 @@ public class AdapterService extends Service {


        @Override
        @Override
        public int getBatteryLevel(BluetoothDevice device, AttributionSource attributionSource) {
        public int getBatteryLevel(BluetoothDevice device, AttributionSource attributionSource) {
            Attributable.setAttributionSource(device, attributionSource);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getBatteryLevel")
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getBatteryLevel")
                    || !Utils.checkConnectPermissionForDataDelivery(
                    || !Utils.checkConnectPermissionForDataDelivery(
@@ -2338,6 +2369,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean registerMetadataListener(IBluetoothMetadataListener listener,
        public boolean registerMetadataListener(IBluetoothMetadataListener listener,
                BluetoothDevice device, AttributionSource source) {
                BluetoothDevice device, AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2365,6 +2397,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean unregisterMetadataListener(BluetoothDevice device,
        public boolean unregisterMetadataListener(BluetoothDevice device,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2386,6 +2419,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public boolean setMetadata(BluetoothDevice device, int key, byte[] value,
        public boolean setMetadata(BluetoothDevice device, int key, byte[] value,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
@@ -2404,6 +2438,7 @@ public class AdapterService extends Service {
        @Override
        @Override
        public byte[] getMetadata(BluetoothDevice device, int key,
        public byte[] getMetadata(BluetoothDevice device, int key,
                AttributionSource source) {
                AttributionSource source) {
            Attributable.setAttributionSource(device, source);
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null
            if (service == null
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkCallerIsSystemOrActiveUser(TAG)
+10 −0

File changed.

Preview size limit exceeded, changes collapsed.

Loading