参考文章:http://www.zavedil.com/software-mtp-support-rhel-6/ 要达到读取安卓手机内容的目的,我们需要安装go-mtpfs,在这之前,需要先装上一些基本的配件: 1.yum install bison gcc mercurial libusb-devel 2.如果你的电脑没有libusb-1.0的话,在安装过程中会出错,下面是安装的链接: http://sourceforge.net/projects/libusb/files/libusb-1.0/libusb-1.0.9/libusb-1.0.9.tar.bz2 下载到一个/tmp之类的文件夹中,解压 tar xjvf libu** ,然后进入该文件夹,依次执行 ./configure ;make;make install(当然这需要在root的身份下) 安装完之后,还需要配置环境: export PKG_CONFIG_PATH=/usr/lib/pkgconfig:$PKG_CONFIG_PATH 其中的/usr/lib/不一定是存在pkgconfig的,具体要写pkgconfig存在的位置 3.安装go语言包,详见我的博客“CentOS6.5下安装golang” 4.下载go-mtpfs mkdir /tmp/go export GOPATH=/tmp/go go get github.com/hanwen/go-mtpfs cp /tmp/go/bin/go-mtpfs /usr/binchmod 4755 /usr/bin/go-mtpfs 5.配置挂载:
chmod 4755 /bin/fusermount mkdir /mnt/phone chmod 777 /mnt/phone 然后在/usr/bin 中新建两个文件phone-mount.sh 和 phone-unmount.sh 并修改它们的权限为 777. 编辑两个文件的内容: phone-mount.sh:
#/bin/bash # Export a suitable path - it is requred by the module, # but will not be supplied by the udev: export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin # Run the mounter as the user who will access the phone - # replace USER with your username su USER -c "/usr/bin/go-mtpfs /mnt/phone &" # Exiting is important, else udev may hang here forever exit
phone-unmount.sh: #/bin/bash # Export a suitable path export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin # Run the FUSE unmounter /bin/fusermount -u /mnt/phone 保存后再修改权限为755。 最后到/etc/udev/rules.d 文件夹中,新建一个rules文件,当然,如果你之前已经创建或者文件夹里存在诸如51-android.rules这样子的文件,那就不用新建了: 进入新建的文件夹,编辑:
SUBSYSTEM=="usb", ATTRS{idVendor}=="AAAA", ATTRS{idProduct}=="BBBB", ACTION=="add", RUN+="/usr/bin/phone-mount.sh" ENV{ID_VENDOR_ID}=="AAAA", ENV{ID_MODEL_ID}=="BBBB", ACTION=="remove", RUN+="/usr/bin/phone-unmount.sh"其中 AAAA是你手机的供应商识别吗,而BBBB是你的手机产品识别码。你可以用lsusb的指令查看手机的具体ID。
6.写在后面,至此,重启后理论上应该就可以即插即用了,不过我出了点小差错,没反应。 晕,,,,,所以我只能直接用指令罗, su USER -c "/usr/bin/go-mtpfs /mnt/phone &"其中USER记得替换为你自己的名字,在/mnt/phone里面终于出现我想要的东西。好吧,至少目的达到,不能即插即用的原因有待排查。 (责任编辑:IT) |