将Galaxy Nexus(ICS)连接到Linux的更好方法


Answers:


7

您也可以尝试mtpfsgMTP。mtpfs允许将MTP设备挂载为文件系统,而gMTP是独立程序。

在AskUbuntu上有一个答案,显示了如何使用mtpfs。


gMTP似乎非常适合我从旧手机复制照片的工作。试图通过PTP复制很痛苦。
瑞安

1
gMTP对我来说并不令人满意。它非常慢,并且会给音乐文件带来错误(它会尝试为传输的每个文件创建专辑)。gMTP在Ubuntu中也经常崩溃。我更喜欢ADB方法。我还通过WiFi使用SSHFS和其他一些方法。
MountainX

6

我将扩展Ryan Conrad的想法:

adb 从android-tools就是这样。

我更喜欢按照此指南使用android-sdk安装Eclipse:

http://developer.android.com/sdk/installing.html

安装仅取决于JDK。无需安装新软件包。我个人在Ubuntu,Mint或Debian发行版上以相同的方式执行了相同的几个步骤(=在任何地方提取两个文件夹并配置eclipse),并且一切都正常了。

完成本经典指南后,我有两个新文件夹:eclipseandroid-sdks。在android-sdks文件夹中,./ platform - tools/adbadb工具的路径,可用于从android设备push(上传和pull获取)文件(无需mtpfs或其他挂载)。

如同adb命令行程序一样,它可以轻松实现自动化。此外,您还有Eclipse的File Explorer视图,该视图提供了漂亮的图形树文件结构和基本的拖放界面(请不要忘记首先在Devices视图中选择您的设备!)。

这种方法的最大缺点是只有adb工具才能看到设备并可以访问它。我的系统的其余部分(包括Nautilus)仍然看不到该设备。但是在习惯了稳定性和鲁棒性之后,adb这对我来说不是问题。


1
如果您始终保持启用状态,adb是一个安全问题。请记住,没有密码对话或其他任何内容。一个人可以绕过屏幕锁定,甚至可以完全加密设备。尤其是如果您碰巧在未知位置(网吧中的PC等)收取费用
ce4 2012年

谢谢您的通知,ce4。然后让我问:我们应该在未知位置使用什么方式访问android存储?
furikuretsu 2012年

1
添加了有关蓝牙的自己的答案:-)
ce4 2012年

6

您可以使用蓝牙

Linux支持Bluetooth FTP(文件传输配置文件),并且有Bluetooth File Transfer应用程序将此功能添加到了android。但是,根据蓝牙版本的不同,它的传输速度不是那么快(<200kb / s)。–

有一个名为obexfs的保险丝模块,这是我安装的Nexus S:

root@local:/tmp# obexfs -b f0:08:f1:xx:xx:xx -- /media/bla
root@local:/tmp# cd /media/bla
root@leo61326:/media/bla# ls -lh /media/bla/DCIM/
total 5,5K
drwxr-xr-x 1 root root    0 2012-05-25 16:09 100ANDRO
drwxr-xr-x 1 root root    0 2012-07-05 17:31 2012-06-09_Rafting
drwxr-xr-x 1 root root    0 2012-07-09 22:30 Camera

一些文件浏览器直接通过插件(nautilus / gnome / kde / ...)支持它。 是一些与Ubuntu相关的obex问题。


1
这个答案值得更多的赞扬-我无法使MTP或PTP与Kubuntu安装一起正常工作。
内森·奥斯曼

希望它将随着新的Ubuntu版本变得更好。我对此很有信心。我通常在命令行上使用ADB(我经常使用它),所以这对我来说是最快的方法。有时我还会使用“蓝牙发送到某些文件”。
ce4 2013年

3

您可以使用adb并使用adb pull / push命令进行传输。

不确定使用的是哪个发行版的Linux,但是我发现表示MTP已打包,并且可以通过名为mtp-tools的软件包用于ubuntu 。

另请注意,这并非特定于android 3.x / 4.x,这对于运行3.x / 4.x且缺少外部sdcard的任何设备都是如此。如果设备具有sdcard插槽,则可以像以前的android版本一样安装设备。


2

mpfs是基于FUSE的文件系统,可以在系统上安装Nexus。

mtpfs -o allow_other /media/MOUNTPOINT

将为您安装它。要卸载,只需卸载/ media / MOUNTPOINT


0

另一个选择是WebDAV

设置Android WebDAV服务器

在我的库存Nexus 7上,我安装了WebDAV Server,将其打开,单击“开始”按钮,然后立即可以/storage/sdcard在Web浏览器中的应用程序显示的URL上看到我的文件夹,即http://192.168.x.y:8080

请注意,对于WebDAV Server,您还可以选择选择根(/)DCIM以及SdCard作为WebDAV 根目录

通过Nautilus使用WebDAV服务器

在Nautilus中,我从“文件”菜单中选择“连接到服务器...”,然后选择“ WebDAV(HTTP)”,192.168.x.y作为服务器和8080端口输入并单击“连接”。

在目录层次结构中导航比访问其他网络共享要慢,但并非不可行。通过Nautilus复制单个42MB文件大约需要12秒,即3.6MB / s。

从命令行安装WebDAV驱动器

我使用以下命令安装了davfs2并安装了共享/mnt

sudo mount -t davfs http://192.168.x.y:8080 /mnt

复制相同的42MB文件,但定时更精确,耗时12.88s或3.24MB / s。

$ time cp music.fsb /tmp

real    0m12.880s
user    0m0.002s
sys     0m0.143s

注意事项

  • WebDAV访问不安全。即使您在WebDAV共享上设置了密码,该连接仍然http不是https,因此未加密。仅在安全的wifi网络上使用WebDAV,并且当您在网吧或其他不安全的wifi中时,一定不要启用WebDAV服务器。


0

在适用于Galaxy Nexus,Nexus 7和Acer A500的Ubuntu上运行MTP。

我在此站点Ubuntu 12.04-MTP模式下自动安装Nexus 7上找到了有关Nexus 7(我刚刚带来的)的一些说明。所有归功于该页面作者的发现。我下面的说明来自于此站点,仅适用于命令,如果您需要更多说明,请参见上面的站点。

我使用Ubuntu 12.10,并已为Nexus 7,Galaxy Nexus和Acer A500进行了配置。使用说明

配置保险丝

更改/etc/fuse.conf,以便所有人阅读。

# sudo chmod a+r /etc/fuse.conf

编辑/etc/fuse.conf以从user_allow_other中删除注释#,以使默认的fuse.conf看起来像

# Set the maximum number of FUSE mounts allowed to non-root users.
# The default is 1000.
#
#mount_max = 1000

# Allow non-root users to specify the 'allow_other' or 'allow_root'
# mount options.
#
user_allow_other

编译并安装go_mtp

# sudo apt-get install libmtp-dev golang 
# mkdir /tmp/go
# export GOPATH=/tmp/go
# go get github.com/hanwen/go-mtpfs
# sudo mv /tmp/go/bin/go-mtpfs /usr/local/sbin/go-mtpfs
# sudo chmod a+x /usr/local/sbin/go-mtpfs

创建安装点

Use the following as you need..
# sudo mkdir /media/Nexus7
# sudo chmod 777 /media/Nexus7
# sudo mkdir /media/GalaxyNexus
# sudo chmod 777 /media/GalaxyNexus
# sudo mkdir /media/A500
# sudo chmod 777 /media/A500

设置udev规则

使用您最喜欢的编辑器并创建以下文件(首先删除您可能尝试过的所有其他Android udev规则)。

# sudo vi /etc/udev/rules.d/99-android.rules

粘贴以下内容。您可以删除不需要的规则,这两个nexus设备对于引导加载程序和恢复似乎具有相同的ID。注意:您需要用用户名/登录名替换#YOURLOGIN#。

# Google Nexus 7 & Galaxy Nexus 16 Gb Bootloader & recovery mode
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666" # Bootloader
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666" # Recovery

# Google Nexus 7 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e43", MODE="0666" # PTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e44", MODE="0666" # PTP media with USB debug on

# Google Nexus 7 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e42", MODE="0666" # MTP media with USB debug on

# Google Nexus 7 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/Nexus7"

# Google Nexus 7 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e41", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"
ENV{ID_MODEL}=="Nexus_7", ENV{ID_MODEL_ID}=="4e42", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"


# Google Galaxy Nexus 16 Gb Bootloader & recovery mode
#SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e40", MODE="0666" # Bootloader
#SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="d001", MODE="0666" # Recovery

# Google Galaxy Nexus 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6865", MODE="0666" # PTP media
#SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="4e44", MODE="0666" # PTP media with USB debug on

# Google Galaxy Nexus 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="685c", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0666" # MTP media with USB debug on

# Google Nexus 7 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="685c", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/GalaxyNexus"
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="6860", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/GalaxyNexus"

# Google Nexus 7 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="685c", ACTION=="remove", RUN+="/bin/umount /media/GalaxyNexus"
ENV{ID_MODEL}=="Galaxy_Nexus", ENV{ID_MODEL_ID}=="6860", ACTION=="remove", RUN+="/bin/umount /media/GalaxyNexus"


# Acer A500 16 Gb Bootloader & recovery mode
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3201", MODE="0666" # Bootloader
#SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="d001", MODE="0666" # Recovery

# Acer A500 16 Gb PTP mode (camera)
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="33b2", MODE="0666" # PTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="33b1", MODE="0666" # PTP media with USB debug on

# Acer A500 16 Gb MTP mode (multimedia device)
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3341", MODE="0666" # MTP media
SUBSYSTEM=="usb", ATTR{idVendor}=="0502", ATTR{idProduct}=="3325", MODE="0666" # MTP media with USB debug on

# Acer A500 MTP mode : automatic mount when plugged
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3341", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/A500"
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3325", ACTION=="add", RUN+="/usr/bin/sudo -u #YOURLOGIN# /usr/local/sbin/go-mtpfs -allow-other=true /media/A500"

# Acer A500 MTP mode : automatic unmount when unplugged
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3341", ACTION=="remove", RUN+="/bin/umount /media/Nexus7"
ENV{ID_MODEL}=="Acer_Iconia_Tab_A500", ENV{ID_MODEL_ID}=="3325", ACTION=="remove", RUN+="/bin/umount /media/A500"

注意:如果您使用gedit并编辑了文件,则需要删除99-android.rules〜,因为udev会感到不高兴。

接下来,重新启动udev

# sudo service udev restart

编辑/ etc / fstab

Add the following to /etc/fstab
DeviceFs(Nexus\0407)        /media/Nexus7         fuse.DeviceFs(Nexus\0407)      allow_other,rw,user,noauto    0    0
DeviceFs(Galaxy\040Nexu)    /media/GalaxyNexus    fuse.DeviceFs(Galaxy\040Nexu)  allow_other,rw,user,noauto    0    0
DeviceFs(A500)              /media/A500           fuse.DeviceFs(A500)            allow_other,rw,user,noauto    0    0

完了

现在,您可以连接设备,并且可以使用内部存储设备了,尽管它似乎没有任何危害,但您应记住在断开连接之前先卸载。

注意:似乎在某个时候,Nexus 7的ENV {ID_MODEL}更改为Nexus_7(我认为是Android 4.2更新)。

来自http://www.winters.org.nz/android-hints-tips-stuff/working-mtp-on-ubuntu


0

嗯,有一个非常有用的工具,它的名称是“ Wifi文件传输”。只需从您Android设备上的Play商店下载并安装即可。它将您的Android移动设备置于迷你服务器上,该服务器可让您从手机上下载文件或向手机上载文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.