File: README.android

package info (click to toggle)
aria2 1.37.0%2Bdebian-3
  • links: PTS, VCS
  • area: main
  • in suites: forky, trixie
  • size: 15,124 kB
  • sloc: cpp: 115,006; ansic: 9,140; makefile: 1,466; ruby: 475; python: 373; sh: 260; xml: 176
file content (86 lines) | stat: -rw-r--r-- 2,908 bytes parent folder | download | duplicates (2)
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
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
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
<https://aria2.github.io/manual/en/html/>`_.

Notes
-----

aria2c executable was generated using android-ndk-r14b.

The following libraries were statically linked.

* openssl 1.1.1k
* expat 2.4.1
* zlib 1.2.11
* c-ares 1.17.2
* libssh2 1.9.0

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`

Additionally, the CA certificates shipped with Android don't locate in
the same place as those of normal Unix-like systems do, so this
workaround might be useful to securely download files via HTTPS::

   cat /etc/security/cacerts/* | aria2c --ca-certificate=/proc/self/fd/0 $@

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
    cat /etc/security/cacerts/* | \
    /data/data/jackpal.androidterm/aria2c \
      --ca-certificate=/proc/self/fd/0 \
      --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.
  ``/proc/self/fd/0`` is a workaround for Android.

* Android Terminal Emulator sometimes stops updating console. It looks
  like aria2c hangs, but aria2c continues to run.