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

Commit 162d6c27 authored by Etienne Ruffieux's avatar Etienne Ruffieux
Browse files

Added missing check for managed user to Bluetooth APIs

When performing the check for the calling UID we were
missing to include managed users UID which resulted in many
Bluetooth APIs not working for apps installed in work
profile.

Bug: 260325902
Bug: 222125980
Bug: 138670165
Bug: 140479232
Bug: 112625123
Tag: #feature
Test: manual
Ignore-AOSP-First: Cherry-pick
Merged-In: If597c609c1deb0a6cf561f892f4afd9fab93782f
Change-Id: If597c609c1deb0a6cf561f892f4afd9fab93782f
parent 553e5bb9
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1301,8 +1301,8 @@ public class A2dpService extends ProfileService {

        @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
        private A2dpService getService(AttributionSource source) {
            if (!Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkServiceAvailable(mService, TAG)
            if (!Utils.checkServiceAvailable(mService, TAG)
                    || !Utils.checkCallerIsSystemOrActiveOrManagedUser(mService, TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(mService, source, TAG)) {
                return null;
            }
+2 −2
Original line number Diff line number Diff line
@@ -196,8 +196,8 @@ public class A2dpSinkService extends ProfileService {

        @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
        private A2dpSinkService getService(AttributionSource source) {
            if (!Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkServiceAvailable(mService, TAG)
            if (!Utils.checkServiceAvailable(mService, TAG)
                    || !Utils.checkCallerIsSystemOrActiveOrManagedUser(mService, TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(mService, source, TAG)) {
                return null;
            }
+2 −5
Original line number Diff line number Diff line
@@ -509,11 +509,8 @@ public class AvrcpTargetService extends ProfileService {

        @Override
        public void sendVolumeChanged(int volume) {
            if (!Utils.callerIsSystemOrActiveUser(TAG, "sendVolumeChanged")) {
                return;
            }

            if (mService == null) {
            if (mService == null
                    || !Utils.checkCallerIsSystemOrActiveOrManagedUser(mService, TAG)) {
                return;
            }

+2 −2
Original line number Diff line number Diff line
@@ -365,8 +365,8 @@ public class AvrcpControllerService extends ProfileService {

        @RequiresPermission(android.Manifest.permission.BLUETOOTH_CONNECT)
        private AvrcpControllerService getService(AttributionSource source) {
            if (!Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkServiceAvailable(mService, TAG)
            if (!Utils.checkServiceAvailable(mService, TAG)
                    || !Utils.checkCallerIsSystemOrActiveOrManagedUser(mService, TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(mService, source, TAG)) {
                return null;
            }
+2 −2
Original line number Diff line number Diff line
@@ -529,8 +529,8 @@ public class BatteryService extends ProfileService {
        private BatteryService getService(AttributionSource source) {
            BatteryService service = mServiceRef.get();

            if (!Utils.checkCallerIsSystemOrActiveUser(TAG)
                    || !Utils.checkServiceAvailable(service, TAG)
            if (!Utils.checkServiceAvailable(service, TAG)
                    || !Utils.checkCallerIsSystemOrActiveOrManagedUser(service, TAG)
                    || !Utils.checkConnectPermissionForDataDelivery(service, source, TAG)) {
                return null;
            }
Loading