Openrc and Elogind Permissions Problem?

My android phone ìs running android 7.1.1, this defaults to charging only, so on connection has to be changed to file transfer (mtp) at this point the above system produces an mtp error and does not connect.

2 Likes
uucp	/dev/ttyS[0-9]+, /dev/tts/[0-9]+,  /dev/ttyUSB[0-9]+, /dev/ttyACM[0-9]+,  /dev/rfcomm[0-9]+	
        - RS-232 serial ports and devices connected to them.

https://wiki.archlinux.org/index.php/Users_and_groups#User_groups

RS232 serial port! the point is that unlike iphones there is no group for android phones probably because they have never needed one as on linux they just work. So this is an openrc/elogind bug and the workaround is a hack.

Really?

I accept a pull request then.

The “fix” needs to be made in the package that provides 99-android.rules, which is not elogind.

Not sure what you mean as there are no 99-android.rules by default as I say I don’t believe android needs these as usually it just works. The fact that it doesn’t in openrc with elogind suggest something is different here but I’m not sure what.
Another thing is there is no android group and as far as know there neither has been so a 99 rule doesn’t really make sense.
I should just mention if the phone is connected at boot time it works and you can disconnect it in the file manger and reconnect it again however if you disconnect the phone on reconnection the mtp reading fails so …? the 99 rules only ensures that when the phone is queried it has a proper validation not sure why this is needed?

@artoo

Its not an elogind bug, that’s all.
You add your user to group and be done with it.

I can’t prove it but think it was ok in openrc with consolekit only noticed this when elogind came along and of course it works in systemd.

@artoo

Point being, android setup and configuration is not done by elogind, you would simply have to package the udev rule with some adroid depend.
Anyway, I don’t use any android or mobile phone/device, so somebody else needs to step in and do it.

You where right but now someone has upgraded libmtp, was it you?

Just a quick note about this it appears you must still have a 99-android.rules file in /etc/udev/rules.d which contains your “user name” it does not seem it has to be enabled in groups!

Found adding GROUP=“user name” in /lib/udev/rules.d/69-libmtp.rules to your phone entry, allows both phone and printer to work correctly.

@artoo

… is a official package. Changelog can be found here.

android-udev package provides android adb and fastboot rules in /usr/lib/udev/rules.d/51-android.rules and it also sets a new group called adbusers.

The only thing needed to make this work,
is add yourself to this group

For MTP all you have to do is connect your device prior to boot. You only have to do this once.
After this MTP should work properly.

@artoo @philm

2 Likes

Thank you for that! Worked perfectly on updated manjaro-xfce-openrc-17.0.1-beta-x86_64

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.

Forum kindly sponsored by Bytemark