EDIT: What is /run/udev/data/c241:1?

I am creating a snap for a computer emulator built on SDL2.

I get a strange error via snappy which I do not understand at all. Adding hardware-observe fixes it, but I am not sure what and why it is doing it.

Log: apparmor=“ALLOWED” operation=“open” class=“file” profile=“snap.applewin.applewin” name=“/run/udev/data/c241:1” pid=43202 comm=“sa2” requested_mask=“r” denied_mask=“r” fsuid=1000 ouid=0 File: /run/udev/data/c241:1 (read) Suggestions:

  • adjust program to use $SNAP_DATA
  • adjust program to use /run/shm/snap.$SNAP_NAME.*
  • adjust program to use /run/snap.$SNAP_NAME.*
  • adjust snap to use snap layouts (Snap layouts)
  • add ‘hardware-observe’ to ‘plugs’

Can anybody help?

You can found those info about interface at snapd source code.

That’s a lot of apparmor rules.

Thank you. I have figured out that this comes from network usage.

# Needed for udevadm
/run/udev/data/** r,
network netlink raw,

And if I disable networking, it does not trigger. I have added the network and network-bind plugs, but this is still not enough.

Moreover, is it possible to run my app normally (not as a snap, so I can debug it), while still triggering these warnings?

It would be a lot easier to see exactly which line causes the hardware-observe to be needed.


Since those warnings are triggerd by apparmor, evevry snap pack’s apparmor file is stored in /var/lib/snapd/apparmor/profiles/

Maybe you can try write your own apparmor file from what snapd provided, and run you app normally.