You need to install Android SDK, NDK and QT with android support.
You need to install Android SDK, NDK and QT with android support.
@ -19,8 +19,8 @@ QT-Creator (for QT only)
------------------------
------------------------
Open QT-creator that should be installed with QT.
Open QT-creator that should be installed with QT.
Go to Settings/Anndroid and specify correct paths to SDK and NDK.
Go to Settings/Android and specify correct paths to SDK and NDK.
If everything is correct you will see two set avaiable:
If everything is correct you will see two set available:
Android for armeabi-v7a (gcc, qt) and Android for x86 (gcc, qt).
Android for armeabi-v7a (gcc, qt) and Android for x86 (gcc, qt).
Dependencies
Dependencies
@ -37,25 +37,25 @@ Building the app with QT
------------------------
------------------------
- Open `qt/i2pd_qt/i2pd_qt.pro` in the QT-creator
- Open `qt/i2pd_qt/i2pd_qt.pro` in the QT-creator
- Change line `MAIN_PATH = /path/to/libraries` to an actual path where you put the dependancies to
- Change line `MAIN_PATH = /path/to/libraries` to an actual path where you put the dependencies to
- Select appropriate project (usually armeabi-v7a) and build
- Select appropriate project (usually armeabi-v7a) and build
- You will find an .apk file in `android-build/bin` folder
- You will find an .apk file in `android-build/bin` folder
Building the app without QT
Building the app without QT
---------------------------
---------------------------
- Change line `I2PD_LIBS_PATH` in `android/jni/Application.mk` to an actual path where you put the dependancies to
- Change line `I2PD_LIBS_PATH` in `android/jni/Application.mk` to an actual path where you put the dependencies to
- Run `ndk-build -j4` from andorid folder
- Run `ndk-build -j4` from android folder
- Create or edit file 'local.properties'. Place 'sdk.dir=<pathtoSDK>' and 'ndk.dir=<pathtoNDK>'
- Create or edit file 'local.properties'. Place 'sdk.dir=<pathtoSDK>' and 'ndk.dir=<pathtoNDK>'
- Run `ant clean debug`
- Run `ant clean debug`
Creating release .apk
Creating release .apk
----------------------
----------------------
In order to create release .apk you must obtain a Java keystore file(.jks). Either you have in already, or you can generate it yourself using keytool, or from one of you existing well-know ceritificates.
In order to create release .apk you must obtain a Java keystore file(.jks). Either you have in already, or you can generate it yourself using keytool, or from one of you existing well-know certificates.
For example, i2pd release are signed with this [certificate](https://github.com/PurpleI2P/i2pd/blob/openssl/contrib/certificates/router/orignal_at_mail.i2p.crt).
For example, i2pd release are signed with this [certificate](https://github.com/PurpleI2P/i2pd/blob/openssl/contrib/certificates/router/orignal_at_mail.i2p.crt).
@ -10,7 +10,7 @@ I2PD has a unique feature that allows it to bootstrap off of any i2p router that
* obtain a `router.info` file of a floodfill router out of band, save to `/tmp/floodfill.router.info` or some other path
* obtain a `router.info` file of a floodfill router out of band, save to `/tmp/floodfill.router.info` or some other path
* run `i2pd --reseed.floodfill=/tmp/floodfill.router.info` and if that router is online you'll be able to bootstrap into the network from just that routers
* run `i2pd --reseed.floodfill=/tmp/floodfill.router.info` and if that router is online you'll be able to bootstrap into the network from just that routers
## Caviets
## Caveats
* The floodfill *must* be trustworthy, it could give you all colluding peers if it's a baddie.
* The floodfill *must* be trustworthy, it could give you all colluding peers if it's a baddie.
* *DO NOT* use a random floodfill unless you don't care about high security and just want to test out this feature.
* *DO NOT* use a random floodfill unless you don't care about high security and just want to test out this feature.
@ -44,7 +44,7 @@ I2P router to discover and fix that issue.
First of all, synchronize system clock on your machine with Internet.
First of all, synchronize system clock on your machine with Internet.
If that does not help, on Linux machines, check the number of open file descriptors
If that does not help, on Linux machines, check the number of open file descriptors
allowed to a proccess. Run:
allowed to a process. Run:
ulimit -n
ulimit -n
@ -72,7 +72,7 @@ Run i2pd for a long time, download and seed some popular torrents.
## What browser should I use to browse I2P websites?
## What browser should I use to browse I2P websites?
Use any opensource browser - for example, Firefox or Chromium based. Create separate profile for I2P ([firefox instructions](https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles)), try not to mix clearnet browsing with I2P. Learn how to configure your browser for better privacy and security.
Use any opensource browser - for example, Firefox or Chromium based. Create separate profile for I2P ([firefox instructions](https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles)), try not to mix clearnet browsing with I2P. Learn how to configure your browser for better privacy and security.
Good idea is to configure [privoxy](https://wiki.archlinux.org/index.php/Privoxy) for I2P/onion/clearnet browsing at the same time.
Good idea is to configure [privoxy](https://wiki.archlinux.org/index.php/Privoxy) for I2P/onion/clearnet browsing at the same time.
@ -91,7 +91,7 @@ I2P and Tor has some similarities, but they are completely different in every wa
Tor is designed to act as anonymous proxy for the regular Internet, I2P is
Tor is designed to act as anonymous proxy for the regular Internet, I2P is
designed to create anonymous network layer with its own private resources.
designed to create anonymous network layer with its own private resources.
Tor Project was started by US military and has a long history of recieving funds
Tor Project was started by US military and has a long history of receiving funds
from the government, while I2P was started by community of independent civilians.
from the government, while I2P was started by community of independent civilians.
Tor is highly centralized by design, while I2P is decentralized and distributed.
Tor is highly centralized by design, while I2P is decentralized and distributed.