Request: confinement interface auto-connect for smartshooter4


#1

Please add auto-connect permissions to my snap package, which is currently under development.
These are the interfaces that are needed:

:camera
:network-control
:raw-usb
:removable-media

Auto connect is needed as eventually this package will be part of a custom ubuntu core image, for use on headless raspberry pi devices; end user is will not be present to manually connect these interfaces.

This is the link for the snap package. It is currently set as private, while it is being developed:
https://dashboard.snapcraft.io/snaps/smartshooter4/


#2

Is there some other process for requesting this help?


#3

if you are doing a custom image with custom gadget you can easily use the connect statement in the gadget.yaml:


#4

Current plan is to distribute the app in two ways.

  1. Custom image for raspberry pi 3
    Here I can use the custom gadget snap, as suggested

  2. Generic snap package, use can install on their own device
    Here I can’t use a custom gadget snap. The user can install it on an compatible device. I would provide arm and intel builds of the snap. (provided custom images for all possible devices would be just too much work to maintain!). I prefer not to mandate that the users have to explicitly connect those interfaces after install. The app is useless without the connected interfaces, so doing it automatically will be much better user experience!


#5

Can you describe what smartshooter4 does and why these interfaces are needed? I looked in the store and much of the information is boilerplate.


#6

Its an application for photography and camera control. When a camera device is connected via USB to the computer, the software will communicate with the camera, and allow the user to:

  1. Change settings on the camera, trigger camera
  2. Download photos from the camera

For the snap package to work, the app needs permissions for the following interfaces:

  • network-control
    Seems that “libusb_open()” requires that the app has this interface connected.

  • camera

  • raw-usb
    This is needs for the low-level camera communication

  • removable-media
    This is so the user can control whether the photos are downloaded to removable storage, instead of the app’s data directory.


#7

Can you give the exact security policy violations from journactl that caused you to want to add this?