summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-06-29 23:54:38 +0900
committerTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>2012-06-29 23:54:38 +0900
commitfc0e378e29f15de60f7433dcd8d5203ef8b3982e (patch)
treed0581f754673f3d39605b95bcadcc634d45df503
parent5d3b6801b1c533a5a07f24829964e589a202b62a (diff)
Added README and release helper script for Android build
-rw-r--r--README.android75
-rwxr-xr-xandroid-release58
2 files changed, 133 insertions, 0 deletions
diff --git a/README.android b/README.android
new file mode 100644
index 00000000..f06e8611
--- /dev/null
+++ b/README.android
@@ -0,0 +1,75 @@
+aria2 for Android devices
+=========================
+
+aria2 is a lightweight multi-protocol & multi-source download utility
+operated in command-line. It supports HTTP/HTTPS, FTP, BitTorrent and
+Metalink.
+
+Install
+-------
+
+aria2 is not an ordinary Android Java application. It is a C++ native
+application and operates in command-line. You don't have to 'root'
+your device to use aria2. Because aria2 is a command-line program,
+you need a terminal emulator. First install Android Terminal Emulator
+from Android Market (or build it from source and install. See
+https://github.com/jackpal/Android-Terminal-Emulator/).
+
+1. Copy aria2c executable to ``/mnt/sdcard`` on your device.
+2. Run Android Terminal Emulator.
+3. ``mkdir /data/data/jackpal.androidterm/aria2``
+4. ``cat /mnt/sdcard/aria2c > /data/data/jackpal.androidterm/aria2/aria2c``
+5. ``chmod 744 /data/data/jackpal.androidterm/aria2/aria2c``
+6. Add the following commands to the initial command of Android
+ Terminal Emulator::
+
+ export HOME=/data/data/jackpal.androidterm/aria2; cd $HOME
+
+7. Exit Android Terminal Emulator.
+8. Run Android Terminal Emulator again.
+9. See whether aria2c actually works by invoking ``./aria2c -v``
+
+How to use
+----------
+
+See `the online manual
+<http://aria2.sourceforge.net/manual/en/html/>`_.
+
+Notes
+-----
+
+aria2c executable was generated using android-ndk-r8.
+
+The following libraries were statically linked.
+
+ * openssl 1.0.1c
+ * expat 2.1.0
+ * c-ares 1.9.1
+
+Since Android does not have ``/etc/resolv.conf``, c-ares (asynchronous
+DNS resolver) is disabled by default. But name resolution is sometimes
+a little bit slow, so I recommend to enable c-ares. You can enable it
+using ``--async-dns`` and specify DNS servers using
+``--async-dns-server`` option, like this::
+
+ --async-dns --async-dns-server=`getprop net.dns1`,`getprop net.dns2`
+
+Because it is tedious to type these long parameters every time you use
+aria2c, the following wrapper shell script would be handy::
+
+ #!/system/bin/sh
+ /data/data/jackpal.androidterm/aria2c \
+ --async-dns \
+ --async-dns-server=`getprop net.dns1`,`getprop net.dns2` \
+ "$@"
+
+Please note that you need to add executable file mode bit to this
+wrapper script too. (e.g., ``chmod 744 /PATH/TO/SCRIPT``)
+
+Known Issues
+------------
+
+* Since Android does not have ``/dev/stdout``, ``-l-`` does not work.
+
+* Android Terminal Emulator sometimes stops updating console. It looks
+ like aria2c hangs, but aria2c continues to run.
diff --git a/android-release b/android-release
new file mode 100755
index 00000000..927b2285
--- /dev/null
+++ b/android-release
@@ -0,0 +1,58 @@
+#!/bin/sh -e
+
+# aria2 - The high speed download utility
+#
+# Copyright (C) 2012 Tatsuhiro Tsujikawa
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+#
+# In addition, as a special exception, the copyright holders give
+# permission to link the code of portions of this program with the
+# OpenSSL library under certain conditions as described in each
+# individual source file, and distribute linked combinations
+# including the two.
+# You must obey the GNU General Public License in all respects
+# for all of the code used other than OpenSSL. If you modify
+# file(s) with this exception, you may extend this exception to your
+# version of the file(s), but you are not obligated to do so. If you
+# do not wish to do so, delete this exception statement from your
+# version. If you delete this exception statement from all source
+# files in the program, then also delete it here.
+
+if [ -z "$ANDROID_HOME" ]; then
+ echo 'No $ANDROID_HOME specified.'
+ exit 1
+fi
+TOOLCHAIN=$ANDROID_HOME/toolchain
+PATH=$TOOLCHAIN/bin:$PATH
+
+VERSION=$1
+ANDROID_API=$2
+if [ -z "$VERSION" ]; then
+ echo "No version specified"
+ exit 1
+fi
+if [ -z "$ANDROID_API" ]; then
+ echo "No android API specified"
+ exit 1
+fi
+
+DIST_DIR=aria2-$VERSION-$ANDROID_API-build1
+arm-linux-androideabi-strip src/aria2c
+mkdir $DIST_DIR
+cp AUTHORS COPYING ChangeLog LICENSE.OpenSSL NEWS README.html README.android \
+ src/aria2c $DIST_DIR
+zip -9 -r $DIST_DIR.zip $DIST_DIR
+rm -rf $DIST_DIR