summaryrefslogtreecommitdiff
path: root/doc/design/assistant/android.mdwn
blob: a33029b9db6becd20dd6f5f44709d86211098782 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
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 [[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.)