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.