+ + +

Cross Compile Rsync to ARM platform

+ +

As always, feel free to ask. // Sherlock

+ +

Motivation

+ +

I got some issues about compile seafile to android, so instead of doing so, I start to figure out some other synchronize workflow. Rsync is one of the most mature synchronization solution. So I made the decision on planting rsync to android.

+ +

Pre-work

+ +

Rsync is a sync program with delta sync feature and based on SSH connection. So all we need to do is SSH support and cross compile tool-chain. Similar to what I mentioned in previews blog, Android NDK and environment export need to be done before compilation. +To enable normally use of compiled program, we need to make android support SSH. My solution is just install SSHDroid from Google Play Store.

+ +

Cross-Compile Rsync

+ +

Running following script to build rsync. It will generate a executable file named rsync in the root directory.

+ +
$ ./configure --build=${BUILD_SYS} --host=${TOOLCHAIN}
+$ make
+
+ +

Push RSync to Android.

+ +

After installing SSHDroid, we can now push our arm-version-rsync to target machine.

+ +
$ adb push rsync /data/local/tmp
+$ adb shell
+
+# cd /data/data/berserker.android.apps.sshdroid/dropbear
+# mv ../../../local/tmp/rsync . 
+
+ +

Run Rsync with argument

+ +

Now we can easily use rsync in android shell. Similar to what we use on PC.

+ +
# ./rsync -e "./ssh" {target-data} {target-location}:{target-directory}  
+
+ +

References

+ +

Build Rsync for Android

+ +