use C shim to start Android app

This should avoid relying on features of the Android builtin shell,
and so hopefully avoid failures like this one
http://git-annex.branchable.com/design/assistant/blog/day_197__template_haskell/#comment-07f90830f78f6495dcbdf90eb8636129

The C shim sets up busybox, and uses its builtin shell to run runshell.

It's important that busybox be configured with
CONFIG_FEATURE_SH_STANDALONE, so that while runshell is running, it
does not rely on either system utilities, or busybox being already
installed.
This commit is contained in:
Joey Hess 2013-02-24 13:25:55 -04:00
parent 920138d5fb
commit ac0292df95
6 changed files with 64 additions and 12 deletions

View file

@ -12,7 +12,7 @@ export ANDROID_NDK_ROOT=$(HOME)/tmp/android-ndk-r8d
GITTREE=source/git/installed-tree
build: source build-utils
build: source build-utils start
# Debug build because it does not need signing keys.
cd source/term && tools/build-debug
@ -30,6 +30,7 @@ build: source build-utils
cp source/git/git-upload-pack source/term/libs/armeabi/lib.git-upload-pack.so
arm-linux-androideabi-strip --strip-unneeded --remove-section=.comment --remove-section=.note source/term/libs/armeabi/*
cp runshell source/term/libs/armeabi/lib.runshell.so
cp start source/term/libs/armeabi/lib.start.so
# remove git stuff we don't need to save space
rm -rf $(GITTREE)/bin/git-cvsserver \
@ -117,7 +118,8 @@ source:
git clone git://github.com/jackpal/Android-Terminal-Emulator.git source/term
clean:
rm -rf $(GITTREE) build-utils
rm -rf $(GITTREE)
rm -f build-utils start
cd source/busybox && $(MAKE) clean
#cd source/openssl && $(MAKE) clean
cd source/openssh && $(MAKE) clean