禁用特定 mtp 设备的自动挂载?

禁用特定 mtp 设备的自动挂载?

在 Ubuntu 16.04 桌面上,我有一部手机,只要插入电源,它就会使用 MTP 进行安装。我不希望发生这种情况,实际上我只想让它通过电脑的 USB 电源充电。当我插入其他设备时,我确实希望它们自动安装,所以我只想停止此特定设备的默认操作。

我怎样才能做到这一点?

答案1

首先,使用 找到设备的 VendorID 和 ProductID lsusb。对于我的 Samsung Galaxy S7 Edge,相应的行如下。

Bus 001 Device 029: ID 04e8:6860 Samsung Electronics Co., Ltd Galaxy (MTP)
---------------VendorID--^ : ^--ProductID 

您还需要与此设备插入位置关联的目录。您可以手动搜索/sys/bus/usb/devices/*/idProduct,也可以使用这个简单的小脚本作者:@radu-rădeanu。

将其保存到 ~/bin/findUSBbyID.sh 并将chmod +x其保存。

#!/bin/bash

if [ $# -ne 2 ];then
  echo "Usage: `basename $0` idVendor idProduct"
  exit 1
fi


for X in /sys/bus/usb/devices/*; do 
    if [ "$1" == "$(cat "$X/idVendor" 2>/dev/null)" -a "$2" == "$(cat "$X/idProduct" 2>/dev/null)" ]
    then
        echo "$X"
    fi
done

以 身份运行~/bin/findUSBbyID.sh 04e8 6860。输出将如下所示:

/sys/bus/usb/devices/1-1.2

利用这些信息,您需要创建一个名为 的新文件/etc/udev/rules.d/90-disable-usb-device.rules。您需要 root 权限,sudo或者gksudo您最喜欢的编辑器(视情况而定)。

该文件应包含如下所示的一行。更正 VendorID 和 ProductID 以匹配您的设备。同时更正路径/sys/bus/usb/devices/$something/authorized以匹配使用 findUSBbyID.sh 脚本找到的产品。

ACTION=="add", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", RUN="/bin/sh -c 'echo 0 > /sys/bus/usb/devices/1-1.2/authorized'"

您可能会看到另一个弹出窗口“无法安装 MTP 设备”。该问题是正在这里讨论

相关内容