AFAIK in most OSes an app is given access to USB and Bluetooth and it's fairly blanket access. I believe maybe iOS now has per app Bluetooth access controls but if you give an app bluetooth access it now has low-level access to Bluetooth.
Are there any standards for changing that to per app per device access? In other words at an OS level make it so app ABC can only talk to Bluetooth device XYZ but not just use bluetooth directly.
I don't know what standards would be needed for such a thing to happen. As it is for example I thought about buying a bluetooh speaker with display. The display is programmable from an custom iOS/Android app. I realized once I give the app access to "bluetooth" it has access not just to the device it claims to be targeted at. The app could also look for all other bluetooth devices possibly for nefarious reasons like hacking a known exploit.
Same for USB. It seems like it would be nice in 2019-2020 if I could make it so an app/service (say Leap Motion) is restricted from accessing all USB devices and instead only be able to access the device the app claims to target. For example like making it so the leap motion service and only access the Leap Motion device.
Is there any OS work in this direction? Or a virtual USB/Bluetooth firewall type thing that a user could prevent an app from seeing devices they don't want that app to be able to see?