MTP是否有可行的文件传输替代方案?


36

由于最新版本(ICS +?)不再具有大容量存储,因此MTP是否有可行的替代方案?

协议似乎天生就被破坏了,退回到这种格式的决定似乎是一种非常像“ iphone风格”的举动(笨拙的东西,夺走了用户的力量)。

似乎有很多问题(例如,文件未显示),并且在我看来,传输文件应该比要求系统重新启动更为简单-我对此提出了不合理的要求。

我知道诸如Wi-Fi文件传输之类的工具,但通常我发现自己只有笔记本电脑,电话和USB电缆,而没有无线网络。例如,前一天,我是一架飞机,这绝对是不利于使用无线系统的环境。



4
世界需要更多像你这样的人!“笨拙的事情,剥夺用户的权力” **您立即成为我的朋友,亲切的。**欢迎来到高级用户俱乐部。
neverMind9

Answers:


18

在Windows 7上测试了以下方法;带有桌面环境KDE 4.1x的基于Ubuntu的Distribution和Slackware。关于Mac没什么可说的。答案旨在用作此处各种方法的综合指南。

很少有以下方法需要启用USB网络共享。这可以通过以下说明来实现:

其中一些信息仅适用于运行Android 5.0及更高版本的设备。如果您的设备运行的是4.4或更低版本,则菜单图标如下所示。如果您的设备运行的是4.3或更低版本,则“设置”图标如下所示

设置和使用USB网络共享连接(包括Windows XP的说明)

1.使用USB电缆将设备连接到另一台设备。
2. 在屏幕顶部,您会看到一个USB图标和一个通知:已连接为媒体设备已连接为相机。出于网络共享的目的,连接的类型无关紧要。
3.打开设备的“设置”菜单
4.在“无线和网络”下,触摸更多>网络共享和便携式热点
5选中复选框或打开“ USB绑定”旁边的开关。建立连接后,您将看到以下通知之一,并且可以连接到Internet(如果您的设备运行的是Andriod 4.4或更低版本,您的图标可能会略有不同):
便携式Wi-Fi热点处于活动状态
USB绑定网络处于活动状态
多个网络共享或热点连接处于活动状态

要停止共享数据连接,请取消选中该框或关闭“设置”菜单中“ USB网络共享”旁边的开关,或断开USB电缆的连接。

USB与Windows XP的网络共享

如果您使用的是运行Windows XP的计算机,则需要先安装配置文件,然后再将设备绑定到计算机。

1.按照上述步骤打开设备的USB共享网络。
2.将以下配置文件(tetherxp.inf)下载到Windows XP计算机。通常,您可以右键单击链接并选择“另存为”。(如果您的浏览器在文件名中添加了“ .html”,则需要编辑名称以删除.html扩展名,然后将其替换为“ .inf”。)
3 . 使用移动设备将移动设备连接至计算机。 USB电缆。
4.当Windows XP的“新硬件向导”打开时,选择“ 否,目前不”,然后单击“ 下一步”
5.选择从列表或特定位置进行安装,然后单击“ 下一步”
6.单击浏览浏览到安装步骤2中下载的配置文件的目录,然后单击下一步
7. Windows XP完成为Android USB以太网/ RNDIS安装软件后,单击“ 完成”

来源


方法1

此方法使用USB网络共享和应用程序访问手机存储。

程序

  1. 从Play商店安装MTP备用USB驱动器
  2. 打开MTP-Alternative应用程序,选择“ 连接并启用USB TETHERING”,然后选择“ 启用USB Tethering”
  3. 轻按一次Back键或从启动器中的图标中打开应用,即可返回应用。
  4. Windows和Ubuntu的说明现在将显示在应用程序中。选择您的操作系统:WindowsUbuntu,然后按照其中的指南进行操作。或者,您可以按照以下说明在Windows或Ubuntu(Linux)中保存网络连接。

对于Windows

  1. 确保您具有管理特权。下载并安装此Microsoft Update
  2. Web客户端需要访问网络文件夹启用的服务。要确定服务状态,请按+ R打开“运行”对话框。输入services.msc并单击确定。服务窗口将打开,其中包含服务列表。
  3. 向下滚动以查看WebClient并检查相应的启动类型。如果未禁用,则关闭窗口。如果是这样

    Right-Click -> Properties -> General -> Startup Type -> Automatic -> Apply -> OK。您也可以选择“ 手动”而不是“ 自动”,以免系统因启动而产生过多税金。

  4. 现在按+ R,键入regedit并单击确定 `,选择,将打开注册表编辑器窗口。

  5. 在工具栏上,单击Edit -> Find。在对话框中,与“ 查找内容”字段相对应,键入WebClient。取消选中“ 数据”,否则,仅选中“ 查看” 下面的。单击查找下一个。它将搜索并显示已选择的条目。确保(在底部面板上)所选条目的位置是

    Computer/HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\WebClient

  6. WebClient条目上,单击向右箭头以访问其中的内容。

  7. 单击参数。在右侧,单击BasicAuthLevel -> Modify。在值数据字段中,将值更改为2,然后单击确定
  8. 如果没有BasicAuthLevel条目,则通过在空白处右键单击来创建它,选择DWORD (32-bit) Value并将其命名为BasicAuthLevel。请按照步骤7。
  9. 立即重新启动系统,以使所有更改生效。您现在必须打开MTP-Alternative应用程序才能将手机重新连接到PC。
  10. 要映射电话存储,请打开我的电脑
  11. 在地址栏下方,单击“ 映射网络驱动器”
  12. 在相应的文件夹字段中,输入\\192.168.42.129@8081并单击完成。将打开一个窗口,显示/手机目录的内容。
  13. 如果智能手机中只有内部[SD卡],请输入sdcard文件夹。否则,请输入storage文件夹并输入所需的存储空间。
  14. 您可以在中访问此网络驱动器My Computer -> Network Location。您也可以通过在驱动器上进行操作来重命名该驱动Right-Click -> Rename器,输入名称并点击Enter。请注意,如果未将具有上述说明的智能手机连接到PC,则无法访问驱动器。

(来源:ykasiditYeehawupMTP-Alternative

对于使用KDE 4.1x的Ubuntu(Linux)

  1. 启动Dolphin文件浏览器。在地方点击网络
  2. 点击Add Network Folder -> WebFolder (webdav)
  3. 输入任何名称,将用户字段保留为空白,192.168.42.129服务器字段中输入,8081端口字段中输入。按照Windows操作系统,键入的步骤13 /sdcard//storage/地点查看现场,查阅创建和此远程文件夹图标,然后点击保存并连接。现在将打开一个窗口,其中包含存储内容。
  4. 网络位置保存在Places -> Network -> Name其中名称是步骤3.您还可以针这个文件夹到的地方做那个文件夹上Right-click -> Add to Places

方法#2

此方法利用ADB界面访问您的手机存储。它已经被许多用户广泛涵盖,一些答案可以在此处访问。简而言之,以下是Android Enthusiasts用户从一些答案中引用的说明。

在操作系统中安装ADB

实际上,如果不想使用整个SDK进行开发,则不必安装整个SDK。为了能够在普通用户所需的上下文中运行基本ADB命令,基本安装就足够了。我将尝试解释如何执行此操作,并希望涵盖最常用的计算机系统。

要求

首先,您将需要基本的二进制文件。这些可以在Linux,Windows和Mac的官方下载页面上找到

Windows用户

如果您的计算机运行的是Windows,则还需要设备专用的驱动程序(此处没有通用解决方案,因此您需要自行检查;通常,这些驱动程序可在制造商的网站上下载)。

Linux和Mac OS用户

Linux和Mac OS用户可能需要使其操作系统知道其设备。对于Linux,您可以在此处的答案中找到必要的步骤。不熟悉Mac OS,我不能说。

安装

的Linux

对于Linux,这非常简单:只需将下载的二进制文件解压缩到您选择的目录中即可。在撰写本文时,它只有两个文件:adbaapt(后者由QtADB使用,不一定需要直接执行ADB命令)。调整其文件权限以使其可执行(例如,从命令行:)chmod 0755 adb aapt。最后,将所选目录包含在$PATH变量中是一个好主意,因此adb无论您身在何处都可以调用。这样做的一个好地方是在~/.profile文件末尾添加其他行,例如export PATH="~/bin:$PATH"(如果您将二进制文件提取到~/bin)。

视窗

Windows下载中包含更多文件。还将它们解压缩到您选择的目录中。如果您希望它们在任何地方都可以被调用,而无需在完整路径之前添加,则还需要将该路径添加到环境变量中。不是Windows用户,我必须将“操作方法”交给您。

还有什么?

此时,您应该已经完成​​,并且可以使用ADB命令行的全部功能。

进一步阅读

来源

和,

我真不明白,为什么有人会喜欢从一个受恶意软件困扰的网站下载未知来源的旧版本,而不是直接从Google本身下载最新的正式版本。我想每个人都有。

以下是指向Google存储库的链接:

最新版本的平台工具(仅包含几个二进制文件-每个二进制文件的大小均小于10Mb):

对于Ubuntu和Debian(我个人使用的发行版)的用户,我整理了一个小bash脚本,该脚本查找并安装了最新版本的平台工具- 在Ubuntu上安装Android平台工具(ADB)

来源

要使用ADB界面在Ubuntu(Linux)中访问电话存储,请执行以下操作

我无法回答Windows部分,但是我可以肯定地回答Ubuntu部分,因为我也正在使用它从计算机上安装设备,有时具有完全的r / w访问权限。我使用的工具需要在计算机上安装ADB工具。如果尚未安装它们,请参阅例如ADB的最小安装?

准备你的机器人

首先,这是一个基本要求,适用于您的计算机上可能运行的任何操作系统:为了获得完全访问权限,ADB守护程序必须以root模式运行。默认情况下,即使使用根ROM也不是这种情况(尽管许多自定义ROM默认情况下已启用它)。因此,首先检查一下:如果“普通” 无需调用adb shell即可直接将您带到根提示符(#su,那么您就可以了。否则,您将需要adbd insecure之类的帮助程序:运行它,并启用“修补的不安全模式”。(可选)选中该框以在设备每次启动时自动完成此操作。

准备对只读文件系统的写访问

其次,再次独立于计算机上的OS:要读写文件系统,它们必须以读/写模式安装。您可以adb shell随时通过需要在此处写入的内容来实现此目的(我不建议将这些分区保留为永久读/写模式),例如mount -o remount,rw /system,为该/system分区发出a 。

安装您的Droid

现在,让我们来谈谈细节。我使用FUSE通过ADB挂载Android文件系统。该工具是adbfs-rootless。根据此处的说明,编译代码很容易。完成后,将结果adbfs二进制文件复制到您的目录中$PATH。然后在计算机上创建一个挂载点;在我的示例中,我将使用~/droid它。现在我们开始:

# Mount the Android FS:
adbfs ~/droid
# Unmount it again:
fusermount -u ~/droid

为了简化此过程,我创建了两个别名:

alias mdroid="adbfs ~/droid"
alias udroid="fusermount -u ~/droid"

您肯定已经猜到了:mdroid代表“ mount droid”,udroid代表“ unmount droid”。

手动安装/卸载的另一种方法是将Midnight Commander与特定的VFS一起使用:mc-extfs-adb正在执行此操作。IzzyOnDroid 的下载区域提供我专门为Ubuntu 改版的版本,您可以其中轻松选择它(包括安装说明)。

两种变体都有其优缺点:mc-extfs-adb在第一次访问时需要花费相当长的时间(虽然它缓存了整个文件系统结构)–但是浏览文件系统(因为它被缓存)的速度相当快,只是减慢了速度当您远程复制/编辑文件时。使用adbfs直接启动更快,但后来总是“犹豫”一秒钟切换目录时(因为它没有缓存整个结构,但只有读取需求)。我通常更喜欢后者,但是YMMV –因此,我给了你两个选择:)

来源

使用ADB界面在Windows中访问电话存储

默认情况下,Windows文件资源管理器不允许您访问Android根文件。为此,您需要下载其他应用程序(到您的PC)。许多地方(例如此guidetech.com教程推荐Android Commander。另一个推荐的文件资源管理器程序是Droid Explorer

来源


方法#3

此方法使用一个应用程序和USB网络共享。此方法源于此答案(此答案仅提到了可能性,但没有逐步提及实际用法)。

程序

  1. 下载允许WebDav / FTP / SSH / Samba服务器创建的文件服务器应用程序。您可以看看这个名单上的Izzy 位置,或选择他们WebDAV的FTP桑巴SSH五花八门。如果没有人帮助,Google是您的朋友。
  2. 以下说明适用于{ WebDavFTP } Ultimate(免费)和Servers Ultimate Pro(付费)。

使用WebDav Server Ultimate

  1. 启用USB网络共享
  2. 启动WebDav Server Ultimate
  3. 转到Add -> WebDAV Server ->
  4. 服务器名称中输入任何名称。选择一个您可以记住的大于1024的端口号(例如5000),然后将其输入Run on port
  5. 在“ 文档根目录”中,选择/与“方法1”保持一致。
  6. 取消选中所有选项。您可以选择在每次启动此应用程序时自动运行该服务器。为此,请选中直接在应用程序启动干净时启动。点击Back一次键,然后选择保存服务器设置。
  7. 在新创建的服务器条目上点击一次,然后选择Start / Stop。您将看到一个信息对话框,服务器已启动。您可以通过向左滑动应用顶部的许多图标,然后选择退出来关闭应用(包括服务器)。请注意,除非选择退出,否则服务器将继续运行,除非明确停止。
  8. 您现在可以针对Windows或Linux使用方法1中说明的过程。请注意,对于Windows,该地址现在为\\192.168.42.129@5000,对于Linux,该地址为webdav://192.168.42.129:5000/

使用FTP Server Ultimate

  1. 启用USB网络共享
  2. 启动FTP Server Ultimate应用程序。
  3. 转到Add -> FTP Server ->
  4. 服务器名称中输入任何名称。选择一个大于1024的端口号,您可以记住该端口号(例如6000),然后将其输入“在端口运行”
  5. 取消选中所有选项。您可以选择在每次启动此应用程序时自动运行该服务器。为此,请选中直接在应用程序启动干净时启动。同样,选择Respawn(服务器崩溃时自动重启)
  6. 转到用户(位于顶部的设置旁),点击添加,将用户名密码留空,然后选中自动写访问权限。您可以通过选择“ 强制停留在文档根目录”来选择限制PC 。
  7. 在“ 文档根目录”中,选择/与“方法1”保持一致。
  8. 点击Back一次键,然后选择保存服务器设置。
  9. 在新创建的服务器条目上点击一次,然后选择Start / Stop。您将看到一个信息对话框,服务器已启动。您可以通过向左滑动应用顶部的许多图标,然后选择退出来关闭应用(包括服务器)。请注意,除非选择退出,否则服务器将继续运行,除非明确停止。
  10. 您现在可以使用Linux中说明的过程。请注意,对于Windows,该地址现在为ftp://192.168.42.129:6000,对于Linux,该地址为ftp://192.168.42.129:6000/。要在Windows中映射ftp,请按照步骤13中的以下说明进行操作。

使用Servers Ultimate Pro:请注意,此应用需要安装某些其他软件包(免费)。

  1. 启用USB网络共享
  2. 启动Servers Ultimate Pro应用程序。
  3. 转到服务器。点击+图标并向下滚动以点击FTP Native Server
  4. 输入Name,选择一个您可以记住的大于1024的端口号(例如2121)。
  5. 在“ 侦听网络接口”下,选择rndis0 -Ipv4(192.168.42.129)
  6. 在应用启动时直接选中启动
  7. ,检查启用WIFI锁
  8. 在应用程序的顶部面板上,转到SPECIFIC并取消选中“ 允许上传”以外的所有内容。
  9. 在“ 文档根目录”中,选择/与“方法1”保持一致。
  10. 触摸软盘图标以保存设置。
  11. 点击一次服务器条目,然后选择开始
  12. 您现在可以使用适用于Linux的方法#1中说明的过程。请注意,对于Linux,网络位置为ftp://192.168.42.129:2121/
  13. 对于Windows,请按照步骤在方法#1月1日至11日为Windows
  14. 单击“ 连接到可用来存储文档和图片的网站”
  15. 将显示一个标题为“ 添加网络位置”的新窗口。点击Next -> Choose a custom network location -> Next
  16. 在“ Internet或网络地址”下,键入ftp://192.168.42.129:2121/sdcard/并单击“ 下一步”。您可以将sdcard替换为storage
  17. 选中匿名登录,然后单击下一步。输入一个名称以供将来识别,然后单击“ 下一步”
  18. 当我单击“完成”并单击“ 完成” 时,选中“ 打开此网络位置”。将显示一个带有手机存储内容的新窗口。
  19. 方法1的步骤14也适用于此。

请注意,对于Servers Ultimate Pro中的WebDav服务器,设置与方法3中上述过程中介绍的设置相似。


关于MTP替代

通过PC进行USB文件传输-没有“ MTP”问题。

不再存在USB“找不到MTP驱动程序”或“找不到我的文件”的问题-支持Windows和Ubuntu GNU / Linux!

“ MTP-Alternative”通过USB网络共享(而非默认的android“ MTP”文件传输方法)将此设备的存储作为“驱动器”共享给计算机,从而避免了3个常见的“ MTP”问题。

关于WebDav Server Ultimate

免费,安全和完整的WebDAV服务器!该应用程序支持添加多个用户,具有基于SSL / TLS(HTTPS)的WebDAV,并且可以设置为在您的设备连接到特定的WIFI网络时自动启动WebDAV服务器!

关于FTP Server Ultimate

一个免费,安全和完整的FTP服务器,用于使用FTP客户端传输文件。该应用程序支持添加多个用户,具有FTPS隐式/ SFTP / SCP支持,可以设置为在您的设备连接到特定的WIFI网络时自动启动FTP服务器!

关于服务器Ultimate Pro

★★运行超过70种协议的60台服务器!★★

现在您可以运行CVS,DC集线器,DHCP,UPnP,DNS,DDNS,eDonkey,电子邮件(POP3 / SMTP),FTP代理,FTP,FTPS,FTPES,闪存策略,Git,Gopher,HTTP Snoop,ICAP,IRC Bot ,IRC,ISCSI,Icecast,LPD,负载均衡器,MQTT,Memcached,MongoDB,MySQL,NFS,NTP,NZB客户端,Napster,PHP,Lighttpd,PXE,端口转发器,RTMP,远程控制,Rsync,SIP,SMB / CIFS ,SMPP,SMS,袜子,SFTP,SSH,服务器监视器,Styx,Syslog,TFTP,Telnet,时间,Torrent客户端,Torrent跟踪器,触发器,Unison,UPnP端口映射器,VNC,VPN,局域网唤醒,Web,WebDAV, WebSocket,X11和/或XMPP服务器!


注意:

  1. WebDAV最多只能将文件大小限制为4 GB。
  2. 通过MTP-Alternative启用的WebDav进行文件传输的响应不是很好,因此在Android中为我创建了800 MB的缓存大小。
  3. 2.在Linux上没有出现问题,并且工作顺利。
  4. 我更喜欢Servers Ultimate Pro和FTP Native Server。对我来说,它在Windows和Linux上都可以完美运行。
  5. 我只使用adb push|pull方法2的命令进行数据传输。提到它是为了代替其他常见选项。
  6. 如果您是root用户,则可以在Servers Ultimate Pro中进行端口转发。
  7. 可能有些方法我还没有意识到。请张贴它们作为答案。

4
所有这些都是方法!简单的快速文件传输需要太多工作,这是2018年!
Shinzou

@shinzou很抱歉给您带来不便。非常欢迎您向Google,Microsoft和所有其他愚蠢的IT公司表示遗憾,这些公司仍然迫使我们使用可靠的MTP协议或替代上述解决方案。如果您可以提供一种更简单的方法,并且可以提供一些有价值的答案,而不仅仅是批评别人,那么也欢迎您编写自己的答案。
Trejder

9

当然可以。只是舒适度会有所不同,具体取决于您所使用的操作系统。

我主要为此使用。在Linux上,您甚至可以通过这种方式挂载设备。adb如果您愿意,也可以使用几种GUI,例如跨平台QtADB。或者您可以使用命令行:

# Copy a file to the Android device
adb push some.file.ext /mnt/sdcard/some.file.ext
# Grab one from the Android device
adb pull /mnt/sdcard/some.file.ext some.file.ext
# similar for an entire directory
adb pull /mnt/sdcard /local/folder

只需注意两端的类型是对应的:要么都是文件名(如前两个示例所示),要么都是目录名(第三个示例)。混合将失败。

为了以方便的方式导航(例如ls),请使用adb shell

如果您的计算机上尚未安装ADB:请参阅是否有最小的ADB安装?


这很有趣-谢谢!我要去玩,如果可以的话,我会再给我一个报价。
fostandy 2014年

甚至有些文件管理器为此提供了一些GUI。您可能希望查看我的ADB应用列表,以了解详细信息;在页面末尾找到这些计算机程序。
伊齐

1
对于推入或拉出一个文件,当然可以,但是如果我只是想备份内部存储该怎么办:/
Shayan

1
@Shayan如果您的意思是“内部SD卡”:答案中的最后一条命令就是这样做的。如果您的意思是应用程序存储数据的位置(/data/*),则设备需要植根并且ADB守护程序以不安全模式运行才能拉取数据。
伊齐

4

是的,您可以尝试在Google Play中搜索“ mtp替代项”或访问以下页面:https : //play.google.com/store/apps/details? id=com.clearevo.mtp_alternative

它需要启用USB网络共享,这非常简单。

在我自己的朋友和我自己遇到很多“找不到MTP驱动程序”和“文件未显示”问题之后,我决定制作名为“ MTP-Alternative”的应用程序来解决此问题。

通常,我也使用adb传输“技术数据”文件-效果很好。但是,当我使用adb将PC,Android中的照片,音乐或视频之类的媒体文件发送到Android(例如,发送到/ sdcard / Pictures /或/ sdcard / Music /时)时,Android Gallery和Music应用不会显示它们,在重新启动之前(Nexus 5和Galaxy Note 8)都不会更新。使用“ MTP替代”,“图库和音乐”应用程序将立即更新新添加的文件,而无需重新启动。另外,如果在手机上创建了新的媒体或数据文件,只需在PC文件夹上按“ F5”将刷新以显示它们。


我已成功使用此应用程序从运行5.1.1的OPO手机向Windows 8.1 x64 PC传输了26GB。但是,它使用WebDAV,并将每个文件限制为50MB(否则,将产生错误“ 0x800700DF:文件大小超出允许的限制”)。要增加限制,请按照此处的说明进行操作:support.microsoft.com/en-us/kb/900900
ikjadoon

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.