Requesting auto-connection of raw-usb for two snaps from the same publisher and codebase. Filling out the template for each:
restorekit-cli
- name: restorekit-cli
- description: DFU-restore Apple Silicon Macs from the command line
- snapcraft: generated by goreleaser, config at restorekit/.goreleaser.yaml at main · fcjr/restorekit · GitHub
- upstream: GitHub - fcjr/restorekit: Reformat an Apple Silicon mac from any platform. · GitHub
- upstream-relation: I am the upstream author and publisher
- raw-usb:
- request-type: auto-connection
- reasoning: restorekit restores and reformats Apple Silicon (T2/M
series) Macs from another machine. It talks to the target Mac over
USB while it’s in DFU or recovery mode, using libusb + libirecovery +
usbmuxd (the libimobiledevice stack, statically linked). DFU-mode
devices are raw USB devices with no kernel driver, so raw-usb is the
only interface that covers them. USB access is the snap’s entire
purpose: with raw-usb disconnected it can’t do anything at all, and
every user currently has to run
sudo snap connect restorekit-cli:raw-usbbefore their first restore.
restorekit
- name: restorekit
- description: Desktop app for the same restore workflow (Tauri GUI over the same library)
- snapcraft: restorekit/apps/desktop/snap/snapcraft.yaml at main · fcjr/restorekit · GitHub
- upstream: GitHub - fcjr/restorekit: Reformat an Apple Silicon mac from any platform. · GitHub
- upstream-relation: I am the upstream author and publisher
- raw-usb:
- request-type: auto-connection
- reasoning: same as restorekit-cli above; it’s the same code path to the device.
Other relevant info: the devices involved are Apple’s vendor ID 05ac in DFU, recovery, and restore mode (the same product ID ranges usbmuxd and libirecovery match). The udev rules our deb package ships for these devices are at restorekit/udev/51-restorekit.rules at main · fcjr/restorekit · GitHub
Happy to split this into two topics if that’s preferred.