doas xbps-install -S go-mtpfs
╰─➤ cat /usr/lib/udev/rules.d/69-libmtp.rules
# UDEV-style hotplug map for libmtp
# Put this file in /etc/udev/rules.d
ACTION!="add", ACTION!="bind", GOTO="libmtp_rules_end"
ENV{MAJOR}!="?*", GOTO="libmtp_rules_end"
SUBSYSTEM=="usb", GOTO="libmtp_usb_rules"
GOTO="libmtp_rules_end"
LABEL="libmtp_usb_rules"
# If we have a hwdb entry for this device, act immediately!
ENV{ID_MTP_DEVICE}=="1", SYMLINK+="libmtp-%k", GROUP="plugdev", GOTO="libmtp_rules_end"
# Fall back to probing.
# Some sensitive devices we surely don't wanna probe
# Color instruments
ATTR{idVendor}=="0670", GOTO="libmtp_rules_end"
ATTR{idVendor}=="0765", GOTO="libmtp_rules_end"
ATTR{idVendor}=="085c", GOTO="libmtp_rules_end"
ATTR{idVendor}=="0971", GOTO="libmtp_rules_end"
# Canon scanners that look like MTP devices (PID 0x22nn)
ATTR{idVendor}=="04a9", ATTR{idProduct}=="22*", GOTO="libmtp_rules_end"
# Canon digital camera (EOS 3D) that looks like MTP device (PID 0x3113)
ATTR{idVendor}=="04a9", ATTR{idProduct}=="3113", GOTO="libmtp_rules_end"
# Sensitive Atheros devices that look like MTP devices
ATTR{idVendor}=="0cf3", GOTO="libmtp_rules_end"
# Sensitive Atmel JTAG programmers
ATTR{idVendor}=="03eb", GOTO="libmtp_rules_end"
# Sensitive Philips device
ATTR{idVendor}=="0471", ATTR{idProduct}=="083f", GOTO="libmtp_rules_end"
# DUALi NFC readers
ATTR{idVendor}=="1db2", ATTR{idProduct}=="060*", GOTO="libmtp_rules_end"
# HP printers
ATTR{idVendor}=="03f0", ENV{ID_USB_INTERFACES}=="*:0701??:*|*:ffcc00:", GOTO="libmtp_rules_end"
# Printers
ENV{ID_USB_INTERFACES}=="*:0701??:*", GOTO="libmtp_rules_end"
# Autoprobe vendor-specific, communication and PTP devices
ENV{ID_MTP_DEVICE}!="1", ENV{MTP_NO_PROBE}!="1", ENV{COLOR_MEASUREMENT_DEVICE}!="1", ENV{ID_GPHOTO}!="1", ENV{libsane_matched}!="yes", ATTR{bDeviceClass}=="00|02|06|ef|ff", PROGRAM="/usr/lib/udev/mtp-probe /sys$env{DEVPATH} $attr{busnum} $attr{devnum}", RESULT=="1", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_MEDIA_PLAYER}="1", GROUP="plugdev"
LABEL="libmtp_rules_end"
add user to plugdev for mtp detect with normal user
lsusb
Bus 001 Device 015: ID 22d9:2765 OPPO Electronics Corp. Oppo N1
╰─➤ ls -lah /dev/bus/usb/001/015
crw-rw---- 1 root plugdev 189, 14 Feb 18 04:59 /dev/bus/usb/001/015
╰─➤ mtp-detect 127 ↵
libmtp version: 1.1.20
Listing raw device(s)
Device 0 (VID=22d9 and PID=2765) is a Oppo Find 7 (ID 1).
Found 1 device(s):
Oppo: Find 7 (ID 1) (22d9:2765) @ bus 1, dev 15
╰─➤ nano /etc/udev/rules.d/51-android.rules
# Skip testing for android devices if device is not add, or usb
ACTION!="add", ACTION!="bind", GOTO="android_usb_rules_end"
SUBSYSTEM!="usb", GOTO="android_usb_rules_end"
# Skip testing for unexpected devices like hubs, controllers or printers
ATTR{bDeviceClass}=="09", GOTO="android_usb_rules_end"
ENV{ID_MODEL}=="Controller", GOTO="android_usb_rules_end"
ENV{ID_USB_INTERFACES}=="*:0701??:*", ENV{adb_adb}="yes", GOTO="android_usb_rules_end"
LABEL="android_usb_rules_begin"
# Oppo
ATTR{idVendor}!="22d9", GOTO="not_Oppo"
ATTR{idProduct}=="2765", ENV{adb_adb}="yes"
GOTO="android_usb_rule_match"
LABEL="not_Oppo"
# Skip other vendor tests
LABEL="android_usb_rule_match"
# Symlink shortcuts to reduce code in tests above
ENV{adb_adbfast}=="yes", ENV{adb_adb}="yes", ENV{adb_fast}="yes"
ENV{adb_adb}=="yes", ENV{adb_user}="yes", SYMLINK+="android_adb"
ENV{adb_fast}=="yes", SYMLINK+="androi_fastboot"
# Enable device as a user device if found (add an "android" SYMLINK)
ENV{adb_user}=="yes", MODE="0660", GROUP="kai", TAG+="uaccess", SYMLINK+="android", SYMLINK+="android%n"
LABEL="android_usb_rules_end"
cat /etc/fuse.conf
user_allow_other
go-mtpfs -allow-other ~/mnt/android
from
http://www.linux-usb.org/usb.ids
https://github.com/M0Rf30/android-udev-rules/blob/main/51-android.rules
Comments
Post a Comment