在 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 设备”。该问题是正在这里讨论。