Added I2P

This commit is contained in:
kilian 2013-09-21 10:47:13 +02:00
parent 6b1338860a
commit 5583ca3050
2 changed files with 140 additions and 0 deletions

View file

@ -0,0 +1,117 @@
Category:Internet
License:Apache2, Public Domain, GPLv2, Creative Commons and others
Web Site:http://i2p2.de
Source Code:http://github.com/i2p
Issue Tracker:http://trac.i2p2.de
Summary:I2P anonymous network
Description:
I2P is an anonymizing network, offering a simple layer that identity-sensitive applications can use to securely communicate. All data is wrapped with several layers of encryption, and the network is both distributed and dynamic, with no trusted parties.
******* Please read all of the following *******
This is an alpha release of the I2P Android app.
WARNING - This is ALPHA SOFTWARE. It may crash your phone. Do not rely upon it for strong anonymity. Tunnels may be as short as one hop. There may be serious security holes in the app.
It uses a lot of RAM. You need at least 256 MB of RAM. 512 should be much better.
The app may use a lot of RAM even after the router has stopped and there is no icon in the notification bar. Go to Settings -> Applications -> Running Services and stop the I2P service if necessary. Or Settings -> Applications -> Manage Applications -> Running -> I2P and force stop.
The app may be moved to the SD card. The app does not store any files on the SD card.
The app runs on either WIFI or mobile networks. For now, the app is relatively low bandwidth. It allows a max of 20 participating tunnels.
The app uses both UDP and TCP for router-router connections, with a maximum of 36 connections on each transport. UPnP is enabled.
I2P's NTP is disabled for API 11 (Honeycomb) and above, as those versions include NTP support. If you have cell service, your phone or tablet should have the correct time. If you do not have cell service, ensure your device has accurate time.
The app will work best when you are not changing IPs. If you are moving around, changing WIFI nodes, or switching between mobile and WIFI networks, it won't work well.
There is not yet any method to configure anything in the app.
Embedded web browser
--------------------
The browser does not use the outproxy for regular web sites. Javascript is disabled.
The following problems with eepsites are probably not fixable except on Android 3.0 (Honeycomb - i.e. tablets) and higher due to API limitations. I don't have a tablet to test on, so I haven't made any effort to work on it. The workaround is to use Firefox Mobile 4 and the ProxMob plugin (see below).
- Leaks .i2p DNS requests
- Can't load cross-site images or CSS
- No POSTs to forms
For eepsites, there are several other things to note:
- No way to type in addresses
- Several issues with images and CSS fetches
- Non-HTML links (pdf, text, images, torrent, etc.) probably don't work
- Frame support is flaky
For eepsites and websites, problems include:
- No cookies
- History and back issues
Using clients with the router
-----------------------------
The app starts an HTTP proxy at localhost port 4444 and transparent IRC proxies at localhost ports 6668 - 6671. These are "shared clients" on the same tunnels. Once you see in and out client tunnels listed on the router status (several minutes after startup), you should be able to connect.
The HTTP proxy should work with Firefox 4 Mobile and the ProxyMob Firefox plugin, if you have at least 512 MB of RAM. If it works it should avoid all the problems with the embedded web browser listed above. I can't test it as I have a 256 MB Droid.
The IRC proxy is tested with the "Android IRC Free" app. The IRC proxy destinations are:
* Port 6668: IRC2P - irc.postman.i2p, irc.freshcoffee.i2p, and irc.echelon.i2p
* Port 6669: irc.welterde.i2p
* Port 6670: irc.telecomix.i2p (probably down)
* Port 6671: irc.killyourtv.i2p
Further anonymity warnings
--------------------------
* Exploratory and Client Tunnels are 2 hops
* Sharing IRC and HTTP proxies on same tunnels allows for linking
* Not well-tested
* There are .i2p DNS leaks
* Cell phones aren't exactly secure environments
* This app does not attempt to "sanitize" your phone, make you safe from Google, or capture and route traffic from any other apps over I2P
* The app does not require root or do anything with iptables, for example, to route or block traffic.
Bugs and Support
----------------
Report results and bugs on the zzz.i2p Android forum (preferred) or on trac.i2p2.i2p or trac.i2p2.de
Help Wanted!
------------
Want to help make the app better? Volunteer on the zzz.i2p Android forum. Want to donate money or bitcoins to buy more Android devices, including tablets, for development and testing? Go to www.i2p2.i2p/donate.
.
Donate:http://www.i2p2.i2p/donate
Repo Type:git
Repo:https://github.com/i2p/i2p.android.base.git
Build Version:0.9.7.1,0,e4c9095626cce668de338fa35f5ea7766f7198a6,update=no,target=android-18,patch=jni.patch,novcheck=yes,prebuild=\
git clone https://github.com/i2p/i2p.i2p.git &&\
git --git-dir=./i2p.i2p/.git --work-tree=./i2p.i2p/ checkout 06d2db0046efa1f5bd7667b3fdd63ba931832c68 &&\
echo -e "\ni2psrc=./i2p.i2p" >> ./local.properties &&\
rm -R ./i2p.i2p/installer/lib/jbigi/* &&\
rm -R ./i2p.i2p/installer/lib/wrapper/* &&\
rm -R ./routerjars/jni/libjbigi.so &&\
echo -e "\nsdk.dir=$$SDK$$" >> ./local.properties &&\
cp -R $$SDK$$/extras/android/support/v7/appcompat/ appcompat/ &&\
echo -e "\nandroid.library.reference.2=./appcompat/" >> ./local.properties &&\
$$SDK$$/tools/android update lib-project --path ./appcompat/ &&\
echo -e "\nsdk.dir=$$SDK$$" >> ./routerjars/local.properties &&\
echo -e "\nndk.dir=$$NDK$$" >> ./routerjars/local.properties &&\
echo -e "\ni2psrc=./../i2p.i2p" >> ./routerjars/local.properties &&\
wget ftp://ftp.gmplib.org/pub/gmp-4.3.2/gmp-4.3.2.tar.bz2 &&\
tar xjvf gmp-4.* -C ./i2p.i2p/core/c/jbigi/ &&\
rm ./gmp-4.* &&\
ant help
Update Check Mode:None

View file

@ -0,0 +1,23 @@
--- a/routerjars/jni/build.sh2013-09-19 12:51:29.865886937 +0200
+++ b/routerjars/jni/build.sh 2013-09-19 12:51:20.755000838 +0200
@@ -41,14 +41,15 @@
#export NDK=$(realpath ../../android-ndk-r5b/)
## Simple fix for osx development
-if [ "`uname -s`" == "Darwin" ]; then
- export NDK=/Developer/android/ndk/
-else
- export NDK="`readlink -n -e $(for last in ../../android-ndk-r*/.; do true; done ; echo $last)`"
-fi
+#if [ "`uname -s`" == "Darwin" ]; then
+# export NDK=/Developer/android/ndk/
+#else
+# export NDK="`readlink -n -e $(for last in ../../android-ndk-r*/.; do true; done ; echo $last)`"
+#fi
#
# API level, must match that in ../AndroidManifest.xml
#
+export NDK=/home/kilian/bin/android-ndk-r9
LEVEL=8
ARCH=arm
export SYSROOT=$NDK/platforms/android-$LEVEL/arch-$ARCH/