Mac and Android Sync Howto?

Get help for specific problems
Posts: 2
Joined: 19 Nov 2022

Shermapper

I am able to sync storage on my Pixel from my Windows device with no problems.

However, when trying to use a Mac, I can't seem to make any progress. I have no what the paths are. On Windows, I can start a device path with 'mtp:', but that did not work on my Mac when I tried it.

I can use a different program like OpenMTP to copy files, but that program does not sync.

If anyone can tell me how this is done, I would appreciate it.
Posts: 998
Joined: 8 May 2006

therube

Maybe something here, viewtopic.php?t=8359 ?
Posts: 2
Joined: 19 Nov 2022

Shermapper

The provided link has nothing relating to my problem other than involving an Android device.
The issue is that Windows will mount an Android phone as a device, you can use paths that start with 'mtp:\Pixel 3\Internal shared storage\' or similar. On a Mac, Android devices do not mount like this, the mtp paths do not work, and I can find no information on how to sync. Other 'non-sync' Mac programs can see and browse the Android files though.
Posts: 10
Joined: 15 May 2023

ClutterCutter

This is especially pertinent now that with Android 14, and various updates to Android 13, the contents of the Android/Data folder are no longer accessible from the device itself, only over a USB connection. That means sync and file manager apps on the phone can't be used to back up application data any more.

Hence me searching to see whether I was missing something re. FFS not being able to access MTP devices on MacOS, and coming across this thread. I was: it turns out it can't. The documentation isn't very clear. But I guess writing a suitable driver to make up for OS deficiencies is rather out of scope.

There are a couple of solutions I have found. I've gone with the 2nd.

The first is that there is a filesystem driver available -- currently free of charge -- that will mount MTP devices as volumes in the finder so that FFS can access them. You can download it from here:

https://www.hyperintegrate.com/products/mtp-for-mac

The downside is that you have to be comfortable with the potential security and stability risks of installing an, albeit signed, kernel extension... made by a Russian company... Although the author of it, Evgeny Erokhin, is the lead developer of Paragon’s NTFS for Mac, so probably trustworthy even if the US has banned Kapersky...




The second is that there is a 'non-sync' Mac programme that can sync! It isn't free, though.
I just happen to have it already.

Commander One Pro is a free dual-panel file manager that can connect to MTP devices as part of its paid-for PRO Pack features (which you can try for 15 days for free). I find it much more stable, fast and reliable than OpenMTP, which I have stopped using; but it doesn't have any sync features per se.

What it does have, under the View menu, is a "Show Terminal" feature, which opens a Terminal window within the application, with its working directory as the current folder, even if that folder is on an MTP device.

That means you can use rsync -- a Unix command line tool that comes built in to MacOS -- to sync storage, as with Windows: just, sadly, not with a GUI.

It may actually be possible to use FreeFileSync, since the way Commander One seems to work is by mounting the MTP volume inside a hidden folder called .COVolumes in your Home directory. But I haven't tried to access that directly myself. These instructions are for rsync on the basis that FFS can't help.

So, using Commander One, navigate to the folder on your phone that you want to sync, then select Show Terminal from the View menu.

Then enter something like this on the command line:
rsync -avvhP --delete --stats --log-file ~/commanderone_mtp_rsync_log.txt ./ ~/Desktop/Phone_Backup_Folder
• If you have spaces in your file paths you need to escape them with \
The easiest way is to drag and drop a folder from Finder onto the command line.

• ~ means your Home Folder

• ./ means this folder ie. the one you were in when you started the Terminal view

• The basic syntax is rsync [-options] [source_folder] [destination_folder]
Always in that order. You can switch the folders around and make your working directory the destination if you want to transfer files from the Mac to the phone. The log file is optional: progress is shown on screen.

• Some parts of the a and P combination options above are superfluous for MTP, but are just ignored.

• The options here mean:
-a Use archive mode, for recursion so that folders are copied and to preserve timestamps
-vv Tell me lots about what's going on
-h Show me nice easy MB figures rather than hard to read bytes
-P Show me how things are progressing (partial mode isn't available for local transfers)
--delete anything in the destination folder that does not exist in the source folder
--stats at the end so I can see what's happened

• More info (including how to exclude files) here:
https://ss64.com/mac/rsync_options.html
https://ss64.com/mac/rsync.html



A third possibility, if you don't need the file manager features of Commander One, is to buy the same company's SyncMate or MacDroid products, but I haven't used those personally so can't say whether they're worth it.



If FreeFileSync could access MTP devices directly on MacOS, that would be so much better, but since that is probably too big of a feature request hopefully this will help other Mac-Android combo users.
User avatar
Site Admin
Posts: 7156
Joined: 9 Dec 2007

Zenju

These instructions are for rsync on the basis that FFS can't help.ClutterCutter, 28 Jun 2024, 20:05
When rsync is able to access the files, then so can FreeFileSync: In the terminal enter pwd to get the working directory, and use this path in FreeFileSync.
Posts: 10
Joined: 15 May 2023

ClutterCutter

You're right. Turns out it's actually even easier, though. I didn't realise that there's a "Show in Finder" option under CO's File menu which does mount the device in the Finder like any other volume.

The problem I'm finding doing some quick tests with FFS is that I'm getting various read errors. It might be because the source is an SD card and it gets overwhelmed because it's comparatively slow, or maybe the driver just isn't up to heavy IO use? I ran a comparison (size+timestamp) between the SD card and an existing mirror sync from it that I'd previously done using the AutoSync Android app over SMB, and if I'd actioned the results FFS would have deleted a whole directory of pictures from the backup that it couldn't access on the card, even though that folder is still there and working fine from the phone (and readable through Commander One just browsing to it).
User avatar
Site Admin
Posts: 7156
Joined: 9 Dec 2007

Zenju

if I'd actioned the results FFS would have deleted a whole directory of pictures from the backup that it couldn't access on the card, even though that folder is still there ClutterCutter, 30 Jun 2024, 22:59
This isn't a bug in FreeFileSync, but in Commander One Pro. If the mounted drive incorrectly returns empy folders without also signifying an error, there is nothing that a client software can do.
Posts: 10
Joined: 15 May 2023

ClutterCutter

This isn't a bug in FreeFileSync, but in Commander One Pro. If the mounted drive incorrectly returns empy folders without also signifying an error, there is nothing that a client software can do. Zenju, 01 Jul 2024, 12:22
Quite so. I've had chance to fiddle around a bit more today and can declare the combination of Commander One Pro for MacOS MTP access and FreeFileSync for backup/synchronisation a TOTAL SUCCESS! :)

So all of the above about rsync can be ignored as a red herring. Simply select "Show in Finder" from CO's File menu and drag the relevant folder to FFS.

I changed the comparison settings to ignore errors and the automatic retry count to 3 with a 10 second delay, and all the problems went away. (It probably wouldn't be a good idea to use parallel operations.)

It is also worth noting that rsync doesn't cope well with daylight saving time differences, whereas of course FFS has the ignore exact time shift feature as well as being able to take account of filesystem timestamp resolution differences.

So hopefully this now answers the original question. This is how it can be done!
Personally, I'm very satisfied with the solution.
If somebody else wants to try the kernel extension, that might work well too though, at no additional cost.
Posts: 18
Joined: 5 Jan 2024

John1234

If you're still looking for an Android solution, I use this software from the Google Play Store. It turns your cell phone into an SFTP server, and then you can use the SFTP protocol from free file sync to back up anything on your phone. If you have any questions just post them and I will answer.

https://play.google.com/store/apps/details?id=net.xnano.android.sshserver