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

Commit bb409162 authored by Ugo Yu's avatar Ugo Yu Committed by Automerger Merge Worker
Browse files

More security check in IBluetooth am: 456141d4

Change-Id: I91de07564b9c5435c234d9a93633416060bd1b88
parents 51cb573c 456141d4
Loading
Loading
Loading
Loading
+26 −8
Original line number Diff line number Diff line
@@ -1911,20 +1911,25 @@ public class AdapterService extends Service {
        @Override
        public void registerCallback(IBluetoothCallback callback) {
            AdapterService service = getService();
            if (service == null) {
            if (service == null || !callerIsSystemOrActiveUser(TAG, "registerCallback")) {
                return;
            }

            enforceBluetoothPrivilegedPermission(service);

            service.mCallbacks.register(callback);
        }

        @Override
        public void unregisterCallback(IBluetoothCallback callback) {
            AdapterService service = getService();
            if (service == null || service.mCallbacks == null) {
            if (service == null || service.mCallbacks == null
                    || !callerIsSystemOrActiveUser(TAG, "unregisterCallback")) {
                return;
            }

            enforceBluetoothPrivilegedPermission(service);

            service.mCallbacks.unregister(callback);
        }

@@ -2059,10 +2064,12 @@ public class AdapterService extends Service {
        public boolean registerMetadataListener(IBluetoothMetadataListener listener,
                BluetoothDevice device) {
            AdapterService service = getService();
            if (service == null) {
            if (service == null || !callerIsSystemOrActiveUser(TAG, "registerMetadataListener")) {
                return false;
            }

            enforceBluetoothPrivilegedPermission(service);

            if (service.mMetadataListeners == null) {
                return false;
            }
@@ -2081,10 +2088,13 @@ public class AdapterService extends Service {
        @Override
        public boolean unregisterMetadataListener(BluetoothDevice device) {
            AdapterService service = getService();
            if (service == null) {
            if (service == null
                    || !callerIsSystemOrActiveUser(TAG, "unregisterMetadataListener")) {
                return false;
            }

            enforceBluetoothPrivilegedPermission(service);

            if (service.mMetadataListeners == null) {
                return false;
            }
@@ -2097,10 +2107,12 @@ public class AdapterService extends Service {
        @Override
        public boolean setMetadata(BluetoothDevice device, int key, byte[] value) {
            AdapterService service = getService();
            if (service == null) {
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setMetadata")) {
                return false;
            }

            enforceBluetoothPrivilegedPermission(service);

            if (value.length > BluetoothDevice.METADATA_MAX_LENGTH) {
                return false;
            }
@@ -2110,10 +2122,12 @@ public class AdapterService extends Service {
        @Override
        public byte[] getMetadata(BluetoothDevice device, int key) {
            AdapterService service = getService();
            if (service == null) {
            if (service == null || !callerIsSystemOrActiveUser(TAG, "getMetadata")) {
                return null;
            }

            enforceBluetoothPrivilegedPermission(service);

            return service.mDatabaseManager.getCustomMeta(device, key);
        }

@@ -2127,20 +2141,24 @@ public class AdapterService extends Service {
        @Override
        public void onLeServiceUp() {
            AdapterService service = getService();
            if (service == null) {
            if (service == null || !callerIsSystemOrActiveUser(TAG, "onLeServiceUp")) {
                return;
            }

            enforceBluetoothPrivilegedPermission(service);

            service.mAdapterStateMachine.sendMessage(AdapterState.USER_TURN_ON);
        }

        @Override
        public void onBrEdrDown() {
            AdapterService service = getService();
            if (service == null) {
            if (service == null || !callerIsSystemOrActiveUser(TAG, "onBrEdrDown")) {
                return;
            }

            enforceBluetoothPrivilegedPermission(service);

            service.mAdapterStateMachine.sendMessage(AdapterState.BLE_TURN_OFF);
        }