How to use I2P on Android

Masayuki Hatta on 2019-02-02

Enjoy I2P on the go. Also, please read the last section.

Photo by Jef Pawlikowski on Unsplash

You can use I2P on your Android devices. It surprisingly runs well. The RAM requirement is 512MB minimum, 1GB recommended. Even the cheapest smartphone can satisfy this nowadays.

I2P is available from Google Play Store, F-Droid, and even as .apk from the official site. Download, install and run it. Something like below greets you.

Running I2P on Android

I2P on Android, the first screen

Before “long press” that button, it would be nice to check your bandwidth settings. Touch the 3-dots menu button in the upper right corner, choose “Settings”, then “Bandwidth and network”. In most cases, you have to increase the maximum inbound/outbound speed. Unfortunately, I2P on Android does not have New Install Wizard with the Bandwidth Test yet, but you can test your network by yourself with several Android speedtest apps or websites. Roughly 1000KB/s means 1MB/s.

Bandwidth Settings

Then go back to the main screen, long press that button as it says.

Not ready

You have to wait for several minutes until “No tunnels are running yet.” becomes “I2P HTTP Proxy” and gives a green light.

I2P on Android gives a green “C”

Now it is basically all set.

Browsing eepsites on Android

I2P is a proxy software, so you need client apps which use the I2P proxy. For example, if you want to browse eepsites, you need web browsers on Android with proxy support. Set proxy to http://localhost:4444 (which means host: localhost, port: 4444).

Possibly the easiest to use is Lightning Browser. It has a pre-set proxy support for I2P. Firefox and Chrome also have proxy support, but setting them up might be a bit tricky (for Firefox, this page might be helpful). Lightning is available from Google Play Store and F-Droid. Run Lightning, touch the 3-dots menu button in the upper right corner, choose “Settings”, “General Settings”, then “HTTP proxy”. If you choose “I2P”, then you can browse *.i2p eepsites.

Choosing proxies in Lightning Browser
Browsing ransack.i2p search engine on Android

Using Irc2P and other I2PTunnels

You can use the good old IRC via I2P. I2P on Android has support for Irc2P, the IRC server network in I2P. All you need is to find good IRC apps on Android and set server address to localhost (127.0.0.1) and port to 6668.

You can use any of your favorite IRC clients. Revolution IRC might be a good choice since it is available both Google Play Store and F-Droid. Here’s an example settings for Revolution IRC with I2P on Android. Change nickname (you are not me!) and join channels such as #i2p or #i2p-dev, then say hello to fellow I2P users/developers. You can also use NickServ to keep your nickname. See this page if you are interested.

Example setting for RevolutionIRC
Tunnels support of I2P on Android

I2P on Android is a full-fledged I2P, so you can define Client/Server I2PTunnels by yourself. For example, you can run eepsites on your smartphone! Read the official document if you are interested.

New Developers Wanted!

At this moment, I2P on Android is fully maintained and works nicely. However, the original authors have other commitments, and new features are not added for some time.

If you are interested in I2P and/or Android development in general (especially UI/UX), please join us! For some technical and historical reasons, we use an exotic distributed version control system called Monotone for I2P development, but we have the official GitHub mirror. You can read/hack the Android code there. Also, I2P is fully internationalized — but translations are often incomplete or obsolete. Please join our translation effort at Transifex!