- How to step by step set up a data connection over QMI
- Uses QMI USB modem, probably quite similar for us - but over QRTR instead of USB
- An introduction to libqmi
- QMI is based on "services" which provide different functionality
- Introduction to ModemManager
- Nice PDF explaining how the pieces go together.
- sharing a QMI port between processes
- The new wwan interface only lets one process "own" the port, so a proxy daemon in userspace has to negotiate everything
- This already fits the Android model well
libqmi is a GLIB based library which offers the ability to talk over QMI, interact with services etc. It's the library used by ModemManager to provide QMI based data, SMS and calling on the Snapdragon 845 platform.
GLIB doesn't support bionic libc, so we can't use it on Android, we need something new! Thankfully libqmi and qmicli can be compiled with -DMESSAGE_ENABLE_TRACE to CFLAGS
to enable dumping all the QMI messages and their contents!
Similar functionality to libqmi, it's a QMI library...
upstream: https://git.openwrt.org/?p=project/uqmi.git;a=summary Someone wrote an Android.mk (pretty simple, should port to Soong): https://github.com/rpetrovski/android-x86-external-uqmi/commit/b5170cf4df28ec157930904b61dd572c1819c75b
No QRTR support, so would have to port, ModemManager have libqrtr-glib so does Bjorn, MM libqrtr is also GLIB so it's a no-go, Bjorns should implement enough features, or be more easily extended.
Not sure how these tie together, I guess QRTR becomes the backend instead of the qmi cdc chardev?