diff --git a/lib/fs/basicfs_fileinfo_linuxish.go b/lib/fs/basicfs_fileinfo_linuxish.go index f7de9e49e..737578175 100644 --- a/lib/fs/basicfs_fileinfo_linuxish.go +++ b/lib/fs/basicfs_fileinfo_linuxish.go @@ -12,9 +12,17 @@ package fs import ( "syscall" "time" + + "github.com/syncthing/syncthing/lib/build" ) func (fi basicFileInfo) InodeChangeTime() time.Time { + // On Android, mtime and inode-change-time fluctuate, which can cause + // conflicts even when nothing has been modified on the device itself. + // Ref: https://forum.syncthing.net/t/keep-getting-conflicts-generated-on-android-device-for-files-modified-only-on-a-desktop-pc/19060 + if build.IsAndroid { + return time.Time{} + } if sys, ok := fi.FileInfo.Sys().(*syscall.Stat_t); ok { return time.Unix(0, sys.Ctim.Nano()) }