64 lines
2 KiB
Markdown
64 lines
2 KiB
Markdown
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.)
|
|
|
|
### Android specific features
|
|
|
|
The app should be aware of power status, and avoid expensive background
|
|
jobs when low on battery or run flat out when plugged in.
|
|
|
|
The app should be aware of network status, and avoid expensive data
|
|
transfers when not on wifi. This may need to be configurable.
|
|
|
|
### 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.
|
|
|
|
Could be improved some by registering git-annex as a file handling app on
|
|
Android, allowing you to "send to" git-annex.
|
|
|
|
#### implement git smudge filters
|
|
|
|
See [[todo/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.)
|