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

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

More security check in IBluetooth am: 77a71c68

Change-Id: I30842af8f089fa82abed145312cf2b5dbedb8f13
parents 1393f719 77a71c68
Loading
Loading
Loading
Loading
+26 −8
Original line number Original line Diff line number Diff line
@@ -1909,20 +1909,25 @@ public class AdapterService extends Service {
        @Override
        @Override
        public void registerCallback(IBluetoothCallback callback) {
        public void registerCallback(IBluetoothCallback callback) {
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null) {
            if (service == null || !callerIsSystemOrActiveUser(TAG, "registerCallback")) {
                return;
                return;
            }
            }


            enforceBluetoothPrivilegedPermission(service);

            service.mCallbacks.register(callback);
            service.mCallbacks.register(callback);
        }
        }


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


            enforceBluetoothPrivilegedPermission(service);

            service.mCallbacks.unregister(callback);
            service.mCallbacks.unregister(callback);
        }
        }


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


            enforceBluetoothPrivilegedPermission(service);

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


            enforceBluetoothPrivilegedPermission(service);

            if (service.mMetadataListeners == null) {
            if (service.mMetadataListeners == null) {
                return false;
                return false;
            }
            }
@@ -2095,10 +2105,12 @@ 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) {
            AdapterService service = getService();
            AdapterService service = getService();
            if (service == null) {
            if (service == null || !callerIsSystemOrActiveUser(TAG, "setMetadata")) {
                return false;
                return false;
            }
            }


            enforceBluetoothPrivilegedPermission(service);

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


            enforceBluetoothPrivilegedPermission(service);

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


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


            enforceBluetoothPrivilegedPermission(service);

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


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


            enforceBluetoothPrivilegedPermission(service);

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