Since version 0.4.0, LISPmob includes support for Android devices operating as LISP mobile nodes (LISP-MN). There are two different editions of the LISPmob Android application, for rooted devices and for non-rooted devices. It is expected that in the future the root version will provide features beyond those available on the non-root version, however on LISPmob 0.4.1 there is just one root-only feature, support for IPv6 RLOCs. In both editions, there is a limit of one IPv4 EID and one IPv6 EID mapped to one or more RLOC interfaces. Even though several interfaces can be managed by LISPmob at the same time, they can only be used in an active-backup fashion (no more than one interface used at once). Should you need to use NAT traversal functionality, please read first the NAT traversal section on the general LISPmob README.md file. Version 0.5 maintains Android support however, given that NAT traversal is not yet available for this version, the usage of LISPmob 0.5 on Android is limited to devices with a public address. For production environments is recommended to use version 0.4.x. that does not have this limitation.
The two different editions of the LISPmob application have different requirements. LISPmob for rooted devices requires root access and Android version 2.3.6 or higher, while LISPmob for non-rooted devices requires Android 4.0 or higher. Please note that due to a bug on Android 4.4.0 and onwards, the non-rooted version of LISPmob will not work on Android 4.4.0, 4.4.1, 4.4.2 or 4.4.3. The bug was fixed on Android 4.4.4. (for IPv4 EIDs). To ease the installation process we strongly recommend installing LISPmob through Google Play (search for “lispmob”), however you can also download a precompiled APK package file from the LISPmob website or compile the app from sources yourself. In any case, if you choose to install LISPmob without using Google Play, the device must be configured to allow the installation of packages from "unknown sources" (System Settings -> Security -> Device Administration).
Building the code from source is supported on Linux and Mac OS X. To build LISPmob for Android from source code you require some extra packages beside those specified in the main README.md file.
- Android SDK: [http://developer.android.com/sdk/]
- Android NDK: [http://developer.android.com/tools/sdk/ndk/]
- Apache Ant
Since the Android code uses git submodules, you need to build from a git repository checkout. To get the latest version of the LISPmob source from Github:
git clone git://github.com/LISPmob/lispmob.git
cd lispmob
git submodule init
git submodule update
Install androgenizer in order to compile json-c:
cd android/jni/androgenizer
autoreconf -i
./configure
make
make install
Compile json-c
cd android/jni/json-c
./autogen.sh os=-linux-android
make Android.mk
To build the code, go to the android/
directory located in the top-level
directory and modify the local.properties
file with the correct path to your
Android SDK and Android NDK. In the Android SDK Manager you should either have
installed Android 4.2.2 (API 17), or update the project.properties
file to
specify your currently installed API. Please note that regardless of the target
API, LISPmob for rooted devices should still work on all Android releases from
API 9 (Android 2.3 Gingerbread) and above, and the non-rooted version should
work on releases from API 14 (Android 4.0 Ice Cream Sandwich) and above.
Compile the code with:
cd android
./select_appl.bash
ant debug
This command generates an APK file called lispmob-debug.apk
in the folder
android/bin/
. To install it, copy the file to the device and install it using
the android application manager, or run:
adb install [-r] bin/lispmob-debug.apk
LISPmob Android application allows you to start and stop the lispd daemon and edit the most important parameters of the configuration file. To access the full list of configurable parameters you have to edit manually the configuration file located in /sdcard/lispd.conf. Manually edited parameters not present in the graphical configuration interface will be overwritten when using the graphical configuration editor.
Due to the large amount of data generated by the lispd daemon, it is recommended to set "log level" to 0 when not debugging.