Loading android/app/src/com/android/bluetooth/Utils.java +5 −9 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SuppressLint; import android.app.AppGlobals; import android.app.AppOpsManager; import android.app.BroadcastOptions; import android.bluetooth.BluetoothAdapter; Loading @@ -54,7 +53,6 @@ import android.os.Bundle; import android.os.ParcelUuid; import android.os.PowerExemptionManager; import android.os.Process; import android.os.RemoteException; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; Loading Loading @@ -414,17 +412,15 @@ public final class Utils { "Need DUMP permission"); } public static AttributionSource getCallingAttributionSource() { /** */ public static AttributionSource getCallingAttributionSource(Context context) { int callingUid = Binder.getCallingUid(); if (callingUid == android.os.Process.ROOT_UID) { callingUid = android.os.Process.SYSTEM_UID; } try { return new AttributionSource(callingUid, AppGlobals.getPackageManager().getPackagesForUid(callingUid)[0], null); } catch (RemoteException e) { throw new IllegalStateException("Failed to resolve AttributionSource", e); } context.getPackageManager().getPackagesForUid(callingUid)[0], null); } @SuppressLint("AndroidFrameworkRequiresPermission") Loading android/app/src/com/android/bluetooth/a2dp/A2dpService.java +24 −5 Original line number Diff line number Diff line Loading @@ -1236,7 +1236,11 @@ public class A2dpService extends ProfileService { @Override public boolean connect(BluetoothDevice device) { return connectWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return false; } return connectWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -1251,7 +1255,11 @@ public class A2dpService extends ProfileService { @Override public boolean disconnect(BluetoothDevice device) { return disconnectWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return false; } return disconnectWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -1266,7 +1274,11 @@ public class A2dpService extends ProfileService { @Override public List<BluetoothDevice> getConnectedDevices() { return getConnectedDevicesWithAttribution(Utils.getCallingAttributionSource()); if (mService == null) { return new ArrayList<>(0); } return getConnectedDevicesWithAttribution( Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -1280,8 +1292,11 @@ public class A2dpService extends ProfileService { @Override public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) { if (mService == null) { return new ArrayList<>(0); } return getDevicesMatchingConnectionStatesWithAttribution(states, Utils.getCallingAttributionSource()); Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -1296,7 +1311,11 @@ public class A2dpService extends ProfileService { @Override public int getConnectionState(BluetoothDevice device) { return getConnectionStateWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return BluetoothProfile.STATE_DISCONNECTED; } return getConnectionStateWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading android/app/src/com/android/bluetooth/btservice/AdapterService.java +22 −6 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ import android.text.TextUtils; import android.util.Base64; import android.util.Log; import android.util.SparseArray; import com.android.bluetooth.BluetoothMetricsProto; import com.android.bluetooth.BluetoothStatsLog; import com.android.bluetooth.Utils; Loading Loading @@ -1242,7 +1243,10 @@ public class AdapterService extends Service { @Override public String getAddress() { return getAddressWithAttribution(Utils.getCallingAttributionSource()); if (mService == null) { return null; } return getAddressWithAttribution(Utils.getCallingAttributionSource(mService)); } @Override Loading Loading @@ -1670,7 +1674,11 @@ public class AdapterService extends Service { @Override public int getConnectionState(BluetoothDevice device) { return getConnectionStateWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return BluetoothProfile.STATE_DISCONNECTED; } return getConnectionStateWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -1680,7 +1688,7 @@ public class AdapterService extends Service { AdapterService service = getService(); if (service == null || !Utils.checkConnectPermissionForDataDelivery( service, attributionSource, "AdapterService getConnectionState")) { return 0; return BluetoothProfile.STATE_DISCONNECTED; } return service.getConnectionState(device); Loading Loading @@ -1795,12 +1803,17 @@ public class AdapterService extends Service { } DeviceProperties deviceProp = service.mRemoteDevices.getDeviceProperties(device); return deviceProp != null ? deviceProp.getDeviceType() : BluetoothDevice.DEVICE_TYPE_UNKNOWN; return deviceProp != null ? deviceProp.getDeviceType() : BluetoothDevice.DEVICE_TYPE_UNKNOWN; } @Override public String getRemoteAlias(BluetoothDevice device) { return getRemoteAliasWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return null; } return getRemoteAliasWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading Loading @@ -1883,8 +1896,11 @@ public class AdapterService extends Service { @Override public boolean fetchRemoteUuids(BluetoothDevice device) { if (mService == null) { return false; } return fetchRemoteUuidsWithAttribution(device, TRANSPORT_AUTO, Utils.getCallingAttributionSource()); Utils.getCallingAttributionSource(mService)); } @Override Loading android/app/src/com/android/bluetooth/hfp/HeadsetService.java +20 −4 Original line number Diff line number Diff line Loading @@ -435,7 +435,11 @@ public class HeadsetService extends ProfileService { @Override public boolean connect(BluetoothDevice device) { return connectWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return false; } return connectWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -450,7 +454,11 @@ public class HeadsetService extends ProfileService { @Override public boolean disconnect(BluetoothDevice device) { return disconnectWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return false; } return disconnectWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -465,7 +473,11 @@ public class HeadsetService extends ProfileService { @Override public List<BluetoothDevice> getConnectedDevices() { return getConnectedDevicesWithAttribution(Utils.getCallingAttributionSource()); if (mService == null) { return new ArrayList<BluetoothDevice>(0); } return getConnectedDevicesWithAttribution( Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -489,7 +501,11 @@ public class HeadsetService extends ProfileService { @Override public int getConnectionState(BluetoothDevice device) { return getConnectionStateWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return BluetoothProfile.STATE_DISCONNECTED; } return getConnectionStateWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading Loading
android/app/src/com/android/bluetooth/Utils.java +5 −9 Original line number Diff line number Diff line Loading @@ -33,7 +33,6 @@ import android.annotation.NonNull; import android.annotation.Nullable; import android.annotation.RequiresPermission; import android.annotation.SuppressLint; import android.app.AppGlobals; import android.app.AppOpsManager; import android.app.BroadcastOptions; import android.bluetooth.BluetoothAdapter; Loading @@ -54,7 +53,6 @@ import android.os.Bundle; import android.os.ParcelUuid; import android.os.PowerExemptionManager; import android.os.Process; import android.os.RemoteException; import android.os.SystemProperties; import android.os.UserHandle; import android.os.UserManager; Loading Loading @@ -414,17 +412,15 @@ public final class Utils { "Need DUMP permission"); } public static AttributionSource getCallingAttributionSource() { /** */ public static AttributionSource getCallingAttributionSource(Context context) { int callingUid = Binder.getCallingUid(); if (callingUid == android.os.Process.ROOT_UID) { callingUid = android.os.Process.SYSTEM_UID; } try { return new AttributionSource(callingUid, AppGlobals.getPackageManager().getPackagesForUid(callingUid)[0], null); } catch (RemoteException e) { throw new IllegalStateException("Failed to resolve AttributionSource", e); } context.getPackageManager().getPackagesForUid(callingUid)[0], null); } @SuppressLint("AndroidFrameworkRequiresPermission") Loading
android/app/src/com/android/bluetooth/a2dp/A2dpService.java +24 −5 Original line number Diff line number Diff line Loading @@ -1236,7 +1236,11 @@ public class A2dpService extends ProfileService { @Override public boolean connect(BluetoothDevice device) { return connectWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return false; } return connectWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -1251,7 +1255,11 @@ public class A2dpService extends ProfileService { @Override public boolean disconnect(BluetoothDevice device) { return disconnectWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return false; } return disconnectWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -1266,7 +1274,11 @@ public class A2dpService extends ProfileService { @Override public List<BluetoothDevice> getConnectedDevices() { return getConnectedDevicesWithAttribution(Utils.getCallingAttributionSource()); if (mService == null) { return new ArrayList<>(0); } return getConnectedDevicesWithAttribution( Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -1280,8 +1292,11 @@ public class A2dpService extends ProfileService { @Override public List<BluetoothDevice> getDevicesMatchingConnectionStates(int[] states) { if (mService == null) { return new ArrayList<>(0); } return getDevicesMatchingConnectionStatesWithAttribution(states, Utils.getCallingAttributionSource()); Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -1296,7 +1311,11 @@ public class A2dpService extends ProfileService { @Override public int getConnectionState(BluetoothDevice device) { return getConnectionStateWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return BluetoothProfile.STATE_DISCONNECTED; } return getConnectionStateWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading
android/app/src/com/android/bluetooth/btservice/AdapterService.java +22 −6 Original line number Diff line number Diff line Loading @@ -92,6 +92,7 @@ import android.text.TextUtils; import android.util.Base64; import android.util.Log; import android.util.SparseArray; import com.android.bluetooth.BluetoothMetricsProto; import com.android.bluetooth.BluetoothStatsLog; import com.android.bluetooth.Utils; Loading Loading @@ -1242,7 +1243,10 @@ public class AdapterService extends Service { @Override public String getAddress() { return getAddressWithAttribution(Utils.getCallingAttributionSource()); if (mService == null) { return null; } return getAddressWithAttribution(Utils.getCallingAttributionSource(mService)); } @Override Loading Loading @@ -1670,7 +1674,11 @@ public class AdapterService extends Service { @Override public int getConnectionState(BluetoothDevice device) { return getConnectionStateWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return BluetoothProfile.STATE_DISCONNECTED; } return getConnectionStateWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -1680,7 +1688,7 @@ public class AdapterService extends Service { AdapterService service = getService(); if (service == null || !Utils.checkConnectPermissionForDataDelivery( service, attributionSource, "AdapterService getConnectionState")) { return 0; return BluetoothProfile.STATE_DISCONNECTED; } return service.getConnectionState(device); Loading Loading @@ -1795,12 +1803,17 @@ public class AdapterService extends Service { } DeviceProperties deviceProp = service.mRemoteDevices.getDeviceProperties(device); return deviceProp != null ? deviceProp.getDeviceType() : BluetoothDevice.DEVICE_TYPE_UNKNOWN; return deviceProp != null ? deviceProp.getDeviceType() : BluetoothDevice.DEVICE_TYPE_UNKNOWN; } @Override public String getRemoteAlias(BluetoothDevice device) { return getRemoteAliasWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return null; } return getRemoteAliasWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading Loading @@ -1883,8 +1896,11 @@ public class AdapterService extends Service { @Override public boolean fetchRemoteUuids(BluetoothDevice device) { if (mService == null) { return false; } return fetchRemoteUuidsWithAttribution(device, TRANSPORT_AUTO, Utils.getCallingAttributionSource()); Utils.getCallingAttributionSource(mService)); } @Override Loading
android/app/src/com/android/bluetooth/hfp/HeadsetService.java +20 −4 Original line number Diff line number Diff line Loading @@ -435,7 +435,11 @@ public class HeadsetService extends ProfileService { @Override public boolean connect(BluetoothDevice device) { return connectWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return false; } return connectWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -450,7 +454,11 @@ public class HeadsetService extends ProfileService { @Override public boolean disconnect(BluetoothDevice device) { return disconnectWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return false; } return disconnectWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -465,7 +473,11 @@ public class HeadsetService extends ProfileService { @Override public List<BluetoothDevice> getConnectedDevices() { return getConnectedDevicesWithAttribution(Utils.getCallingAttributionSource()); if (mService == null) { return new ArrayList<BluetoothDevice>(0); } return getConnectedDevicesWithAttribution( Utils.getCallingAttributionSource(mService)); } @Override Loading @@ -489,7 +501,11 @@ public class HeadsetService extends ProfileService { @Override public int getConnectionState(BluetoothDevice device) { return getConnectionStateWithAttribution(device, Utils.getCallingAttributionSource()); if (mService == null) { return BluetoothProfile.STATE_DISCONNECTED; } return getConnectionStateWithAttribution(device, Utils.getCallingAttributionSource(mService)); } @Override Loading