Rsync to mtp mounted android does not work

gue*_*tli 7 android rsync mtp

I tried to sync ogg-audio-files to my android device like this:

rsync -av piano /run/user/1000/gvfs/mtp\:host\=%5Busb%3A002%2C005%5D/SanDisk/Music/

===> rsync -av piano/ /run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C007%5D/SanDisk/Music/
sending incremental file list
rsync: failed to set times on "/run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C007%5D/SanDisk/Music/.": Operation not supported (95)
...
foo-bar/one.ogg
...
rsync: mkstemp "/run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C007%5D/SanDisk/Music/foo-bar/one.ogg.0gzy9t" failed: Operation not supported (95)
Run Code Online (Sandbox Code Playgroud)

But only the directory got created. No file was transfered:

===> find /run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C007%5D/SanDisk/Music/piano

/run/user/1000/gvfs/mtp:host=%5Busb%3A002%2C007%5D/SanDisk/Music/piano/foo-bar
Run Code Online (Sandbox Code Playgroud)

How to rsync between my android device and my Ubuntu PC?

我找到了一个解决方法:我从 Android 设备上拔下 micro-SC 卡,然后将其插入笔记本电脑的 SD 卡读卡器中。但是我不需要这样做的解决方案会很好。

Yuv*_*Yuv 2

不确定您是否需要一个已取得 root 权限的设备(我只运行已取得 root 权限的 LineageOS,不熟悉其他版本)。在 LineageOS 中,默认存在/system/xbin/rsync ,否则,将手机连接到 PC 并启动终端并在 PC 终端中执行以下所有命令:

sudo apt install wget adb
wget -O rsync.bin http://github.com/pts/rsyncbin/raw/master/rsync.rsync4android
adb Push rsync.bin /data/local/tmp/rsync
adb shell chmod 755 /data/local/tmp/rsync
adb shell cp /data/local/tmp/rsync /sdcard/rsync.bin
adb shell /data/local/tmp/rsync --version
  • 创建一个配置文件
adb shell 'exec >/sdcard/rsyncd.conf && echo gid = 0 && echo uid = 0 && echo 地址 = 127.0.0.1 && echo 端口 = 1873 && echo "[root]" && echo path = / && echo 使用 chroot = false && echo 只读 = false'
  • 在设备上启动 rsync 守护进程
# 在普通 Android 上
adb shell /data/local/tmp/rsync --daemon --no-detach --config=/sdcard/rsyncd.conf --log-file=/proc/self/fd/2
# 在 LineageOS 上
adb shell rsync --daemon --no-detach --config=/sdcard/rsyncd.conf --log-file=/proc/self/fd/2
  • 在不同的 shell 窗口上,启动端口转发
adb 转发 tcp:6010 tcp:1873
  • 快乐复制
rsync -av --progress --stats --partial rsync://localhost:6010/root/sdcard/DCIM 。


ajg*_*619 0

对于几个简单的解决方案,您可以尝试以下之一:

  1. (我的首选)在手机上安装 FTP 服务器,然后使用 GUI 程序(如 Filezilla)传输文件。我在 2.4G 网络上始终获得良好的传输速率 (6M+)。
  2. 使用 AirDroid 等服务。对于大文件(4G+)来说它不是很好,但是对于较小的文件来说它很好。不过,免费版本每月仅允许 200M。