I went a little bit further in this analysis.
I initially tested a pre-built image from February 2021, where this USB modem was working fine, and I compared the ModemManager configuration files, noticing that the /etc/init/modemmanager.conf file added a seccomp policy file in the meantime:
Following is the minijail command line in the chromiumOS image where the ModemManager gets stuck opening the tty
exec minijail0 -u modem -g modem -n -i -c cap_net_admin,cap_sys_admin=e -S /usr/share/policy/modemmanager.policy --/usr/sbin/ModemManager
while this is from the chromiumos image where Modemmanager works fine in the same context
exec minijail0 -u modem -g modem -n -i -c cap_net_admin,cap_sys_admin=e --/usr/sbin/ModemManager
In fact, removing the "-S" configuration from the first one, the ModemManager starts working as expected also in the first image.
Now, I am not sure how seccomp is enforced in chromeOS. I think that all the expected output is in /var/log/message (please correct me if I am wrong), where it looks like the major actor seems permission_broker, however it seems to allow (ALLOW_WITH_DETACH) the access to the usb modem:
Verdict for /dev/bus/usb/001/010: ALLOW_WITH_DETACH
but I am not sure if it refers to the driver option, or the Modemmanager
Any hint on how to proceed, or debug further, is well accepted, I think I can only consider now to generate a new policy file, from my own machine, and compare the differences.
Thanks,
Carlo Lobrano