1 votos

Instalación de rsync en Android para transferir archivos de Android a OSX

Estoy tratando de usar rsync para transferir algunos archivos de mi teléfono Android (Samsung Galaxy S10+ / Android V10) a mi máquina local (OSX / Mojave).

Hice lo siguiente:

  1. Instalado Servidor SSH/SFTP en mi dispositivo Android e inicié el servidor

  2. Verificado que soy capaz de ssh en el teléfono (aunque me registra como usuario u0_a312 y no my_user ?)

    $ ssh my_user@192.168.0.16 -p 2222

    The authenticity of host '[192.168.0.16]:2222 ([192.168.0.16]:2222)' can't be established.
    RSA key fingerprint is SHA256:3mNL574rJyHCOGm1e7Upx4NHXMg/YnJJzq+jXhdQQxI.
    Are you sure you want to continue connecting (yes/no)? yes
    Warning: Permanently added '[192.168.0.16]:2222' (RSA) to the list of known hosts.
    Password authentication
    Password:
    / $ whoami u0_a312
  3. Intento de ejecución rsync desde mi máquina local OSX para copiar los archivos remotos de Android a mi portátil

    rsync -avzhP -e "ssh -p 2222" my_user@192.168.0.16:/storage/6632-6330/DCIM/Camera/* .

    Password authentication Password: exec request failed on channel 0 rsync: connection unexpectedly closed (0 bytes received so far) [receiver] rsync error: error in rsync protocol data stream (code 12) at /BuildRoot/Library/Caches/com.apple.xbs/Sources/rsync/rsync-52.200.1/rsync/io.c(453) [receiver=2.6.9]

Como puedes ver, me encontré con un error en el paso 3. A partir de algunos husmeos básicos en los foros, parece que rsync debe estar instalado en el dispositivo remoto Android.

(Esto también está respaldado por el hecho de que which rsync no devuelve nada cuando se ejecuta desde el shell de Android)

Sin embargo:

  • ¿Cómo se instala? rsync en el teléfono? ¿Es esta la solución correcta en este caso?
  • Nunca necesité hacer esto en mi anterior teléfono (Galaxy S7), lo anterior rsync proceso "simplemente funcionó". ¿Ha cambiado algo en la instalación estándar de Android con respecto a rsync ?

0 votos

Nunca he probado eso, pero tal vez Syncopoli podría ayudar. Se describe a sí mismo como "Un cliente rsync que funciona", así que es de esperar que, erm, funcione.

0 votos

Obviamente, necesitas rsync binario en el lado de Android para que la sincronización funcione. rsync nunca ha formado parte de la instalación estándar de Android. // Se puede utilizar Termux tanto para sshd y rsync . Simple. O poner rsync en algún lugar de su $PATH. // Otra idea es utilizar rclone en ambos lados con sftp servidor incorporado. // Por qué se inicia la sesión como usuario u0_a312 (el UID de la aplicación) y no my_user El concepto de usuario y de inicio de sesión en Android: Android.stackexchange.com/questions/209918

0 votos

Respuesta aquí ayuda sobre cómo instalar

1voto

pr0nin Puntos 353

En primer lugar, en Android cada aplicación tiene un ID de usuario/cuenta propia, por lo que u0_a312 es el usuario de la aplicación que ejecuta el servidor ssh. Las cuentas de usuario normales de Linux como myuser no existen en Android.

Basado en la trayectoria /storage/6632-6330/ Supongo que estás intentando acceder a la tarjeta sd externa.

En un dispositivo no rooteado el acceso de escritura a ext-sd no es posible en Android usando programas de archivo estándar de Linux/Unix (esto sólo es posible a través de la API Java de Android). Sólo si el servidor ssh/ftp + rsync fue especialmente adoptado para usar esta API puede funcionar.

En Android 10/11 la situación es aún peor debido a la nueva "Almacenamiento de alcance" sistema. No estoy seguro de si todavía es posible obtener acceso completo a todos los archivos de la tarjeta de anuncios externa.

PreguntAndroid.com

PreguntAndroid es una comunidad de usuarios de Android en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X