Porting git-annex to Android will use the Android native SDK. A hopefully small Java app will be developed, which runs the webapp daemon, and a web browser to display it. ### programs to port These will probably need to be bundled into the Android app, unless already available in the App Store. * ssh (native ssh needed for scp, not a client like ConnectBot) * rsync * gpg * git (not all git commands are needed, but core plumbing and a few like `git-add` are.) ### FAT sucks The main media partition will use some awful FAT filesystem format from 1982 that cannot support git-annex's symlinks. (Hopefully it can at least handle all of git's filenames.) Possible approaches to this follow. (May want to consider which of these would make a Windows port easier too.) #### bare git repo with file browser Keep only a bare git repo on Android. The app would then need to include a file browser to access the files in there, and adding a file would move it into the repo. Not ideal. #### implement git smudge filters See [[smudge]]. Difficult. Would make git-annex generally better. #### keep files outside bare git repo Use a bare git repo but don't keep files in `annex/objects`, instead leave them outside the repo, and add some local mapping to find them. Problem: Would leave files unlocked to modification, which might lose a version git-annex dependend upon existing on the phone. (Maybe the phone would have to be always considered an untrusted repo, which probably makes sense anyway.) Problem: #### crazy `LD_PRELOAD` wrapper Need I say more? (Also, Android's linker may not even support it.)