More reliable hardware control
-
While Ubuntu Touch is a bit different than Ubuntu Desktop, I think it would be better if we have more control over hardware in mobile devices.
The main problem I usually have is with the sound system. Most of the phones uses multiple speakers, also we use headphones and external speakers for personal purposes. If I have the the control over all of the speakers simultaneously like simply in the navigation bar, I can control what apps to use which speaker and also what ports, It would be the best.I am not just asking about improving the controls of sound system, I am also asking for other hardware like camera, bluetooth, wifi and other sensors. Wouldn't it be better if I can use my triple back and front two cameras at the same time? I meant I will have 5 different cameras at the same time running. Also have the control which camera to use which apps in the navigation bar. Same for the others.
If we have more control over hardware, It will feel like more Linux. Maybe I didn't ask the right question. I feel like its really have more complex uses in real life and It is being part of us. You may say there's some third party apps to control them, but I believe that doesn't feel like Linux. So, thank you if you take it in mind.
-
@shohag you are asking good questions, but the answer is quite complex: All hardware, including sound, is managed by the Android container running below the Linux you love. And that container has complex, unstable APIs (changing on every major Android version like every 2 years), so following up on those changes is already breathtaking. On top, there is no direct access to physical cameras possible, you need to use the Android camera API with all its good and bad things.
Writing code that allows what you want is not as simple as it would be in Linux. One of the barriers is the different linker used in Android, bionic, which makes all that container stuff incompatible to be called from glibc-compiled stuff we are using in the Ubuntu part. All that needs to be mangled through a thing called libhybris, with marshalling and unmarshalling all API calls in a proper way.
Also, many functions in Android are managed by userspace daemons running in the Android container, while kernel drivers are only stubs with no brain (that is to not violate the GPLv2 requirements of the kernel code). So, even on kernel level you cannot access the hardware in the usual way.
With a team only of a handful of dedicated devs we can only have a bare minimum support of hardware, but we will add more over time. Basic support for NFC just landed and will need more effort to make it really usable.
Support for more camera lenses is also something I can imagine. Heck we even do not have a compass sensor to be used. SO much to do, so little time...
-
@shohag PS the Android camera API probably does not allow to use multiple picture or video streams at the same time. You might be able to select which camera you want to take the picture from or the video.
All that might only change if Non-Android phones with mainline kernel driver support will be built. But I doubt luxury models will be available soon, and you can see with the Pinephone how long it takes even for that little gem to get polished - man years of work, and still its not a daily for most people.