You are about to see why I've not written this up yet. For now I'm just going to throw things over the wall at you. These are the notes I took at the time as I worked through getting this to work; but I use a very minimal collection of packages on my workstation and tend to add things until they work.
As a starting point: phone needs to be in MTP mode not PTP.
pixel5 mounted on t490s (using gvfs-backends):
as MTP (= File transfer in GOS):
gphoto2://Google_Pixel_5_/ but shows all folders for the profile
as PTP:
gphoto2://Google_Pixel_5_/ files are root and only shows Picture + DCIM folders
Package: android-sdk-platform-tools-common
https://packages.debian.org/sid/android-sdk-platform-tools-common
This package provides common files of Android SDK Platform-tools. It also provides UDEV rules enabling adb and fastboot to work without root access to the host machine.
$ lsusb -v 2> /dev/null | grep -e Bus -e iInterface -e bInterfaceProtocol
Bus 004 Device 010: ID Google Inc. Nexus/Pixel Device (MTP)
(Bus Powered)
bInterfaceProtocol 1 Picture Transfer Protocol (PIMA 15470)
iInterface 4 MTP
s@t490s:/mnt/isosphotos$ mtp-detect
libmtp version: 1.1.20
Listing raw device(s)
Device 0 (VID=18d1 and PID=4ee1) is a Google Inc Nexus/Pixel (MTP).
Found 1 device(s):
Google Inc: Nexus/Pixel (MTP) (18d1:4ee1) @ bus 4, dev 10
Attempting to connect device(s)
Android device detected, assigning default bug flags
USB low-level info:
bcdUSB: 800
...
Device entry info:
Vendor: Google Inc
Vendor id: 0x18d1
Product: Nexus/Pixel (MTP)
Vendor id: 0x4ee1
Device flags: 0x58008106
Configuration 0, interface 0, altsetting 0:
Interface description contains the string "MTP"
Device recognized as MTP, no further probing.
Device info:
Manufacturer: Google
Model: Pixel 5
Device version: 1.0
s@t490s:/mnt/isosphotos$ mtp-detect
libmtp version: 1.1.20
Listing raw device(s)
Device 0 (VID=18d1 and PID=4ee1) is a Google Inc Nexus/Pixel (MTP).
Found 1 device(s):
Google Inc: Nexus/Pixel (MTP) (18d1:4ee1) @ bus 4, dev 10
Attempting to connect device(s)
libusb_claim_interface() reports device is busy, likely in use by GVFS or KDE MTP device handling alreadyLIBMTP PANIC: Unable to initialize device
Unable to open raw device 0
OK.
s@t490s:~$ lsusb | grep Pixel
Bus 004 Device 009: ID ... Google Inc. Nexus/Pixel Device (MTP)
https://wiki.archlinux.org/title/Media_Transfer_Protocol